nesco писал(а):
Вот и объясни -- какого черта убитый процесс висит в памяти, как рабочий, и это наблюдается при WinExec и не наблюдается при ShellExecи при WinExec.Wait CreateProcess тоже не наблюдается.
c wordpad.exe получается.
--------------------------------------------------------------------
А можно заменить WinExec.Async так что-бы запуск был через CreateProcess а не WinExec?
-----------
http://pisoft.ru/verstak/createprocess.htm
Легче всего использовать WinExec. Однако Microsoft не рекомендует его использование, а предлагает пользоваться CreateProcess
------------ Дoбавленo в 03.46:
Скопировал calc.exe из system32 в другую папку, теперь работает.
Кто-нибудь знает почему так?
------------ Дoбавленo в 04.58:
заменил процедуру WinExec.Async.
не помогло
procedure THIWinExec.Async;
var
si: Tstartupinfo;
p: Tprocessinformation;
begin
FillChar( Si, SizeOf( Si ) , 0 );
with Si do
begin
cb := SizeOf( Si);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := _prop_Mode;
end;
CreateProcess(nil,PChar(trim(Fn + + Params)), nil, nil,
false, CREATE_DEFAULT_ERROR_MODE, nil, nil, si, p);
WaitForSingleObject(p.hProcess, 0);
_hi_onEvent(_event_onExec);
end;