Windows 7 让一个处于兼容模式的程序运行另一个没有兼容模式的程序
我们有一个程序(我们称之为目录),它必须在Windows7(而不是VM版本)的XP兼容模式下运行。但是,目录启动的另一个程序(Autodesk Voloviewer)在用户退出后往往根本不会关闭,因为它不喜欢在XP兼容模式下运行。有没有办法从VB6启动不继承兼容模式的程序Windows 7 让一个处于兼容模式的程序运行另一个没有兼容模式的程序,windows-7,vb6,windows-xp,autodesk,compatibility-mode,Windows 7,Vb6,Windows Xp,Autodesk,Compatibility Mode,我们有一个程序(我们称之为目录),它必须在Windows7(而不是VM版本)的XP兼容模式下运行。但是,目录启动的另一个程序(Autodesk Voloviewer)在用户退出后往往根本不会关闭,因为它不喜欢在XP兼容模式下运行。有没有办法从VB6启动不继承兼容模式的程序 我暗自怀疑advapi32.dll将不得不参与进来,但我可能会偏离正题 谢谢。您是否尝试过使用CreateProcess?请参阅此知识库文章: 您可以尝试在dwCreationFlags中设置CREATE_NEW_PROCE
我暗自怀疑advapi32.dll将不得不参与进来,但我可能会偏离正题
谢谢。您是否尝试过使用
CreateProcess
?请参阅此知识库文章:
您可以尝试在dwCreationFlags中设置CREATE_NEW_PROCESS_组
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)
或者,您可以尝试在创建新进程之前将环境变量\uuu COMPAT\u LAYER重置为空,如下所述:
或者,您可以使用CreateProcess
传递自己的环境设置
Public Declare Function SetEnvironmentVariable Lib "kernel32.dll" Alias "SetEnvironmentVariableA" _
(ByVal lpName As String, ByVal lpValue As String) As Long
SetEnvironmentVariable("__COMPAT_LAYER", "")