1

短版:我可以从命令提示符启动 Windows Mobility Center (MBLCTR.EXE),但无法从 VBA 通过 SHELL 启动它。

在 Win 7/64 位笔记本电脑上,从系统上几乎任何目录的命令提示符中,我可以输入 MBLCTR 或 MBLCTR.EXE 并启动移动中心。方便的东西,所以我正在尝试将它构建到我的加载项之一中。对于几乎任何其他应用程序,我可以这样做:

Shell "someapp.exe", vbNormalFocus

Shell "MBLCTR.EXE", vbNormalFocus

给我一个 File Not Found 错误信息。如果我不使用 .EXE,同样的事情,如果我提供文件的完整路径(如果我从命令提示符处执行此操作),同样的事情。

如果我进行了必要的 reg 更改以允许 MBLCTR 运行,那么在我的桌面上也是如此;它通常被禁用。

4

1 回答 1

1

感谢一位好朋友,一个答案:

不要使用 SHELL "mblctr.exe" 或完整路径,而是使用:

SHELL "c:\windows\Sysnative\mblctr.exe"

(当然用正确的本地值替换 c:\windows)

在 64 位系统上,64 位版本的 MBLCTR.EXE 存在于 System32 中,但是当从 32 位应用程序调用时,调用被重定向到 SysWow64,但该目录中没有 MBLCTR.EXE,因此文件未找到错误。

于 2013-07-18T21:37:44.210 回答