【问题标题】:How do I create a shortcut to CMD.EXE that asks for elevation using INNO Setup?如何使用 INNO 设置创建 CMD.EXE 的快捷方式,要求提升?
【发布时间】:2011-01-30 05:35:18
【问题描述】:

使用 INNO 设置我目前在 [ICONS] 部分下有以下条目:

Name: "{group}\My App\My App - Command Prompt"; Filename: "cmd.exe"; WorkingDir: "{app}"

此快捷方式会直接在我的应用程序文件夹中启动命令提示符。不幸的是,它没有以提升的方式启动,这意味着用户从那里运行的命令没有适当的权限。

使用 INNO Setup,我如何创建需要提升的 CMD.exe(在特定文件夹中)的快捷方式?

可以通过清单文件为其他应用程序执行此操作。我的问题是,我如何使用 INNO 来使用它,如果我不能,我的替代方案是什么?

【问题讨论】:

  • 您的意思是管理权吗?您可以使用 COM 对象 (CreateComObject(CLSID_ShellLink)) 进行设置。

标签: uac inno-setup shortcuts elevation


【解决方案1】:

快捷方式的管理属性是一个兼容性设置,您不应该以编程方式设置它。用户运行的命令应该通过拥有适当的清单来请求管理权限。用户还可以通过右键单击快捷方式并选择以管理员身份运行来选择提升自己。

如果您总是想立即升级,您可以在您的应用程序文件夹中放置一个小实用程序,并标有管理清单。这个实用程序所做的就是生成 cmd.exe。这样您就可以避免弄乱兼容性设置。

如果您仍想使用兼容性设置,请查看 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 和 HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 注册表项。您也可以使用 Inno Setup 的内置 IUnknown 支持,但这是更多的工作。请参阅 CodeAutomation2.iss 示例脚本和http://social.msdn.microsoft.com/Forums/en-US/windowssecurity/thread/a55aa70e-ae4d-4bf6-b179-2e3df3668989

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多