![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Как запустить установочную программу с параметрами?
Например: Если просто открыть файл "SetupWinRar.exe", то он запуститься с вопросом в какую директорию установить прогу, а если запустить через командную строку так: "START SetupWinRar.exe \S", то она установится сама в фоновом режиме. Как сделать это в делфи? |
|
#2
|
||||
|
||||
|
Код:
function ParamCount: Integer; function ParamStr(Index: Integer): string; |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
||||
|
||||
|
в файле проекта первым делом проверять ParamStr(1). если он == '/s', то отображать форму не надо, а выполнять всю работу без окна.
|
|
#5
|
||||
|
||||
|
Цитата:
Что требуется?:
|
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
||||
|
||||
|
Цитата:
Код:
uses ... ShellAPI; ..... ShellExecute(0, 'open', 'SetupWinRar.exe', '\S', nil, SW_NORMAL); |
|
#8
|
||||
|
||||
|
Вариант с ShellExecute я проверил - у меня работает. Единственно только для тихой установки WinRar-овских SFX архивов нужно использовать параметр '/S', а не '\S'.
Вот вариант через CreateProcess: Код:
var SI: TStartupInfo; PI: TProcessInformation; begin FillChar(SI, SizeOf(SI), 0); SI.cb := SizeOf(SI); if not CreateProcess(nil, 'SetupWinRar.exe /S', nil, nil, False, 0, nil, nil, SI, PI) then RaiseLastWin32Error(); CloseHandle(PI.hProcess); CloseHandle(PI.hThread); end; p.s. Естественно путь к файлу "SetupWinRar.exe" должен быть известен. Иначе либо имя этого файла нужно указывать полностью с путём, либо устанавливать текущий путь к этому файлу с помощью SetCurrentDir. |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Erilar (24.10.2012)
| ||