实现让易语言编译的32位程序在64位Windows7系统非管理员帐户中执行

昨天有易语言开发者向我求助,说他用易语言编译的32位程序软件,发布给64位操作系统Win 7用户使用,因为该用户确定没有管理员权限,而程序启动时又要求必须输入管理员密码,如此陷入困境。 目标企业用户管理严格,要求为普通用户分配管理员权限是不切实际的,只能开发人员从软件开发的角度在技术上解决。

我听到这个问题后,第一感觉是微软用户帐户控制(UAC)引发的,估计通过给 exe 添加特定的 manifest 资源应该可以解决。于是我给了他一段代码,让他用 ResHacker 之类的软件添加到软件里面去,试一试能不能解决问题:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

结果测试之后他发现,非常成功的解决了问题。修改后的软件发布给用户测试,启动时也不再提示输入管理员密码了,功能一切正常。

下面对比一下易语言编译时默认加入的 manifest 资源:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
	<assemblyIdentity
	  version="1.0.0.0"
	  processorArchitecture="X86"
	  name="......"
	  type="win32"
	/>
	<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
	  <security>
	    <requestedPrivileges>
	      <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
	    </requestedPrivileges>
	  </security>
	</trustInfo>
</assembly>

会发现两者有细微的区别:asInvoker 和 requireAdministrator 的区别。后者会要求软件启动时必须有管理员权限,否则拒绝工作。那能不能一刀切的要求易语言默认采用 asInvoker 呢?恐怕还是不行的,因为修改Windows注册表之类的行为还是必须得有管理员权限的(否则修改无效)。或许在某些条件下可以做一些智能判断?

附 ResHacker (Resource Hacker) 3.6 下载地址:

https://www.jb51.net/softs/2289.html

(0)

