Главная страница
    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.44 MB
Время: 0.007 c
3-59618
Rise
2003-04-25 15:28
2003.05.19
Delphi и Сайт с БД


6-59822
Мурка
2003-03-21 11:01
2003.05.19
MAC по IP


1-59671
AndreyDm
2003-05-05 12:38
2003.05.19
Получение сообщений от консольного приложения


4-59995
Geka
2003-03-20 09:32
2003.05.19
Не работает запуск программы в Windows 98


3-59551
Dimaz-z
2003-04-25 21:20
2003.05.19
Как скопировать записи из одной базы данных в другую?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский