![]() |
|
|
Регистрация | << Правила форума >> | 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)
|