![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему SendMessage работает, а PostMessage нет?
p_evghenii © (2007-12-20 16:28:00)Посылаю всем окнам сообщение:
SendMessage(HWND_BROADCAST,FM_Stop, pi.dwProcessId,0);
При этом все отрабатывает отлично. В другом приложении проверял, сообщение доходит. Но SendMessage мне не подходит, т.к. приложение ждет, пока сообщение дойдет до всех. Поэтому поменял на PostMessage(HWND_BROADCAST,FM_Stop, pi.dwProcessId,0).
Теперь приложение не ждет, а продолжает свой ход, но сообщение не доходит до другого окна.
Как победить?
И еще: если посылаю SendMessage(HWND_BROADCAST,FM_Stop, pi.hProcess,0);, где pi (PROCESS_INFORMATION) -процесс, созданный при помощи CreateProcess, то перехватывая это сообщение в другом приложении и проверяя ExitCodeProcessResult := GetExitCodeProcess(hProcess, lpExitCode); возвращает False, и Getlasterror = 6, что обозначает, что неверный хендл, хотя цифры и в одном и в другом приложении одинаковые...
(2008-10-06 12:08:00) [1]Удалено модератором
(2008-10-06 12:08:00) [2]Удалено модератором
(2008-10-06 12:07:00) [3]Удалено модератором
Сергей М. (2007-12-20 16:54:00) [4]Про хэндлы, надо понимать , тоже проникся ?
p_evghenii (2007-12-20 16:40:00) [5]Спасибо, подошло SendNotifyMessage
Сергей М. (2007-12-20 16:34:00) [6]
> SendMessage мне не подходит, т.к. приложение ждет
На синхронном SendMessage свет клином сошелся ?
Есть же модификации этого вызова - SendMessage XXX() ..
Сергей М. (2007-12-20 16:32:00) [7]
> сообщение не доходит до другого окна
Оно, это другое окно, тебе об этом само сообщило по великому секрету ?)
> обозначает, что неверный хендл
И правильно обозначает.
Хэндл есть понятие не глобально уникальное.