实现让易语言编译的32位程序在64位Windows7系统非管理员帐户中执行
昨天有易语言开发者向我求助,说他用易语言编译的32位程序软件,发布给64位操作系统Win7用户使用,因为该用户确定没有管理员权限,而程序启动时又要求必须输入管理员密码,如此陷入困境。目标企业用户管理严格,要求为普通用户分配管理员权限是不切实际的,只能开发人员从软件开发的角度在技术上解决。
我听到这个问题后,第一感觉是微软用户帐户控制(UAC)引发的,估计通过给exe添加特定的manifest资源应该可以解决。于是我给了他一段代码,让他用ResHacker之类的软件添加到软件里面去,试一试能不能解决问题:
结果测试之后他发现,非常成功的解决了问题。修改后的软件发布给用户测试,启动时也不再提示输入管理员密码了,功能一切正常。
下面对比一下易语言编译时默认加入的manifest资源:
会发现两者有细微的区别:asInvoker和requireAdministrator的区别。后者会要求软件启动时必须有管理员权限,否则拒绝工作。那能不能一刀切的要求易语言默认采用asInvoker呢?恐怕还是不行的,因为修改Windows注册表之类的行为还是必须得有管理员权限的(否则修改无效)。或许在某些条件下可以做一些智能判断?
附ResHacker(ResourceHacker)3.6下载地址:
https://www.nhooo.com/softs/2289.html
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。