Здравствуйте, Аноним, Вы писали:
Vin>>>Ставлю хук WH_SHELL. Всё как положено, сообщения моя программа получает (PostMessage'м посылаю) , но вот остальные программы не отображаются на таскбаре.
HHOOK тоже должен быть расшарен !
А>#pragma data_seg("Shared")
А>HWND hWndServer = NULL;
А>HHOOK hHookKB = NULL, hHookWM = NULL;
А>#pragma data_seg()
А>// Сообщаем компановщику, что раздел Shared, должен быть общим и доступным для
А>// чтения/записи
А>#pragma comment(linker,"/section:Shared,rws")
Народ!!!!
Подскажите кто зает!
Ставлю хук WH_SHELL. Всё как положено, сообщения моя программа получает (PostMessage'м посылаю) , но вот остальные программы не отображаются на таскбаре.
Что за ...?
Здравствуйте, Vin, Вы писали:
Vin>Народ!!!! Vin>Подскажите кто зает! Vin>Ставлю хук WH_SHELL. Всё как положено, сообщения моя программа получает (PostMessage'м посылаю) , но вот остальные программы не отображаются на таскбаре.
Покажи, как ты хук написал этот
Re[2]: Глобальный Хук?
От:
Аноним
Дата:
07.04.03 01:08
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, Vin, Вы писали:
Vin>>Народ!!!! Vin>>Подскажите кто зает! Vin>>Ставлю хук WH_SHELL. Всё как положено, сообщения моя программа получает (PostMessage'м посылаю) , но вот остальные программы не отображаются на таскбаре.
PE>Покажи, как ты хук написал этот
// dll.cpp : Defines the entry point for the DLL application.
//
// Требуем от компилятора разместить переменную hWndServer в отдельном разделе
// данных Shared, а компановщику, сообщаем,
// что данные из этого раздела должны быть доступны всем экземплярам приложения
#pragma data_seg("Shared")
HWND hWndServer = NULL;
#pragma data_seg()
// Сообщаем компановщику, что раздел Shared, должен быть общим и доступным для
// чтения/записи
#pragma comment(linker,"/section:Shared,rws")
////////////////////////////////////
// Функция обработки хука KBHookProc /////////////////////////////////
DLL_API LRESULT CALLBACK KBHookProc(int code,WPARAM wParam,LPARAM lParam)
/* code — Код Хука(Тип)
* wParam — Флаг удаления сообщения
* lParam — Указатель на структуру tagMSG */
{
// Если code<0, просто передаём сообщение дальше и возвращаем 0
// Этого требует спецификация обработчиков хуков
if(code<0)
{CallNextHookEx(hHookKB,code,wParam,lParam); return 0;}
PostMessage(hWndServer,WM_NULL,wParam,lParam);
//Вызываем следующую фильтр-функцию из очереди:
return (CallNextHookEx(hHookKB,code,wParam,lParam));
}/////////////////////////////// конец KBHookProc
////////////////////////////////////
// Функция обработки хука WMHookProc
////////////////////////////////////
DLL_API LRESULT CALLBACK WMHookProc(int code,WPARAM wParam,LPARAM lParam)
// code — Код Хука(Тип)
// wParam — Флаг удаления сообщения
// lParam — Указатель на структуру tagCWPSTRUCT
{
// Если code<0, просто передаём сообщение дальше и возвращаем 0
// Этого требует спецификация обработчиков хуков
if(code<0)
{CallNextHookEx(hHookWM,code,wParam,lParam); return 0;}
// Указатель на сообщение в lParam.
//LPMSG mess = (LPMSG)lParam;
LPCWPSTRUCT cwp = (LPCWPSTRUCT)lParam;