温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

易语言制作UAC管理员模式添加器

发布时间:2020-10-08 00:06:19 来源:脚本之家 阅读:220 作者:易语言源码贝贝吧 栏目:编程语言

DLL命令表

.版本 2
.DLL命令 BeginUpdateResource, 整数型, "kernel32.dll", "BeginUpdateResourceA"
  .参数 pFileName, 文本型
  .参数 bDeleteExistingResources, 逻辑型
.DLL命令 UpdateResource, 逻辑型, "kernel32.dll", "UpdateResourceA"
  .参数 hUpdate, 整数型
  .参数 lpType, 整数型
  .参数 lpName, 整数型
  .参数 wLanguage, 整数型
  .参数 lpData, 整数型
  .参数 cbData, 整数型
.DLL命令 EndUpdateResource, 逻辑型, "kernel32.dll", "EndUpdateResourceA"
  .参数 hUpdate, 整数型
  .参数 fDiscard, 逻辑型
.DLL命令 FindResource, 整数型, "kernel32.dll", "FindResourceA"
  .参数 hModule, 整数型
  .参数 lpName, 整数型
  .参数 lpType, 整数型

常量数据表

常量名称 Manifest清单数据
常量值
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="">
<assemblyIdentity version="1.0.0.0" name=".add"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
   <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
   </requestedPrivileges>
  </security>
</trustInfo>
</asmv1:assembly>

UAC管理员模式添加器

此功能需要加载Ex_DirectUI 2.0模块

.版本 2
.支持库 edroptarget
.支持库 iconv
.支持库 spec
.程序集 窗口程序集
.程序集变量 DUI, Ex_DirectUI
.程序集变量 分组框, 分组框_Ex
.程序集变量 标签, 标签_Ex
.程序集变量 编辑框, 编辑框_Ex
.程序集变量 按钮, 按钮_Ex, , "2"
.子程序 __启动窗口_创建完毕
DUI.挂接皮肤 (取窗口句柄 (), , 取字节集数据 ({ 70, 185, 240 }, #整数型, ), , , , #外形方式_矩形)
分组框.创建 (取窗口句柄 (), 12, 32, 356, 66, , , , , , , , , RGB2ARGB (#白色, 190), , #外形方式_矩形, )
标签.创建 (取窗口句柄 (), 18, 42, 100, 20, “请选择PE文件:”)
编辑框.创建 (取窗口句柄 (), 108, 40, 194, 20, , , , , , , , , #输入方式_只读方式)
按钮 [1].创建 (取窗口句柄 (), 308, 40, 50, 21, “...”)
按钮 [2].创建 (取窗口句柄 (), 22, 68, 336, 21, “ 一键向PE文件添加UAC(可拖入PE文件至本窗口)”)
按钮 [2].图标 (#添加图标)
按钮 [1].挂接事件 (#事件_左键按下, &按钮1_被左键按下)
按钮 [2].挂接事件 (#事件_左键按下, &按钮2_被左键按下)
拖放对象.注册拖放控件 (取窗口句柄 ())
.子程序 按钮1_被左键按下
.如果真 (通用对话框.打开 () = 真)
  编辑框.内容 (通用对话框.文件名)
.如果真结束
.子程序 按钮2_被左键按下
.如果真 (编辑框.内容 () = “”)
  信息框_Ex (取窗口句柄 (), “一键向PE文件添加UAC(可拖入PE文件至本窗口)!”, #确认钮, “提示”, #信息图标)
  返回 ()
.如果真结束
.如果 (更新Manifest清单 (编辑框.内容 (), 编码转换 (到字节集 (#Manifest清单数据), #编码_char, #编码_UTF_8, )))
  信息框_Ex (取窗口句柄 (), “向指定PE文件添加UAC成功!”, #确认钮, “提示”, #信息图标)
.否则
  信息框_Ex (取窗口句柄 (), “向指定PE文件添加UAC失败!”, #确认钮, “提示”, #错误图标)
.如果结束
.子程序 _拖放对象_得到文件
.参数 接收到的文件路径, 文本型
.如果 (到小写 (取文件格式 (接收到的文件路径)) = “exe”)
  编辑框.内容 (接收到的文件路径)
.否则
  信息框_Ex (取窗口句柄 (), “请拖放PE文件到本窗口!”, #确认钮, “提示”, #错误图标)
.如果结束
.子程序 取文件格式, 文本型
.参数 文件名, 文本型
返回 (取文本右边 (文件名, 取文本长度 (文件名) - 倒找文本 (文件名, “.”, , 假)))
.子程序 更新Manifest清单, 逻辑型
.参数 PE文件路径, 文本型
.参数 清单数据, 字节集
.局部变量 hUpdate, 整数型
.局部变量 hModule, 整数型
.局部变量 ret, 逻辑型
hUpdate = BeginUpdateResource (PE文件路径, 假)
hModule = GetModuleHandle (PE文件路径)
.如果真 (FindResource (hModule, 1, 24) ≠ 0) ' 判断PE文件是否存在Manifest清单
  UpdateResource (hUpdate, 24, 1, 0, 0, 0) ' 删除PE文件中的Manifest清单
.如果真结束
UpdateResource (hUpdate, 24, 1, 2052, 取变量数据地址 (清单数据), 取字节集长度 (清单数据)) ' 加入UAC的清单数据
ret = EndUpdateResource (hUpdate, 假)
.如果真 (ret = 假)
  hUpdate = BeginUpdateResource (PE文件路径, 假)
  UpdateResource (hUpdate, 24, 1, 2052, 取变量数据地址 (清单数据), 取字节集长度 (清单数据))
  ret = EndUpdateResource (hUpdate, 假)
.如果真结束
CloseHandle (hModule)
返回 (ret)

运行结果:

易语言制作UAC管理员模式添加器

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对亿速云的支持。如果你想了解更多相关内容请查看下面相关链接

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI