Форум: "Система";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
ВнизЗапускаю 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c