如何使用Inno Setup的改变可执行文件的权利?(How to change executabl

2019-06-26 17:23发布

我已经通过InnoIDE都向导创建了一个非常简单的脚本INNO。 但是部署的可执行文件可以用普通用户运行。 我怎么可以强制用户必须运行它通过脚本管理员?

[Setup]
AppId={{03E6645E-2C53-4E90-967B-D0833A8EBDAF}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "                {cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: {app}; Flags: ignoreversion; Permissions: admins-readexec; 
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: {app}\{#MyAppExeName}; Description: "{cm:LaunchProgram,    {#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent; 

Answer 1:

不能使用创新科技来改变你的应用程序的权限或清单。

为了使您的应用程序要求管理员权限,您将需要相应的清单添加到它。 这是每一个不同的编程语言不同,但许多相关的问题已经被问和回答。



Answer 2:

更简单的方法为使您的应用程序要求管理员权限:

在添加注册表项,此值可执行文件:

[Registry]
Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueType: string; ValueName: "{app}\{#MyAppExeName}"; ValueData: "RUNASADMIN"; Flags: uninsdeletevalue

我通常喜欢使用上述代码。



文章来源: How to change executable file rights using Inno Setup?
标签: inno-setup