Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.19;
Скачать: CL | DM;

Вниз

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

 
cyril   (2003-05-07 20:56) [0]

Проблема заключается в следующем:
Есть два приложения, которы обмениваются друг с другом командами
Одно из них мое, и когда я получаю команду, назовем ее
- "показать окно приложения", то пытаюсь выполнить следующий код

SetForegroundWindow(Application.Handle);

Вроде бы должно появиться окно приложения, ан нет, начинает
мигать кнопка на таскбаре, что совершенно не в тему.

Вопрос: можно ли что-нибудь с этим поделать


 
Dmk ©   (2003-05-07 21:28) [1]

Скорее всего нужно так:
SetForegroundWindow(Application.MainForm.Handle);


 
Романов Р.В. ©   (2003-05-07 21:49) [2]

Способ 3
Как утверждает документация, SetForegroundWindow работает как нам нужно, только если вызывающий её процесс является активным. А активен тот процесс, чей поток обрабатывает пользовательский ввод. Оказывается, наш процесс может "прикинуться" активным, подключив свой поток к обработке пользовательского ввода. Это осуществляется при помощи функции AttachThreadInput. После вызова SetForegroundWindow можно будет отключиться от чужого потока, используя ту же функцию (но передавая в качестве третьего параметра FALSE, а не TRUE).

Реализация этой идеи выглядит так.

HWND hCurrWnd;
int iMyTID;
int iCurrTID;

hCurrWnd = ::GetForegroundWindow();
iMyTID = GetCurrentThreadId();
iCurrTID = GetWindowThreadProcessId(hCurrWnd,0);

AttachThreadInput(iMyTID, iCurrTID, TRUE);

// hWnd - дескриптор окна.
SetForegroundWindow(hWnd);

AttachThreadInput(iMyTID, iCurrTID, FALSE);


(C) Александр Шаргин


 
cyril   (2003-05-07 21:56) [3]

Большое спасибо, мне существенно полегчало ;-)



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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
4-60000
Astrov Alseos
2003-03-18 16:45
2003.05.19
Как, при попытке повторного запуска приложения, найти предыдущее?


9-59527
PaRL
2002-12-06 20:51
2003.05.19
Как перевести координаты окна в координаты OpenGL?


14-59889
badaxe2
2003-04-29 13:47
2003.05.19
Кто-нибудь ставил RX Library 2.75 conversion to Delphi 7?


6-59834
Fire Man
2003-03-22 18:39
2003.05.19
Подскажите пожалуйста, как узнать подключен ли комп к Инету и


14-59897
xman
2003-04-29 14:30
2003.05.19
Quake III Arena