1

什么是“所有用户”常量?我需要在此目录中创建一些快捷方式:“C:\Users\All Users\Microsoft\Windows\GameExplorer”

有人可以帮助我吗?

4

2 回答 2

2

所有用户文件夹的 inno 设置中没有特殊常量,{group} 和一些 contants 引用所有用户配置文件但不是所有用户文件夹,因此您可以使用以下方法来满足您的需求。

[Tasks]
Name: "Myicon"; Description: "Create an icon in Games explorer"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked


[Icons]
Name: "{%ABCDEFA|C:\Users\All Users\Microsoft\Windows\GameExplorer}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" ; Tasks:Myicon 

将这些行添加到您的脚本中。这将在“C:\Users\All Users\Microsoft\Windows\GameExplorer”位置创建图标..您可以在任何地方创建图标。

这可以在其他 inno setup 常量之一的帮助下完成

{%NAME|DefaultValue} 嵌入环境变量的值。

•NAME 指定要使用的环境变量的名称。

•DefaultValue 确定用户系统上不存在指定变量时要嵌入的字符串。• 如果您希望在常量内包含逗号、竖线(“|”)或右大括号(“}”),您必须通过“%-encoding”对其进行转义。将该字符替换为“%”字符,后跟其两位十六进制代码。逗号是“%2c”,竖线是“%7c”,右大括号是“%7d”。如果要包含实际的“%”字符,请使用“%25”。

•NAME 和DefaultValue 可以包含常量。请注意,您不需要如上所述转义常量的右大括号;仅当在其他地方使用右大括号时才需要这样做。

例子:

{%COMSPEC} 
{%PROMPT|$P$G}

如果需要,您可以使用这个简单的测试脚本。我已经对此进行了测试,并且对我来说工作正常。

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{E17175FC-0DF4-4B56-B50D-40D83EA8E19E}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

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

[Tasks]
Name: "Myicon"; Description: "Create an icon in Games explorer"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

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

[Icons]
Name: "{%ABCDEFA|C:\Users\All Users\Microsoft\Windows\GameExplorer}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" ; Tasks:Myicon 

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
于 2013-07-10T05:40:47.440 回答
2

您应该使用适当的 API 调用来执行此操作。请参阅使用 DLL帮助主题以了解如何从 Inno 的[Code].

于 2013-07-09T20:45:31.507 回答