Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мастера спасайте!!! [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]

Просто так попереключать фокус клавиатурного вода между окнами разных процессов не получится.
Связано это с тем, что часто пользователи набирают текст не глядя на экран, и если какая-либо прога вздумает забрать себе фокус или отдать его кому-нибудь, то доставит массу неудобств.


Наверх

Титульная страница Поиск, карта сайта Написать письмо