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

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

 
MixAnOL   (2005-11-08 14:43) [0]

Здорово всем!

Необходимо решить такую проблемку...
Мое приложение запускает второе приложение (возьмем для примера пустой проект).
Все делаю как надо:
 FillChar(StartupInfo, Sizeof(StartupInfo), #0);
 StartupInfo.cb := Sizeof(StartupInfo);
...
 StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
 StartupInfo.wShowWindow :=SW_SHOWNOACTIVATE;
...

 if not CreateProcess(nil,
          PChar(Filename), { pointer to command line string }
          nil, { pointer to process security attributes }
          nil, { pointer to thread security attributes }
          false, { handle inheritance flag }
          REALTIME_PRIORITY_CLASS,
          nil, { pointer to new environment block }
          nil, { pointer to current directory name }
          StartupInfo, { pointer to STARTUPINFO }
          ProcessInfo) then
...

При запуске например блокнота, согласно SHOWNOACTIVATE он запускается,а первое приложение остается активным...
Если же взять мое приложение (пустой проект), то оно не соглашается с этим параметром показа окна...

Поиграл с различными параметрами формы - так и не нашел как решить проблему...

Суть - оставить первое приложение фокусированным


 
ShiFT   (2005-11-09 06:34) [1]

может быть тупо, но как вариант.

var
 fWnd : HWND;
...
 fWnd = GetForegroundWindow();

 // твой код

 SetForegroundWindow( fWnd);


 
MixAnOL   (2005-11-09 14:15) [2]

Решил проблемку с помощью добавления
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowWindow(Form1.Handle,SW_SHOWNA);
end;
Приложение запускается и сразу сворачивается, первое остается активным.

Если же надо что бы второе было развернуто, но не активно то добавил еще
ShowWindow(Form1.Handle,SW_SHOWNOACTIVATE);

Если есть еще какие-нибудь более красивые решение - сообщите!


 
Leonid Troyanovsky ©   (2005-11-09 14:51) [3]


> MixAnOL   (09.11.05 14:15) [2]

> Приложение запускается и сразу сворачивается, первое остается
> активным.


Если устраивет, что запускаемое свернуто, то достаточно
StartupInfo.dwFlags  := SW_SHOWMINNOACTIVE

--
Regards, LVT.



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

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



Память: 0.45 MB
Время: 0.028 c
14-1135344631
iamdanil
2005-12-23 16:30
2006.01.22
xpmanifest


14-1134829873
Piter
2005-12-17 17:31
2006.01.22
Чистосердечное признание


8-1123783761
Grief
2005-08-11 22:09
2006.01.22
DirectX SDK


1-1134722112
scorpio_md
2005-12-16 11:35
2006.01.22
Как закрыть EXCEL без запроса на сохранение


2-1135923640
Silver__Dragon
2005-12-30 09:20
2006.01.22
использование звуковых файлов




   Наверх