Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.026 c
4-1131548053
Igor_thief
2005-11-09 17:54
2006.01.22
Работа с реестром чужого пользователя


2-1136193427
Grigirian
2006-01-02 12:17
2006.01.22
Как узнать папку в которой находится ехе файл мое программы


14-1135508385
Kerk
2005-12-25 13:59
2006.01.22
RegExp выделение ссылок


2-1136452710
tytus
2006-01-05 12:18
2006.01.22
Как записать значение в столбец?


5-1121698036
MrTime
2005-07-18 18:47
2006.01.22
Создание значка пользовательского компонента