これがこの問題の診断に役立つかどうかはわかりませんが、Windows8でも同様のことが起こっています。
Win8でテストしようとしているレガシーVB6アプリがいくつかあります。
一部のアプリは、CreateProcessAを使用して他のVB6アプリを実行します。パラメータのあるものとないものがあります。通常、コマンドラインparmは、%temp%で作成されたパラメータファイルを指します。
これらのほとんどは問題なく動作します。ただし、それらのいくつかはまったく実行されません。CreateProcessAはゼロを返します。
しかし、VBでerr.LastDLLErrorをチェックすると、「プロセスには昇格が必要」を意味する740が返されます。
ShellExecuteを使用すると、正常に機能します。UACは昇格を要求しません。
なぜこれらのいくつかのプログラムがこのように動作するのかわかりません。前述したように、私が同じように複雑だと感じる他のプログラムは、CreateProcessAで問題なく実行されるからです。
ところで-これらのプログラムは、UACがオンまたはオフの状態で、XP、Vista、およびWin7で完全に実行されます。そして、それらのいずれにも標高は必要ありません。
しかし、最終的にはShellExecuteは正常に実行されているように見えるので、CreateProcessの代わりに試してみることをポスターに勧めます。