2016-03-03 6 views
1

Функция поддержки GetCmdTail возвращает все параметры командной строки, переданные в Setup или Uninstall, в виде одной строки. Это дает:Inno Setup возвращает только указанные пользователем ключи командной строки

/SL5="$A808E8,550741730,269824,D:\Setup.exe»/ DEBUGWND = $ 6A0ACA/VERYSILENT/suppressmsgboxes/closeapplications/restartapplications/Norestart

Есть другая функция или простой способ просто возвращая пользователя указанную ключи командной строки:

/VERYSILENT/suppressmsgboxes/closeapplications/restartapplications /Norestart

в данном конкретном случае, за исключением записи /DEBUGWND и/или любых других параметров, которые не были указаны пользователем?

ответ

2

на основе аналогичного кода я использую для run an elevated installer:

function GetUserCmdTail: string; 
var 
    I: Integer; 
    S: string; 
begin 
    for I := 1 to ParamCount do 
    begin 
    S := ParamStr(I); 
    { Filter all internal Inno Setup switches } 
    if (CompareText(Copy(S, 1, 5), '/SL5=') <> 0) and 
     (CompareText(Copy(S, 1, 10), '/DEBUGWND=') <> 0) and 
     (CompareText(Copy(S, 1, 10), '/SPAWNWND=') <> 0) and 
     (CompareText(Copy(S, 1, 11), '/NOTIFYWND=') <> 0) and 
     (CompareText(S, '/DETACHEDMSG') <> 0) and 
     (CompareText(S, '/DebugSpawnServer') <> 0) then 
    begin 
     Result := Result + AddQuotes(S) + ' '; 
    end; 
    end; 
end; 
+0

Спасибо Мартину. Работает отлично. –