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

Вниз

Xук на сообщение WM_SYSCOMMAND:SC_MAXIMIZE   Найти похожие ветки 

 
Углук ©   (2007-07-02 19:02) [0]

Делаю хук на сообщение WM_SYSCOMMAND:SC_MAXIMIZE/SC_MINIMIZE;


Var SysHook:HHook=0;

Function SysMsgProc(Code:Integer; WParam:LongInt; LParam:LongInt):LongInt; stdcall;
Var Msg:TMessage;
Begin
if Code = HCBT_SYSCOMMAND then
begin
if WParam=SC_MINIMIZE then
SendMessage(FOrm1.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0)
else if WParam=SC_RESTORE then
SendMessage(FOrm1.Handle,WM_SYSCOMMAND,SC_RESTORE,0);
end else CallNextHookEx(SysHook,Code,WParam,LParam);
end;

procedure Hook(Flag:Boolean;dwThreadId:DWORD); export; stdcall;
Begin
IF Flag then SysHook:=SetWindowsHookEx(WH_CBT,@SysMsgProc,HInstance,dwThreadId) Else
Begin
 UnhookWindowsHookEx(SysHook);
 SysHook:=0;
End;
End;
exports Hook;

        Внутри программы выполняется:

dwDestThreadId:DWORD;
HDLL:DWORD;
begin
dwDestThreadId:= GetWindowThreadProcessId(H, nil);
@Hook:=nil;
HDLL:=LoadLibrary(pchar("Look.dll"));
@Hook:=GetProcAddress(HDLL,"Hook");
Hook(True,dwDestThreadId);


После чего целевое приложение, на которое ставится хук, перестает реагировать
на все нажатия мыши, клавиатуры и т.д. Kак решить?


 
Rouse_ ©   (2007-07-02 22:09) [1]

Ты разрываешь цепочку.

> Kак решить?
Передавать сообщение дальше по цепочке ловушек вызовом CallNextHookEx. Пересмотри логику своей SysMsgProc.


 
Rouse_ ©   (2007-07-02 22:12) [2]

Да, еще... Var SysHook:HHook=0; - это ошибка, читай статью по ловушкам на данном сайте от Алексея Павлова. Он там все разжевал.


 
Углук ©   (2007-07-03 13:33) [3]

В статье Алексея Павлова пример не компилируется.


 
Углук ©   (2007-07-03 13:33) [4]

То есть компилируется,сорри, но выдает ошибку загрузки DLL


 
Углук ©   (2007-07-03 13:40) [5]

В общем, благодаря совету Ins"а на Delphikingdom удалось избавиться от блокировки приложения, но...теперь вылазит AV при cовершении сворачивания окна...сейчас посмотрим, в чем дело


 
Инс ©   (2007-07-03 14:00) [6]

Вот на Delphikingdom я тебе и написал в чем проблема


 
Углук ©   (2007-07-03 16:02) [7]

Проблема решилась! Спасибо Инсу. Правда, остался один вопрос.
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=53346



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

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

Наверх




Память: 0.46 MB
Время: 0.045 c
2-1200743036
Squirrel
2008-01-19 14:43
2008.02.10
использование дерева


15-1200054385
Ega23
2008-01-11 15:26
2008.02.10
Надо работать с UDP


2-1200396419
Lamer666
2008-01-15 14:26
2008.02.10
MessageDLG со своим Caption-ом и картинкой?


2-1200213662
Kotov
2008-01-13 11:41
2008.02.10
Своё приложение вместо bat-файла- Возможно?


15-1199955435
koha overload
2008-01-10 11:57
2008.02.10
Кто работал с ресурсами?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский