如何让exe以兼容模式启动?
https://upload.impk.cc/i/2024/11/13/r12wp4.png像这样,以兼容模式运行,里面选择windows8,同时以管理员权限运行。
我想让autit编译的exe自己按这个模式启动,或让它用run命令启动的应用程序按这个模式运行。
研究方向:信息存在注册表
; 设置 Total Commander 的路径
Local $exePath = "C:\Program Files\Total Commander\TOTALCMD64.EXE"
; 使用 cmd 和 PowerShell 以管理员权限运行 Total Commander
Local $cmd = 'powershell -Command "Start-Process \'' & $exePath & '\' -Verb RunAs"'
; 使用 ShellExecute 来运行命令
ShellExecute("cmd.exe", "/c " & $cmd, "", "runas")
没测试过,你自己测试下.
https://www.autoitx.com/forum.php?mod=viewthread&tid=33125&highlight=%E5%85%BC%E5%AE%B9%E6%A8%A1%E5%BC%8F&_dsign=17758457 ### 说明:
$programPath:请将其替换为您要设置的程序的完整路径。
$compatibilityMode:可以根据需要更改为其他兼容模式(例如 `WIN7`、`WIN8`)。
RegRead 和 RegWrite:用于读取和写入注册表值。
MsgBox:用于显示消息框,告知用户操作结果。
; 设置要修改的程序路径
Local $programPath = "C:\Program Files\YourApp\YourApp.exe"
; 设置兼容模式
Local $compatibilityMode = "WINXPSP3" ; 可以更改为其他兼容模式,如 WIN7, WIN8 等
; 定义注册表路径
Local $regPath = "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
; 检查注册表项是否存在
If Not RegRead($regPath, $programPath) Then
; 创建注册表项并设置兼容模式
RegWrite($regPath, $programPath, "REG_SZ", $compatibilityMode)
MsgBox(0, "成功", "已将程序设置为兼容模式: " & $compatibilityMode)
Else
MsgBox(0, "信息", "该程序已存在兼容模式设置。")
EndIf 表面的是注册表只是最终设置后的结果!更高深的是兼容性界面是通过运行哪个库文件及其参数使之立即生效。
况且注册表修改后也不知道需不需要重启。 给你顶一下
页:
[1]