找回密码
 加入
搜索
查看: 2185|回复: 8

[AU3基础] 如何兼容64位系统和32位系统

[复制链接]
发表于 2019-11-17 20:23:15 | 显示全部楼层 |阅读模式
#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种系统同时能有效呢
发表于 2019-11-17 20:36:57 | 显示全部楼层
重定向问题 添加以下试试
DllCall('kernel32.dll', 'Bool', 'Wow64DisableWow64FsRedirection', 'ptr', '')
发表于 2019-11-17 20:38:36 | 显示全部楼层
我的64位兼容32位好像和你的代码不一样,可能版本不同把

#AutoIt3Wrapper_UseX64=n
 楼主| 发表于 2019-11-17 22:32:44 | 显示全部楼层
本帖最后由 沐月狐 于 2019-11-17 22:33 编辑

谢谢楼上各位的解答,我根据QQ群内群友的提示,现在用FileSetAttrib来解决了,楼上各位的建议晚点再测试
$file = "C:\Windows\System32\drivers\etc\hosts"
FileSetAttrib($file,"-RS")
发表于 2019-11-18 10:50:41 | 显示全部楼层
也想学习下32和64位,在操作哪些方面有不同。比如文件操作,注册表操作等等,以避免以后犯错。
发表于 2019-11-18 17:03:11 | 显示全部楼层
这一点还真没有注意到,学习了
发表于 2019-11-19 08:42:11 | 显示全部楼层
感觉直接打包成32位就可以了。
发表于 2019-11-22 01:44:03 | 显示全部楼层
我都是直接#PRE_UseX64=n,然后打包
没见过什么问题
 楼主| 发表于 2019-11-23 23:23:06 | 显示全部楼层
破帽遮颜 发表于 2019-11-22 01:44
我都是直接#PRE_UseX64=n,然后打包
没见过什么问题

那是因为你没有用这个命令操作这个文件
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 08:54 , Processed in 0.072607 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表