· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› PostMessage

Посл.отвђт Сообщенiе


Дата: Май 17, 2004 03:56:13

Привет народ я здесь первый раз!

Функция PostMessage посылает сообщение окну. Вторым параметром ее должен быть хэндл окна.

А можно ли отправить ссобщение приложению не имеющего окна по его hInstanc'у. Чего то у меня не получилось.


Дата: Май 17, 2004 04:09:49

Сообщения бывают разные (через DDE, пайпы и сокеты тоже можно наладить обмен сообщениями), но оконные сообщения обрабатываются оконной процедурой или в самом цикле сообщений, но при условии что окно всё-таки есть. Если окно не нужно, то его можно спрятать... А через instance ничего не выйдет.


Дата: Май 17, 2004 05:02:57

Спасибо.

Я сделал удаленный хук в DLL. Когда происходит нажатие клавиш на клавиатуре DLL посылает сообщение в мою программу (PostMessage). А в программе оконная процедура обрабатывает его. Само окно конечно скрыто, но это дело занимает больше памяти и коду. Хотелось бы покороче и попроще т.е. из DLL отправить сообщение в программу в которой нет окна.


Дата: Май 17, 2004 05:24:06

Поиск по DDE (Dynamic Data Exchange), IPC (Inter Process Communication), MMF (File Mapping) и т.д. в MSDN.


Дата: Май 17, 2004 06:05:54

Объявил свое сообщение:

WM_MYPRESSKEY equ WM_USER+6

Что это значит


Дата: Май 17, 2004 06:12:06

Регистристрируешь свое сообщение через RegisterWindowsMessage, получаешь в ответ его номер, и пользуешься.


Дата: Май 17, 2004 06:25:29

Почему +6 и что есть WM_USER


Дата: Май 17, 2004 06:35:55

WM_USER - это сообщение. Его используют многие программы и компоненты, в частности, практически все элементы управления из common controls для взаимодействия с владельцем контрола используют WM_USER + NNN.


Дата: Май 17, 2004 12:10:07

#define WM_USER 0x0400

сообщения в диапазоне от 0 до WM_USER-1
зарезервированы системой, остальные,
в принципе, можно использовать,
но всё-таки MS описывает их так:
WM_USER through 0x7FFF Integer messages for use by private window classes. 
WM_APP through 0xBFFF Messages available for use by applications. 
0xC000 through 0xFFFF String messages for use by applications. 
Greater than 0xFFFF Reserved by the system for future use. 


Дата: Май 17, 2004 14:52:48

Можно послать сообщение не окну, а потоку через PostThreadMessage (смотреть как обычно в МСДНе). Но перед этим надо выяснить идентификатор потока, а если процесс чужой, то тут уж неизвестно, что проще будет.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.044