精易论坛

标题: 怎样用易语言创建一个以管理员权限运行的快捷方式? [打印本页]

作者: qw2136    时间: 2025-3-13 05:58
标题: 怎样用易语言创建一个以管理员权限运行的快捷方式?
怎样用易语言创建一个以管理员权限运行的快捷方式?不要告诉我把快捷方式先设置好放在图片资源组再写出文件。我需要用代码创建的以管理员权限运行的一个快捷方式?用代码怎么写?哪位大佬会的?

无标题.png (34.72 KB, 下载次数: 0)

无标题.png

作者: 山猫啊    时间: 2025-3-13 07:02
test.e (4.54 KB, 下载次数: 15)

测试的话随便编译出来然后测试就可以
作者: cckj    时间: 2025-3-13 08:33
  
子程序名返回值类型公开备 注
_创建管理员权限快捷方式整数型 
参数名类 型参考可空数组备 注
目标文件路径文本型
快捷方式路径文本型
快捷方式名称文本型
变量名类 型静态数组备 注
快捷方式对象IWshShortcut 
桌面路径文本型 
桌面路径 = 取特殊文件夹路径 (0)“\” + 快捷方式名称 + “.lnk”
创建对象 (快捷方式对象, “WScript.Shell.CreateShortcut”)
快捷方式对象.TargetPath = 目标文件路径
快捷方式对象.WorkingDirectory = 取目录 (目标文件路径)
快捷方式对象.Description = “以管理员权限运行的快捷方式”
快捷方式对象.Save 快捷方式路径
' 设置快捷方式以管理员权限运行
调用 API (“ShellExecuteW”, , 快捷方式路径, “runas”, , 1)
' 注意:上面的 ShellExecuteW 调用实际上不会直接修改快捷方式属性,
' 它只是用来以管理员权限运行该快捷方式。要真正设置快捷方式以管理员权限运行,
' 需要修改快捷方式的属性,这通常涉及到修改快捷方式的二进制数据或使用其他工具。
' 但由于易语言本身对快捷方式的操作有限,这里提供一个变通的方法:
' 创建一个批处理文件来调用该快捷方式并以管理员权限运行。
变量名类 型静态数组备 注
批处理文件路径文本型 
批处理文件路径 = 取特殊文件夹路径 (0)“\temp_admin_run.bat”
如果 (文件是否存在 (批处理文件路径))
删除文件 (批处理文件路径)

变量名类 型静态数组备 注
批处理文件内容文本型 
批处理文件内容 = @echo off”#换行符“powershell Start-Process """ + 快捷方式路径 + """ -Verb RunAs”
文本写到文件 (批处理文件路径, 批处理文件内容)
' 提示用户运行批处理文件
信息框 (“请双击桌面上的‘” + 快捷方式名称 + “’批处理文件以管理员权限运行目标程序。”, 0, “提示”)
返回 0


i支持库列表   支持库注释   
shell32(未知支持库)

作者: aipca    时间: 2025-3-13 09:28
这个在程序第一次运行的时候,把它写到注册表里去,以后就会以兼容管理员运行。
用到的模块
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
路径文本型 
路径 = 取运行目录 ()“\test.exe”
注册表_写注册项_Ex (4, “SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers”, 路径, 到字节集 (“~ RUNASADMIN”), #REG_SZ, , )


运行以后就会是这样的效果

64位注册表操作模块.zip

5.77 KB, 下载次数: 4


作者: qw2136    时间: 2025-3-18 03:40
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
作者: aipca    时间: 2025-3-24 19:21
qw2136 发表于 2025-3-18 03:40
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

我的方法不是解决问题了吗?




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4