Board logo

标题: [文件操作] [已解决]真心求助,求设置“以兼容模式运行 ......”的批处理 [打印本页]

作者: zldarwin    时间: 2023-9-13 11:11     标题: [已解决]真心求助,求设置“以兼容模式运行 ......”的批处理

本帖最后由 zldarwin 于 2023-9-15 04:52 编辑

朋友公司写的一个软件在 Win 10、Win 11 上只能通过设置“兼容性 - 以兼容模式运行这个程序 - Windows 7 ” 来正常运行,维护起来非常不方便,因为软件暂停更新,所以维护起来比较麻烦。

网上找了许多方式,都需要设置绝对路径,以注册表写入的方式,批处理也没有写完整:


方法1:
注册表修改,兼容模式对应的注册表如下(以红警2为例):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"D:\\红警2\\ra2.exe"="WIN98"

方法2:
批处理
@echo off
set __COMPAT_LAYER= 兼容模式对应的注册表值(如98模式就是WIN98)
start 游戏执行程序
exit


但绝对路径无法做到更大的适配性,求大神给些解决方案。
作者: Batcher    时间: 2023-9-13 18:41

回复 1# zldarwin


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. REM 待设置的应用程序名称(不要写路径)
  3. set "AppName=WinRAR.exe"
  4. REM 兼容性 - 以兼容模式运行这个程序 - Windows 7
  5. set "CompLayer=~ WIN7RTM"
  6. reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~dp0%AppName%" /t REG_SZ /d "%CompLayer%" /f
复制代码
假设已知应用程序名称是WinRAR.exe,路径可能发生变化。
可能是C:\Program Files\WinRAR\WinRAR.exe
可能是D:\Program Files\RAR\WinRAR.exe

代码里面不需要写死程序的完整路径,只需要把test.bat和应用程序的exe文件放在同一个目录下就行了。
如果这不是你想要的效果,请举例说明具体需求。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: zldarwin    时间: 2023-9-14 13:31

回复 2# Batcher


   拜谢您的回复,这就去测试一下。
作者: zldarwin    时间: 2023-9-14 13:34

回复 2# Batcher


    居然还有详细的注释和方法解析,手动抱拳,专业又细致严谨。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2