【问题标题】:Why does VBScript return a different value for the %ProgramFiles% system variable in an HTA file vs in a VBS file?为什么 VBScript 在 HTA 文件和 VBS 文件中为 %ProgramFiles% 系统变量返回不同的值?
【发布时间】:2013-10-29 12:35:51
【问题描述】:

在 64 位 PC 上,VBS 文件中的以下代码将按预期返回“C:\Program Files”。

Dim oShell
Set oShell = CreateObject("WScript.Shell")
MsgBox oShell.ExpandEnvironmentStrings("%ProgramFiles%")

但是,当将相同的代码放在 HTA 文件中时,它会返回“C:\Program Files (x86)”。以下是 HTA 文件。

<html>
<head>
    <title>HTA Test </title>
    <HTA:APPLICATION
        ApplicationName = "Test App"
        ID      = "test"
        WindowState = "normal "
        SysMenu = "yes "
        Scroll      = "no"
        Version = "1.0" />
</head>

<script language="VBScript">
    Dim oShell
    Set oShell = CreateObject("WScript.Shell")
    MsgBox oShell.ExpandEnvironmentStrings("%ProgramFiles%")
</script>
<body>
</body>
</html>

在PC上,存在以下2个系统变量。

ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)

谁能解释为什么会这样?

谢谢。

【问题讨论】:

    标签: vbscript hta


    【解决方案1】:

    如果您看到 HKEY_CLASSES_ROOT\htafile\Shell\Open\Command(用于打开 hta 文件)将看到操作系统默认调用 32 位版本的 MSHTA.exe,因此,对于 32 位文件,%programfiles%返回 %programfiles(x86)%

    的值

    【讨论】:

    • 感谢您的回复。我想它必须是这样的。
    猜你喜欢
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 2012-01-13
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多