我有一个安装程序(Inno-Setup),它将我的应用程序安装到用户定义的路径。在安装程序结束时,我想创建一个快捷方式,以管理员特权启动应用程序。这个解决方案应该适用于从winXP到Win7的所有Windows版本。
我该怎么做才能实现这个目标?
我知道可以使用批处理脚本(执行一个不好的VB脚本)来实现。缺点是会弹出cmd窗口,而且我猜它只适用于win7。
我还尝试使用命令mklink
创建超链接,但由于无法传递设置管理员权限的参数,因此它不起作用。
我有一个安装程序(Inno-Setup),它将我的应用程序安装到用户定义的路径。在安装程序结束时,我想创建一个快捷方式,以管理员特权启动应用程序。这个解决方案应该适用于从winXP到Win7的所有Windows版本。
我该怎么做才能实现这个目标?
我知道可以使用批处理脚本(执行一个不好的VB脚本)来实现。缺点是会弹出cmd窗口,而且我猜它只适用于win7。
我还尝试使用命令mklink
创建超链接,但由于无法传递设置管理员权限的参数,因此它不起作用。
runas
来完成。 - Deannajava.exe
将导致尝试以管理员身份运行所有Java应用程序。 - DeannaShellExecute()
中的 runas
动词以其他用户身份运行,但这将删除访问本地配置文件的任何能力。当您的 exe 发现它没有完全的管理员访问权限时,可以从中执行此操作。"ShellExecute()
是一个 Win32 API 函数,您可以从应用程序中调用它。其中一个参数是 verb
,您需要将其传递为 runas
。网上有很多示例,但确切的使用取决于您的代码所使用的语言。 - Deanna可以完成shortcutjs.bat
:
shortcutjs.bat -linkfile tst6.lnk -target "%cd%\myscript.bat" -adminpermissions yes
-adminpermissions yes
是用于如果您想以管理员身份运行批处理文件。您需要输入脚本的完整路径。
"以管理员身份运行" 的选项会在 .lnk
文件中设置一个二进制标志(第21个字符),脚本也是通过读取该文件的二进制流并更改该值来实现此功能。
runas /user:admin
在命令行上提示输入密码并不是用户应该得到的选项,应该弹出对话框提示。 - Chrissmklink
)又有所不同。您正在询问快捷方式(一个.lnk
文件)。 - Deanna