使ってみましたCreateProcess
か?次のナレッジベース記事を参照してください: http://support.microsoft.com/kb/129797 .
dwCreationFlags で CREATE_NEW_PROCESS_GROUP を設定してみてください。
Private Const CREATE_NEW_PROCESS_GROUP As Long = &H200&
lSuccess = CreateProcess(sNull, _
"Calc.exe", _
ByVal 0&, _
ByVal 0&, _
1&, _
NORMAL_PRIORITY_CLASS or CREATE_NEW_PROCESS_GROUP, _
ByVal 0&, _
sNull, _
sInfo, _
pInfo)
または、ここで説明されているように、新しいプロセスを作成する前に、環境変数 __COMPAT_LAYER を空にリセットしてみてください: http://support.microsoft.com/kb/286705
Public Declare Function SetEnvironmentVariable Lib "kernel32.dll" Alias "SetEnvironmentVariableA" _
(ByVal lpName As String, ByVal lpValue As String) As Long
SetEnvironmentVariable("__COMPAT_LAYER", "")
または、 を使用して独自の環境設定を渡すこともできますCreateProcess
。