Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как спрятать уже открытое окно ? [D7, XP]


wazaaa ©   (2007-08-06 19:36:00) 

Project1.exe запускает одну прогу, но мне нужно что бы он при запуске её прятал, тоесть просто не показывал окно програмы, а висел в процесах.
Делаю так:

WinExec('prog.exe', SW_HIDE);

Но после, программа всё ровно поевляется

пробывал так:

var
si : TStartupInfo;
pi : TProcessInformation;

FillChar(si, SizeOf(si), 0);
si.cb := SizeOf(si);
si.dwFlags := STARTF_USESTDHANDLES;
si.wShowWindow := SW_HIDE;
CreateProcess(nil, PChar('prog.exe'), nil, nil, false, 0, nil, nil, si, pi);

всё ровно поевляется.

Значет в програме какой то FORM SHOW стоит.. что при запуске она делает show сама себя.

Идея такая:

После запуска подаждать 1 sec. и уже открытое окно спрятать..

Подскажите как это провернуть ?


wazaaaa   (2007-08-08 16:14:00) [1]

big thx! work !


JanMihail   (2007-08-06 21:51:00) [2]

ShowWindow(       //Состояние отображения окна
Handle,               //хэндл окна
SW_HIDE             //Флаг скрытия
);
Это на всякий случай


JanMihail   (2007-08-06 21:50:00) [3]

SetWindowPos(
Handle,  //окно, позицию которого нужно настроить
Left,     //Его позиция по оси Х
Top,     //Его позиция по оси Y
Width,  //Его ширина
Height, //Его высота
uFlags  //флаги. в данном случае SWP_HIDEWINDOW(скрыть)
);
К тому же и ширину и высоту установив в 0, его и без флага SWP_HIDEWINDOW не должно быть видно.


JanMihail   (2007-08-06 21:47:00) [4]

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 ShowWindow(<хэндл окна>, SW_HIDE);
 SetWindowPos(<хэндл окна>, 0, 0, 0, 0, SWP_HIDEWINDOW);
end;


wazaaaa   (2007-08-06 20:28:00) [5]

как прятать ? меня это и интересует!


JanMihail   (2007-08-06 20:10:00) [6]

ну тогда не знаю. Каждую секунду скрывай его окно. В таймере например


wazaaaa   (2007-08-06 20:05:00) [7]

не, прочитай внемательно..

я запускаю prog.exe (не моя прога, нету исходников)
запускаю prog.exe через свой Project1.exe , и хочю что бы prog.exe был в процесах, но не показывался на экране.
Read post 1 for more info.


JanMihail   (2007-08-06 19:40:00) [8]

Или
ShowWindow(Form1.Handle, SW_HIDE)


JanMihail   (2007-08-06 19:39:00) [9]

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := false;
Application.Run;


Наверх

Титульная страница Поиск, карта сайта Написать письмо