Вниз
Скачать: 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.026 c
1-1134687807
Батала
2005-12-16 02:03
2006.01.22
Как определить какая кнопка нажата (не путать с символами)?


14-1135337499
Хинт
2005-12-23 14:31
2006.01.22
Стандартную иконка Delphi7


2-1136390857
St74
2006-01-04 19:07
2006.01.22
Как перехватить ошибку в приложении?


11-1117558230
Zoom
2005-05-31 20:50
2006.01.22
MHFindReplaceDialog


14-1136116968
ArtemESC
2006-01-01 15:02
2006.01.22
Интрепретаторы...




   Наверх