1

短いバージョン: コマンド プロンプトから Windows モビリティ センター (MBLCTR.EXE) を起動できますが、VBA から SHELL 経由で起動することはできません。

Windows 7/64 ビットのラップトップでは、システム上のほぼすべてのディレクトリのコマンド プロンプトから MBLCTR または MBLCTR.EXE を入力すると、モビリティ センターが起動します。便利なことなので、アドインの 1 つに組み込んでみます。他のほとんどのアプリでは、次のことができます。

Shell "someapp.exe", vbNormalFocus

しかし

Shell "MBLCTR.EXE", vbNormalFocus

ファイルが見つかりませんというエラーメッセージが表示されます。.EXE を省略しても同じで、ファイルへのフル パスを指定しても同じです (コマンド プロンプトから実行すると機能します)。

MBLCTR の実行を許可するために必要な reg 変更を行った場合、デスクトップでも同じことが当てはまります。通常は無効になっています。

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 に答える