C# 如何在兼容模式下从代码执行程序?
环境:Windows Server 2008 R2 64位 我有一个与Windows Server 2003 SP1兼容模式兼容的程序。但是,当我尝试使用C#执行此程序时,程序出错 我认为这是因为当从另一个程序调用时,它没有在兼容模式下运行。我使用我的代码中的C# 如何在兼容模式下从代码执行程序?,c#,compatibility,windows-server-2008-r2,C#,Compatibility,Windows Server 2008 R2,环境:Windows Server 2008 R2 64位 我有一个与Windows Server 2003 SP1兼容模式兼容的程序。但是,当我尝试使用C#执行此程序时,程序出错 我认为这是因为当从另一个程序调用时,它没有在兼容模式下运行。我使用我的代码中的Process.Start(pathToExe)来启动这个程序 我试图在兼容模式下运行调用程序,以检查这是否能使程序正确运行 请注意,我已从属性| compatibility将程序设置为兼容。我不确定我是否完全理解您的问题,但如果您希望始终
Process.Start(pathToExe)
来启动这个程序
我试图在兼容模式下运行调用程序,以检查这是否能使程序正确运行
请注意,我已从属性| compatibility将程序设置为兼容。我不确定我是否完全理解您的问题,但如果您希望始终在兼容模式下运行程序,可以设置注册表使其正常工作 注册表项:
HKEY\U LOCAL\U MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
使用,添加新的字符串条目 名称:完整的应用程序路径。
类型:REG_SZ
数据:所需的兼容值。我认为您的情况是
WIN2003
或WIN2003SP1
示例:
C:\Program Files\System32\Notepad.exe REG_SZ WIN2003
您可以检查正在运行的当前操作系统版本,并且可以在调用程序之前设置和取消设置此注册表值。它可能会正常工作,但通常在开始时有一个波浪号
~
,后跟空格。比如~WIN2003
。Src:Chapter在注册表编辑器中手动更改应用程序的兼容性模式设置