Ветеран
Сообщения: 1216
Благодарности: 486
|
Профиль
|
Отправить PM
| Цитировать
Пример на делфи
читать дальше »
Код: 
function Exec(RunApp : string; cmdline : string) : bool;
var
si : TStartupInfo;
pi : TProcessInformation;
begin
try
ZeroMemory(@si,SizeOf(si));
si.cb := SizeOf(si);
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_SHOW; // SW_HIDE - скрытый запуск
Result := CreateProcess(PChar(RunApp),PChar(' ' + cmdline),nil, nil,False,0,nil,nil,si,pi);
WaitForSingleObject(pi.hProcess, INFINITE); // ожидаем завершения процесса
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
except
Result := false;
end;
end;
//запуск функции
// Exec('путь к makensis', 'путь к скрипту');
Пример на апи, запуск консоли, в скрытом режиме и ожидание завершения. Если все хорошо в $0 возвращается 0
читать дальше »
Код: 
!include "MUI2.nsh"
!include "Util.nsh"
OutFile "Tes_Run_MAKE.exe"
ShowInstDetails show
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
!define INFINITE -1
!define DETACHED_PROCESS 0x00000008
!define ExecWait "!insertmacro ExecWaitCall"
!macro ExecWaitCall CmdLine ExitCode
Push `${CmdLine}`
${CallArtificialFunction} _CallExecWait
Pop ${ExitCode}
!macroend
!macro _CallExecWait
System::Store S
Push error
System::Alloc 72
Pop $2
System::Call "*$2(i72)"
System::Call "*(i,i,i,i)i.r3"
Exch
System::Call "kernel32::CreateProcess(i0, ts, i0, i0, i0, i${DETACHED_PROCESS}, i0, i0, ir2, ir3)i.r4"
${Unless} $4 = 0
Pop $6
System::Call "*$3(i.r4)"
System::Call "kernel32::WaitForSingleObject(ir4, i${INFINITE})"
System::Call "kernel32::GetExitCodeProcess(ir4, *i.s)"
System::Call "kernel32::CloseHandle(ir4)"
${EndUnless}
System::Free $2
System::Free $3
System::Store L
!macroend
Section ""
${ExecWait} '"${NSISDIR}\makensis.exe" "D:\designer\Debug.nsi"' $0
DetailPrint "ExitCode: $0"
SectionEnd
Если через диспетчер завершть makensis - код возврата 1
|
-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.
Последний раз редактировалось kotkovets, 31-07-2011 в 19:39.
Отправлено: 19:25, 31-07-2011
| #1442
|