2012-01-02 12 views
13

W InnoSetup jest część o nazwie uruchom, która wykona plik exe, plik wsadowy i msi. Możemy również podać parametry wiersza polecenia do tego uruchomienia.Jak uruchamiać pliki exe w skrypcie NSIS?

mogę dostarczyć próbki InnoSetup:

[Run] 
Filename: "{app}\msdirent.exe "; 
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\NETCFSetupv2.msi""" ; Check:ShouldInstallComCtlUpdate ; 

Ale w NSISS Script, jak uruchomić mój exe, a także muszę dostarczyć argumentów wiersza poleceń do danego exe?

Odpowiedz

12

Spróbuj wykonać następujące polecenia

Exec "$APPS\msdirent.exe" 

Dla Command Line args,

Exec "$APPS\msdirent.exe 1" 

do dodawania msdirent.exe do instalatora,

SetOutPath "$APPS" 
File "localpath\msdirent.exe" 

Exec "$APPS\msdirent.exe 1" 
+1

@ Sivakg: Jak spakować że msdirent.exe do instalatora? – karthik

+0

@ Sivakg: +1 za odpowiedź – karthik

+0

Musisz podać te ścieżki poprawnie, patrz podręcznik NSIS lub moja odpowiedź dla przykładów! – Anders

16

Masz 3 NSIS instructions że może rozpocząć nowy proces: Exec, ExecWait i ExecShell (Wewnętrznie dwa pierwsze użycie CreateProcess a ostatni wykorzystuje ShellExecute)

We wszystkich przypadkach SetOutPath ustawia working directory for the child process.

Ważne jest, aby uzyskać prawidłowe cytowanie od NSIS zawiera znaki cudzysłowu 3 i Windows ścieżek z pomieszczenia powinny być cytowane z ":

ExecWait '"$instdir\myapp.exe"' 
Exec '"$instdir\otherapp.exe" param1 "par am 2" param3' 
+0

@ Anders: Dzięki za odpowiedź. Podniosłem twoją odpowiedź, ale Sivakg jest tym, który pierwszy udziela odpowiedzi. – karthik

+0

@karthik Cóż, jego obecna odpowiedź jest błędna, te Exec nie będą działać na wszystkich systemach ... – Anders