Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Вниз

HOOK WIN32   Найти похожие ветки 

 
GBX   (2002-02-15 07:38) [0]

Господа подскажите как поймать Hook"ом WM_ACTIVATE. Если можно, с примером.


 
Alx2   (2002-02-15 11:37) [1]

Если для всех, то через DLL

SetWindowsHookEx(WH_CBT, @ShellProc, AInstance, 0 );


А вот хучная функция:

Function ShellProc(nCode: Integer; WPARAM, LPARAM: Integer): Integer; Stdcall;
Var
Begin
Result := CallNextHookEx(hhk, nCode, WPARAM, LPARAM);
If nCode = hcbt_ACTIVATE
Then
Begin
// что-то делаем
End;
End;




 
Fellomena   (2002-02-15 13:50) [2]

Hi Alx2 !
Почему WH_CBT, а не WH_GETMESSAGE ?
Если я не ошибаюсь, то WH_CBT используется как тренировочная или что-то типа того...
Хотя... она ведь всё что из Очереди принимает + мышь+ клава... - так ?
Тогда вообще-то можно... надо попробовать.


 
Alx2   (2002-02-15 13:59) [3]

> Fellomena (15.02.02 13:50)
Привет! :)
Можно, конечно, WH_GETMESSAGE.
А WH_CBT - что-то типа для обучющих прог. ( Тут можно и активизацию окошка запретить, если ShellProc в ответ вернет 1). Я ее написал, во-первых, потому-что рядом затравка готовая была с WH_CBT, а во-вторых, (по-моему) будет меньше сыпаться вызовов ShellProc от "левых" месседжей.


 
Fellomena   (2002-02-15 14:43) [4]

ok - принято :)


 
GBX   (2002-02-16 14:13) [5]

Спасибо. Пока ждал ответ, сам сделал то же самое. Но при таком подходе наблюдаются глюки. Берем Handle окна которое активизируется, читаем текст его заголовка. Теперь если шелкнуть по иконке на рабочем столе например "Диск C" то возвращается "Program maneger", хотя на экране окно с заголовком "Диск C", если теперь его закрыть то возвращается "Диск C". Как с этим бороться?


 
Alx2   (2002-02-18 09:47) [6]

Так все правильно. В момент щелчка по иконке активизируется program manager. Когда закрываем "Диск С", это окошко сначала активизируется, а потом закрывается.


 
GBX   (2002-02-20 00:36) [7]

Спасибо. Тогда еще один вопрос. Как поймать WM_CHAR с помощью Hook"a WH_KEYBOARD, или отловив допустим WM_KEYDOWN получить ANSII код введеного символа. Знаю что вопрос суперизбитый, но хорошего ответа я не видел нигде.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
3-80736
Lt. Dennis
2002-04-03 16:46
2002.04.25
Возникла непонятная проблема со связкой IBQuery + IBUpdateSQL


4-81104
Romul
2002-02-18 12:29
2002.04.25
Как воостановить подключение к сетевому диску?


6-81023
Evgeny!
2002-02-13 16:45
2002.04.25
Свой proxy


14-81045
DimaIv
2002-03-18 17:19
2002.04.25
Имеется винчестер с кучей Bad Blockов можно ли сделать


3-80823
Alexandr_
2002-04-05 15:00
2002.04.25
ODAC. Проблема с чтением из BLOB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский