![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Delphins |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 10.8.2005 Где: Россия, Краснодар Репутация: нет Всего: нет |
Так как приложение без формы то незнаю как обрабатывать сообщения о том что пришли данные. Оповещение приходит ввиде сообщений Windows.
WSAAsyncSelect( Sock, Handle, WM_SOCKET, FD_ACCEPT + FD_READ + FD_CLOSE ); Так задаю что сообщение WM_SOCKET при приеме данных, соеденении и отключении. А как потом их обработать? И что писать в Handle? Как его узнать? Вопрос в теме WinApi т.к. впорос не по сокету а потому как обработать сообщения и как получить хэндл программы. Юнит forms подключать нельзя! |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Попробуй так:
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Сообщения посылаются именно окну. Без окна ты их не получишь.
Создай элементарное окно, но не показывай его, а только используй для ловли событий. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
а application.handle не подойдёт, application как окно получает сообщения или нет?
|
|||
|
||||
| Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Написано же - без формы.
TApplication живет именно в нем. |
||||
|
|||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Получит, но далеко не все. Например, можно получить общесистемные сообщения типа WM_HOTKEY или WM_ENDSESSION. |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: нет Всего: 4 |
Сказано ж: получать сообщения могут только окна! -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| rsm |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Да ну?
Если лень компилировать, в аттаче есть готовый ЕХЕшник. Присоединённый файл ( Кол-во скачиваний: 9 )
hotkeyx.zip 4,54 Kb |
||||
|
|||||
| Delphins |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 10.8.2005 Где: Россия, Краснодар Репутация: нет Всего: нет |
Спасиба.
|
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: нет Всего: 4 |
ок, отредактировал
RegisterHotKey(0, MY_HOT_KEY, MOD_WIN + MOD_ALT, VK_F11); Обрати внимание на жирный участок строчки из твоего примера. Это ничто иное как HWND_DESKTOP ! Т.е. сообщения у тебя получает окно эксплорера! От этого суть не меняется: сообщения получают только окна. Это сообщение отредактировал(а) Girder - 23.8.2005, 12:45 -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: нет Всего: 4 |
А окно, получив твоё сообщение, перенаправляет его в оконную процедуру, где ты его и забираешь своим кустарным методом.
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| rsm |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
Ну эт я знаю. Просто использую сразу значение, а не именованную константу.
Сообщения получают не только окна, но еще и треды запущенных в системе процессов. Хотите доказательств? Их есть у меня!
Перевод выделенного курсивом предложения: Если этот параметр равен нулю, сообщение WM_HOTKEY посылается в тред, вызвавший функцию RegisterHotKey, и должно быть обработано в цикле обработки сообщений. |
||||||||
|
|||||||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Окно! Без окна тут не обойтись. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
внесу-ка я разнообразие
окна вообще не получают сообщений сообщения всегда посылаются в очередь потока если используются функции Send(Post)Message, сначала происходит определение потока, создавшего окно, а потом сообщение кидается в его (потока) очередь сообщений и оттуда с помощью DispatchMessage вызывается оконная процедура, а окно ничего никуда не перенаправляет... сообщение вообще можно отослать напрямую потоку с помощью функции PostThreadMessage (как, впрочем, и происходит в большинстве программ с сообщение WM_QUIT при закрытии главного окна) -------------------- qqq |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 1 Всего: 62 |
maxim1000
Спасибо, наконец кто-то прояснил ситуацию! |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |