![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мастера спасайте!!! [D6, Win2k]
JaMin © (2002-05-06 16:39:00)Объясните мне почему из потока, созданном в главной программе run-time, не посылаются сообщения окнам других приложений?
Например, в потоке вызываю функцию активизации окна другого приложения на что ничего не происходит.
Такая же проблемма и с другими Keyboard Input Functions функциями
Вадим02 (2002-05-12 04:36:00) [1]Чаще всего это возникает из-за того, что этот поток невиден!
С похожей ситуацией я сталкнулся, когда захотел передать
сообщение приложению ActiveX, работающему под Интернетэкс-м.
Я вышел из положения через файл в памяти, но это не самое
лучшее решение! Весь этот интересный механизм обмена сообще
ниями хорошо описан в двухтомнике Стива Тейксейры и Ксавье
Пачеко.
Fellomena (2002-05-07 16:26:00) [2]2 JaMin © (06.05.02 16:39):
Приведи пример кода, где ты, зная дескриптор другого окна не можешь ему послать сообщение.
А передавать окнам нажатия клавиш можно обычными способами - через WinAPI; зачем эта возня с фокусами я не понимаю?
Виктор Щербаков (2002-05-07 08:57:00) [3]Cobalt © (06.05.02 21:51)
SetForegroundWindow работает так прямолинейно как написано, только в Win95. В последующих версиях всё не так просто. Подробно об этом написано в книге Рихтера.
Cobalt (2002-05-06 21:51:00) [4]>Виктор Щербаков © (06.05.02 16:50)
>Просто так попереключать фокус клавиатурного вода между окнами разных процессов не получится.
Это почему?SetForegroundWindow
Активирует окно и направляет клавиатурный и прочий ввод в него (Keyboard input is directed to the window, and various visual cues are changed for the user. )
JaMin (2002-05-06 16:55:00) [5]Как это обойти
sniknik (2002-05-06 16:54:00) [6]А как это обойти?
Виктор Щербаков (2002-05-06 16:50:00) [7]Просто так попереключать фокус клавиатурного вода между окнами разных процессов не получится.
Связано это с тем, что часто пользователи набирают текст не глядя на экран, и если какая-либо прога вздумает забрать себе фокус или отдать его кому-нибудь, то доставит массу неудобств.