如何从代码中以兼容模式执行程序?

时间:2012-09-03 13:55:24

标签: c# compatibility windows-server-2008-r2

环境: Windows Server 2008 R2 64位

我有一个适用于 Windows Server 2003 SP1 兼容模式的程序。但是,当我尝试使用C#执行此程序时,程序错误输出。

我认为这是因为从其他程序调用时它没有在兼容模式下运行。我使用代码中的Process.Start(pathToExe)来启动此程序。

我尝试在兼容模式下运行调用程序,以检查这是否会使程序正常运行。

请注意,我已将程序集设置为属性|的兼容性兼容性

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解您的问题,但如果您想要始终在兼容模式下运行本程序,您可以设置注册表以使其正常工作。

注册表项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

添加一个新的String条目,
名称:您的应用程序路径已满 输入:REG_SZ
数据:必需的比较值。我认为你的情况是WIN2003WIN2003SP1

Example:
C:\ Program Files \ System32 \ Notepad.exe REG_SZ WIN2003

您可以检查当前运行的操作系统版本,并在调用程序之前设置和取消设置此注册表值。