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

Вниз

Запускаю CreateProcess ом прогу как скрыть её окошко ?   Найти похожие ветки 

 
borya   (2002-12-26 13:29) [0]

Запускаю CreateProcess"ом прогу как скрыть её окошко
она сама грузит библитеки. и остаётся висеть окошко ака консольное как его спрятать ?


 
Song ©   (2002-12-26 13:46) [1]

Предпоследний параметр в CreateProcess(). У него есть полe wShowWindow


 
borya   (2002-12-27 08:37) [2]

Так ставлю SW_HIDE а ему по барабану, и после запуска ShowWindow тоже не действует


 
Севостьянов Игорь ©   (2002-12-27 11:36) [3]

Такого быть не может - код в студию... (А может это какая-нить DLL запускает свое окно ?)


 
Севостьянов Игорь ©   (2002-12-27 11:38) [4]

Кстати запускаемая тобой прога консольная ? Тогда скорее всего неверно CreateProcess юзаешь - для консольных есть некие отличия от неконсольных приложений


 
borya   (2002-12-27 12:44) [5]

Да консольная она
код

var si:STARTUPINFO;
pi:PROCESS_INFORMATION;
Sa,St:pSECURITYATTRIBUTES;
Begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
si.wShowWindow:=SW_HIDE;
New(Sa);New(st);
sa.nLength :=SizeOf(sa);
sa.lpSecurityDescriptor:=nil;
sa.bInheritHandle:=True;st:=sa;
CreateProcess(nil,PChar(exe),Sa,St,True,0,nil,pChar(dir),si,pi);

End;


 
Севостьянов Игорь ©   (2002-12-27 13:51) [6]

Похоже ты кое-что забыл. Попробуй вот это:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, 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;
hWindow: HWND;

implementation

{$R *.DFM}

function EnumThreadWndProc(Handle: THandle; lParam: Longint): Boolean; stdcall;
begin
hWindow := Handle;
Result := False;
end;

function ExecAndWait(const FileName, Params: ShortString;
const WinState: Word): Boolean;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CmdLine: PChar;
R: DWORD;
begin
CmdLine := PChar(Filename + #32 + Params + #32);
FillChar(StartInfo, SizeOf(StartInfo), 0);
with StartInfo do
begin
cb := SizeOf(StartInfo);
dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
wShowWindow := WinState;
end;
Result := CreateProcess(nil, CmdLine, nil, nil, False,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartInfo, ProcInfo);
{


 
borya   (2002-12-27 13:52) [7]

нет оно подписано С:\...\....\*.exe


 
Севостьянов Игорь ©   (2002-12-27 13:58) [8]


> borya (27.12.02 13:52)
> нет оно подписано С:\...\....\*.exe

Так какая проблема ? В моем примере вместо cmd.exe (приведен для примера) впиши С :\...\....\*.exe


 
borya   (2002-12-27 14:02) [9]

Спасибо
si.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;


 
borya   (2002-12-27 14:23) [10]

путаница вышла
там я пояснение хотел написать мол не библиотечкионо окошко
сенкс



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
1-87499
race1
2003-02-16 12:12
2003.02.27
error


9-87236
NikotiN
2002-09-21 11:14
2003.02.27
Как сохранить и как использовать ландшафт из 3DSMax5(4,3) в Delph


14-87634
Карелин Артем
2003-02-10 16:08
2003.02.27
Заработаем?


14-87651
Начинающий програмер
2003-02-09 21:26
2003.02.27
Аглоритм


3-87245
Anton
2003-02-11 15:11
2003.02.27
Почему может возникнуть такая ошибка