當我以管理員用戶身份運行我的安裝腳本時,它將開始菜單條目放入「所有用戶」配置文件中。我想要將開始菜單項放置在當前用戶的配置文件中,如果他們是管理員用戶並選擇安裝「Just for me」。如何爲管理員用戶創建「僅供我」安裝?
我可以通過爲#define選擇兩個值中的一個來完成,但我無法弄清楚如何創建一個有條件包含的常量。如果選擇了「Just for me」安裝,我已經有一個[Code]部分例程返回true。這裏是場景:
#define StartMenuLocation = "{somegroup}" ; check JustForMeInstall
#define StartMenuLocation = "{anothergroup}" ; check AllUsersInstall
...
[Icons]
Name: "{#StartMenuLocation}\{#MyAppName}" ; Filename: "{app}\{#ExeName}" ; parameters: "{#CommandArgs}" ; comment: "Starts {#MyAppName} {#MyAppVersion}"
...
[Code]
function JustMeInstall : boolean ;
begin
Result := (InstallationType = itJustMe) ;
end ;
function AllUsersInstall: boolean ;
begin
Result := (InstallationType = itAllUsers) ;
end ;
其中#defines的「檢查」參數不支持,當然被忽略。
因此,其實兩個問題:
什麼常數我用它來定義開始菜單文件夾位置。 - InnoSetup提供
{group}
,但該文件夾是在所有用戶配置文件下創建的,除非安裝該應用程序的用戶沒有管理權限,在這種情況下,它是在用戶配置文件中創建的。我想爲當前用戶啓動菜單文件夾設置一個常量,該文件夾在該用戶以管理員用戶身份登錄時起作用。如何實現如上所示的條件#define(無論如何,這個問題之外的普遍興趣)。
感謝@Deanna你反斜線得到了由標記吞噬 - 它應該閱讀'{} userprograms \ {組名}或{commonprograms} \ {groupname}'。 – rossmcm
謝謝,更新:) – Deanna