Вниз
Скачать: CL | DM;

CreateProcess   Найти похожие ветки 

← →
Shmel ©   (2001-11-08 21:15) [3]

Вот когда-то писал :)
function FileExecuteWait(outpath,temppath,base:string): Integer;
var
FileName, Params, StartDir: string;
Info: TShellExecuteInfo;
ExitCode: DWORD;
p:HWND;
begin
FileName:=temppath+"My.EXE";
Params:="";
StartDir:=outpath;
FillChar(Info, SizeOf(Info), 0);
Info.cbSize := SizeOf(TShellExecuteInfo);
with Info do begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(FileName);
lpParameters := PChar(Params);
lpDirectory := PChar(StartDir);
nShow := SW_Hide;
end;
if ShellExecuteEx(@Info) then begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(Info.hProcess, ExitCode);
p:=FindWindow("#32770", nil); // убивает возникающие окна с ошибками
if (p<>0) then begin
postmessage(p, wm_quit,0,0);
End;
until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
Result := ExitCode;
end
else Result := -1;
end;

Можно еще и Так:

Function waitexec(outpath,temppath,base:string):Integer;
VAr Sp:TStartupInfo;
Pp:TProcessInformation;
Begin
FillChar(Pp,SizeOf(Pp),#0);
FillChar(Sp,Sizeof(Sp),#0);
Sp.cb := Sizeof(Sp);
Sp.dwFlags := STARTF_USESHOWWINDOW;
Sp.wShowWindow :=0; //DisplayMode;
chdir(Outpath);
if not CreateProcess(nil,
PChar(temppath+"My.EXE "+ "param"), { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
False, { handle inheritance flag }
CREATE_DEFAULT_ERROR_MODE or
CREATE_NEW_CONSOLE or { creation flags }
HIGH_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
Sp, { pointer to STARTUPINFO }
Pp) { pointer to PROCESS_INF }
then Begin
result:=-1;
end
else begin
WaitforSingleObject(Pp.hProcess,INFINITE);
GetExitCodeProcess(Pp.hProcess,Cardinal(Result));
CloseHandle(Pp.hProcess);
CloseHandle(Pp.hThread);
Pp.hProcess:=0;
Pp.hThread:=0;
end;
End;






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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.006 c
1-28459
SerGa
2001-12-21 21:22
2002.01.10
Реестр и NT


1-28456
Serg5
2001-12-21 19:36
2002.01.10
Знатоки, подскажите. плиз, как запретить ввод любых значений в StringGrid, кроме первой колонки. Т.е. остальные попросту у меня предназначенны для отображения результата.


14-28540
savva
2001-11-15 12:28
2002.01.10
Поздравляем сегодня человека с ником Jey - у него сегодня день ВАРЕНЬЯ!!! (и подружнее товариши:)))


3-28433
kd
2001-12-10 08:03
2002.01.10
SQL


1-28511
VadX
2001-12-21 15:29
2002.01.10
Вопрос




   Наверх