Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

WinExec. Код возврата   Найти похожие ветки 

 
KoluChi ©   (2002-10-29 12:32) [0]

Как получить возвращаемый код вызываемой программы?
Например, работа с rar.exe (* WinExec("rar.exe", SW_HIDE) *), нужно узнать какой код вернул rar.exe.


 
Arcus ©   (2002-10-29 12:57) [1]

Используй CreateProcess, затем жди окончания WaitForSingleObject и можешь получить требуемое через GetExitCodeProcess


 
KoluChi ©   (2002-10-29 13:38) [2]

Спасибо!


 
KoluChi ©   (2002-10-29 14:21) [3]

Проблемка: с GetExitCodeProcess не работает

function ProgramExecCommonErrorCode(const ExecLine: String; const WindowState: Integer; ErrorCode: PInteger = nil; ShowError: Boolean = false): Boolean;
var
SI: _STARTUPINFOA;
PI: _PROCESS_INFORMATION;
ExitCode: Cardinal;
PrHandle: THandle;
begin
with SI do
begin
lpReserved := nil;
wShowWindow := WindowState;
dwFlags := STARTF_USESHOWWINDOW;
end;
if CreateProcess(PChar(ExecLine), nil, nil, nil, true, {CREATE_NEW_CONSOLE + }NORMAL_PRIORITY_CLASS, nil, nil, SI, PI) then
begin
PrHandle := PI.hProcess;
WaitForSingleObject(PrHandle, INFINITE);
GetExitCodeProcess(PrHandle, ExitCode); {Без этой строки работает, а с ней даже не запускается}
ShowMessage("Exit code=" + IntToStr(ExitCode));
end;
end;




 
Arcus ©   (2002-10-29 15:59) [4]

C ходу вроде все нормально...
Вот кусок из работающей программы, м.б. поможет?
function ...(const CommandLine: string)...;
var PrInfo: PROCESS_INFORMATION;
StInfo: STARTUPINFO;
ExitCode: DWord;
begin
...
ZeroMemory(@StInfo, sizeof(StInfo) );
StInfo.cb:= sizeof(StInfo);
if not CreateProcess(nil, PChar(CommandLine), nil, nil, False, CREATE_NEW_PROCESS_GROUP, nil, PChar(GetMyPathName), StInfo, PrInfo) then Exit;
WaitForSingleObject(PrInfo.hProcess, INFINITE);
GetExitCodeProcess(PrInfo.hProcess, ExitCode);
CloseHandle(PrInfo.hProcess);
CloseHandle(PrInfo.hThread);
if ExitCode <> 0 then Exit;
...


 
KoluChi ©   (2002-10-30 13:27) [5]

Спасибо большое! Действительно работает!



Страницы: 1 вся ветка

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
14-36421
ELKa
2002-11-22 15:50
2002.12.12
Где найти WinTypes.dcu ?


4-36480
Герасимов
2002-10-31 13:32
2002.12.12
Изменение переменных среды окружения Win2k


1-36115
aterm
2002-12-03 11:37
2002.12.12
как отловить вставку из буфера в определенную TMemo?


1-36148
pusrg
2002-12-03 17:13
2002.12.12
Создание подколлекции в элементе коллекции.


7-36431
matrixxxx
2002-10-12 00:00
2002.12.12
Есть документ word как его интегрировать в свою программу, или