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

Почему не скрывается запущенная прога через CreateProcess?   Найти похожие ветки 

 
DDS   (2003-10-25 16:45) [0]

Функция должна запустить прогу (DOS-прога) и не показывая ее подождать ее завершения, но процедура зависает (WaitForSingleObject не заканчивается) если я ставлю si.wShowWindow := SW_HIDE. Помогите, вето процедура:

procedure ExeWait(CmdLine,CurDir,ErrStr:String);
var si:STARTUPINFO;
pi:PROCESS_INFORMATION;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
si.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
si.wShowWindow := SW_HIDE;
if not CreateProcessA(nil,PChar(cmdline),nil,nil,true,NORMAL_PRIORITY_CLASS,nil,Pchar(CurDir),si,pi)
then ShowMessage(errstr) else WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
end;


 
Игорь Шевченко ©   (2003-10-25 21:48) [1]

Чего запускаем ?


 
DDS   (2003-10-26 11:48) [2]

DOS-овскую прогу


 
Rouse_ ©   (2003-10-26 12:35) [3]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure ExeWait(CmdLine,CurDir,ErrStr:String);
var
si:STARTUPINFO;
pi:PROCESS_INFORMATION;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
si.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
si.wShowWindow := SW_HIDE;
if not CreateProcessA(nil,PChar(cmdline),nil,nil,true,
NORMAL_PRIORITY_CLASS,nil,Pchar(CurDir),si,pi)
then
ShowMessage(errstr) else WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ExeWait("C:\Test.exe", "C:\", "Не могу поднять ногУ!!!");
end;

end.


Все работает...

Желаю успехов


 
DDS   (2003-10-28 22:52) [4]

Попробую спасибо...



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

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



Память: 0.46 MB
Время: 0.011 c
14-75324
chs2r
2003-12-01 13:28
2003.12.23
Объясните мне пожалуйста, что такое пиринговые сети.


6-75283
Александр из Минска
2003-10-23 20:11
2003.12.23
Как разорвать соединение с интернетом или с другим компьютером?


1-75184
Mishenka
2003-12-11 16:08
2003.12.23
Можно ли OpenDialog использовать только для одного каталога?


14-75356
Undert
2003-11-29 19:58
2003.12.23
Apollo ?


9-75068
Кен
2003-06-03 03:45
2003.12.23
К GLScene прикрутили bsp и md3. Как теперь между ними проверять и




   Наверх