最新消息:

在x64系统下的使用禁止注册表重定向

nsis 永恒心锁 2303浏览 0评论

NSIS生成的安装程序都是32位的应用程序,所以在x64下运行时,所安装的文件会被自动转向,

如安装到C:WindowsSystem32目录下的文件会被安装到C:WindowsSysWOW64目录下。这对于有些软件是不方便的。

一个办法是重新编译NSIS的代码为64位,就是有点麻烦,而且需要大量的时间测试一下。利用简单的代码也可以解决类似的问题:

检测操作系统是否为x64系统

可以读环境变量PROCESSOR_ARCHITECTURE,该变量在32位系统为x86,在AMD的x64的机器和在Intel的x64机器上为AMD64,在安腾(Itanium)系统为IA64。可以使用下面的代码:

ReadEnvStr $Win64 PROCESSOR_ARCHITECTURE
StrCmp $Win64 "x86" lbl_Win32

禁止文件转向

调用Wow64EnableWow64FsRedirection函数可以禁止或恢复文件转向。如:

; 禁止

System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 0)"

……

; 恢复

System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 1)"
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » 在x64系统下的使用禁止注册表重定向

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址