[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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


但绝对路径无法做到更大的适配性,求大神给些解决方案。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 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
1

评分人数

    • zldarwin: 专业、细致、严谨、贴心。技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


   拜谢您的回复,这就去测试一下。

TOP

回复 2# Batcher


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

TOP

返回列表