如何兼容64位系统和32位系统
#NoTrayIcon#PRE_UseX64=n
$file = "C:\Windows\System32\drivers\etc\hosts"
Run(@ComSpec & " /c " & "attrib -r -s " & $file,"",@SW_HIDE)#NoTrayIcon
#PRE_UseX64=n
#include <Process.au3>
$file = "C:\Windows\System32\drivers\etc\hosts"
_RunDos("attrib -r -s " & $file)这2个其实效果是一样的,但是只要添加#PRE_UseX64=n,64位系统就失效,但是不添加#PRE_UseX64=n,32位系统又运行不了,怎么样才能在2种系统同时能有效呢 重定向问题 添加以下试试
DllCall('kernel32.dll', 'Bool', 'Wow64DisableWow64FsRedirection', 'ptr', '') 我的64位兼容32位好像和你的代码不一样,可能版本不同把
#AutoIt3Wrapper_UseX64=n 本帖最后由 沐月狐 于 2019-11-17 22:33 编辑
谢谢楼上各位的解答,我根据QQ群内群友的提示,现在用FileSetAttrib来解决了,楼上各位的建议晚点再测试
$file = "C:\Windows\System32\drivers\etc\hosts"
FileSetAttrib($file,"-RS") 也想学习下32和64位,在操作哪些方面有不同。比如文件操作,注册表操作等等,以避免以后犯错。 这一点还真没有注意到,学习了 感觉直接打包成32位就可以了。 我都是直接#PRE_UseX64=n,然后打包
没见过什么问题 破帽遮颜 发表于 2019-11-22 01:44
我都是直接#PRE_UseX64=n,然后打包
没见过什么问题
那是因为你没有用这个命令操作这个文件
页:
[1]