相关推荐

  • 易语言静态编译的两种方法总结

    许多刚接触易语言的朋友在画上几个小时的时间写好代码准备编译的时候,或多或少碰到过易语言提示无法定位连接器的问题,导致辛辛苦苦制作的软件无法编译发布,今天小编就来教大家两种解决易语言无法静态编译的方法,大家一定要耐心看完哦,最好能够够跟着教程一步一步操作. 1.首先,打开易语言安装目录,找到"VC98linker"文件夹进入(PS:如果找不到此目录,说明您下载的易语言并非破解版本,请先自行百度搜索下载安装易语言5.11破解版). 2.找到"link.e"文件,打开.(

  • 易语言编译失败的解决办法

    有些朋友在使用易语言编写程序后,编译时出现编译失败的字样,那该怎么办呢?往下看步骤. 1.首先,我们正常编译,看到了出错了吧!看图 2.其次我们找到易语言的运行目录,打开VC98linker文件夹,再打开link.e 3.打开后,如图.运行. 4.运行后,如图所示,单击修改,确定. 5.再次编译一下试试.看!是不是成功了?!

  • 如何编译下载的易语言源码

    很多刚刚接触易语言的网友不知道怎么使用易语言源码,其实易语言的源码也不过是一个加密的文本,里面只有易语言代码,要想使用需要使用易语言打开并编译为exe文件才能使用 1.易语言的源码是以 .e 为后缀的文件,如果下载后的源码是这样的就说明你电脑上已经安装了易语言程序:如果是未知格式就说明电脑没有安装易语言,需要先安装易语言 1.登录易语言官网后,可以点击下载进入易语言下载页面 2.下载并安装易语言 1.安装完易语言后可以双击源码打开 2.也可以用右键点击选择打开方式,再选择使用易语言打开 1.如果

  • 详解易语言IDE配置及编译输出

    易语言IDE 易语言(全称易语言·飞扬)公司垄断了易语言的版权,我们使用的IDE如果不出意外就是市面上唯一的一款易语言IDE(有不同的版本号) 支持库.程序.属性 『支持库』.『程序』.『属性』这三个按钮默认位于IDE的左下角 支持库:提供默认的代码库支持,可以通过工具->支持库配置选择增加新的支持库 程序:主要菜单,编写代码的地方 属性,在可视化状态下点击组件图片会显示相应的属性,可以直接在属性区域对组件进行简单设置(如标题.内容等) 快捷键 编写代码时使用Ctrl+Tab键在菜单间来回切换

  • 易语言监控smtp和反编译获取程序内邮件密码发送信息达到反钓鱼的目的

    监控smtp和反编译获取程序内邮件密码.发送信息达到反钓鱼的目的 反邮箱钓鱼程序源码 .版本 2 .支持库 EThread .支持库 eAPI .支持库 xplib .支持库 edroptarget .支持库 pop3 .支持库 iext .程序集 窗口程序集1 .程序集变量 服务器, 文本型 .程序集变量 帐号, 文本型 .程序集变量 密码, 文本型 .子程序 _拖放对象1_得到文件 .参数 接收到的文件路径, 文本型 .局部变量 钓鱼软件, 字节集 .局部变量 邮箱位置, 整数型 .局部变量

  • 总结易语言几种编译的区别

    几种不同的编译 编译: 将程序进行普通的编译,必须附带相关支持库才能运行,最好是对方电脑装有易语言,一般极少用到(我个人从未使用),但是如果程序是模块文件,则点击这个进行编译. 独立编译: 将程序编译为一个单一的exe文件,在运行的时候会自动把有关的支持文件自动释放到系统临时目录,我觉得也可以把它叫做半独立编译(我也从来不用). 编译生成安装软件: 将程序文件打包成一个安装软件的形式,在别的电脑运行的时候感觉就像安装软件一样,很正式(我从来不用). 编译为易包: 较新的易语言版本新加入的功能,会

  • 实现让易语言编译的32位程序在64位Windows7系统非管理员帐户中执行

    昨天有易语言开发者向我求助,说他用易语言编译的32位程序软件,发布给64位操作系统Win 7用户使用,因为该用户确定没有管理员权限,而程序启动时又要求必须输入管理员密码,如此陷入困境. 目标企业用户管理严格,要求为普通用户分配管理员权限是不切实际的,只能开发人员从软件开发的角度在技术上解决. 我听到这个问题后,第一感觉是微软用户帐户控制(UAC)引发的,估计通过给 exe 添加特定的 manifest 资源应该可以解决.于是我给了他一段代码,让他用 ResHacker 之类的软件添加到软件里面去

  • VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法

    通常用VB 写的程序在32位系统上可以正常的运行,但到了64位系统中虽然可以运行但是无法修改OEM信息.经过查找原因可以发现,当我们在访问文件夹"SYSTEM32"的时候系统会自动转向到文件夹"SYSWOW64"下,当我们在访问某些注册表键值的时候,和文件转向类似,系统也会自动地把程序的访问转向到Wow6432Node下面. 先来谈谈文件系统的转向,查找了一些资料,并没有VB相关的资料,但是可以查到2个相关函数:Wow64DisableWow64FsRedirect

  • 易语言编程入门第一个程序

    目录 易语言的优点: 最早接触易语言是三年前的事情了,那时候是因为DNF这个游戏我才知道了易语言这个编程语言,当时对他就非常的憧憬.只不过那时候易语言的学习资源比较少,而且自身的学业比较重就没有仔细的了解了. 最近几日再回归DNF的时候突然想到了易语言,所以决定抽点空闲时间学习一下,先定一个小目标:做一个DNF的辅助工具!(也许最终都无法完成也说不定) 这是第一天学习的内容 易语言的优点: 1.     代码是中文的,降低了学习的门槛 2.     全可视化编程,即输即画减少了代码出错的可能 3

  • 易语言基础教程之循环程序结构

    曾经听说过一句话:"计算机就擅长做的工作就是'循环'!".的确循环执行在语言中扮演着极为重要的角色,利用循环我们可以实现更复杂.重复性的工作.易语言对于循环程序结构提供四种形式,下面就一起来了解一下易语言中循环结构的具体使用方法. 方法/步骤 在此小编将以实例的方法与大家分享易语言中循环结构的具体使用方法:先创建一个Windows空白窗口,绘制如图所示的人机界面. 接下来为"计算"按钮添加"被单击"事件. 我们先利用"判断循环"

  • 易语言写Hello World简单程序

    易语言如果写Hello World.下面我来给大家写一个各个编程语言都很经典的程序,带大家进入易语言的编程世界! 1.打开易语言: 2.新建易语言窗口程序: 3.美化程序界面: 添加一个按钮,并设置高度宽度及按钮的标题. 4.编写易语言代码: 双击按钮,进入代码编写界面,输入下面的代码: 信息框("Hello World !",0,) 5.按键盘F5调试运行试试: 弹出程序界面,然后我们单击按钮看看. "Hello World !"

  • 易语言制作简单计时器小程序的方法

    简单计时器 易语言制作简单计时器用到以下几个功能: 编辑框 按钮 时钟 变量 如果命令 例程: 说明: 本方法是新手学习易语言制作的软件,深入学习易语言后你将会有更方便的写法 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言使用通用对话框打开程序返回完整路径的文件名

    文件名属性 所属对象:通用对话框   操作系统支持:Windows,数据类型:文本型: 从本属性中读取的文件名包括驱动器符和全路径目录,同时本属性也用作初始对话框中的文件名编辑框. 例程 说明 打开通用对话框成功之后,会返回完整路径的文件名,本属性也可以在初始时设定,打开通用对话框时,对话框就可以直接指向该文件. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 用易语言开发Linux程序的方法

    易语言是一个跨平台的开发工具,支持Windows及Linux.使用易语言,您可以在Windows环境下编写基本于Windows的程序,及编写Linux下的程序,并且可分别发布于多个平台.分别发布时只需选择不同的操作系统即可. 在此,再次通知易语言用户,如果您编写的是基于Windows下的程序,可以使用易语言新版本直接编写,对跨平台没有丝毫影响,跟以前的操作没有两样.如果您想开发基于Linux系统下的程序,请参看以下的说明部分. 本章及以后所有叙述都假设您已安装了最新版本易语言. 一 界面 运行易

  • 64 位 ASP.Net 已注册 需要 32 位 ASP.Net 才能安装 Microsoft Reporting

    64 位 ASP.Net 已注册.需要 32 位 ASP.Net 才能安装 Microsoft Reporting Services 2005 (32 位). 安装SQL 2005时 出现这个错误. 先来看看我们的生产环境 操作系统:Windows Server 2008 R2 64位版本 SQL版本:SQL Server 2005 32位版本 在安装好IIS 和 .net 之后安装SQL 2005 收到了这个错误 64 位 ASP.Net 已注册.需要 32 位 ASP.Net 才能安装 Mi

随机推荐