【问题标题】:How to execute a program in compatibility mode from code?如何从代码以兼容模式执行程序?
【发布时间】:2012-09-03 13:55:23
【问题描述】:

环境: Windows Server 2008 R2 64 位

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    添加一个新的字符串条目,
    名称:完整的应用程序路径。
    类型:REG_SZ
    数据 :必需的兼容值。我认为你的情况是 WIN2003WIN2003SP1

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

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

    【讨论】:

    • 它可能无论如何都可以工作,但通常在开头有一个波浪号~,后跟空格。喜欢~ WIN2003。 src:tenforums.com/tutorials/…章节To Manually Change Compatibility Mode Settings for an App in Registry Editor第五点
    猜你喜欢
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多