Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.18;
Скачать: CL | DM;

Вниз

Hook: что неправильно?   Найти похожие ветки 

 
Alx2 ©   (2002-02-13 11:58) [0]

Делаю hook из DLL:

Function SetHook: HHOOK; Stdcall;
Begin
If (AInstance = LongWord( - 1)) Then
AInstance := HInstance;
hhk := SetWindowsHookEx(WH_CBT,
@ShellProc,
HInstance,
0
);
Result := hhk;
End;


Вот ShellProc, которая не работает для других приложений, а для родного, вызывающего SetHook, работает:


Function ShellProc(nCode: Integer; WPARAM, LPARAM: Integer): Integer; Stdcall;
Var
Str : String;
CBTCreateWnd: PCBTCreateWnd Absolute LPARAM;
Begin
Result := CallNextHookEx(hhk, nCode, WPARAM, LPARAM);
If (nCode = HCBT_CREATEWND) And (Pointer(LPARAM) <> Nil) And (CBTCreateWnd^.lpCs <> Nil) Then
Begin
If MyWindow = 0 Then
MyWindow := FindWindow("TWatcherForm", "WatcherForm");
Str := CBTCreateWnd^.lpCs^.lpszClass;
SendMessage(MyWindow, WM_SETTEXT, 8101973, Integer(PChar(Str)));
End;
End;


А если исправить так:

Function ShellProc(nCode: Integer; WPARAM, LPARAM: Integer): Integer; Stdcall;
Var
Str : String;
CBTCreateWnd: PCBTCreateWnd Absolute LPARAM;
Begin
Result := CallNextHookEx(hhk, nCode, WPARAM, LPARAM);
If (nCode = HCBT_CREATEWND) And (Pointer(LPARAM) <> Nil) And (CBTCreateWnd^.lpCs <> Nil) Then
Begin
If MyWindow = 0 Then
MyWindow := FindWindow("TWatcherForm", "WatcherForm");
SendMessage(MyWindow, WM_SETTEXT, 8101973, Integer(CBTCreateWnd^.lpCs^.lpszClass));
End;
End;

- работает всегда.

Что делаю не так? Где грабли?
Что сделать, чтобы работал первый (именно нужный мне) вариант?



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

Текущий архив: 2002.04.18;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.019 c
14-57887
cok
2002-03-08 20:37
2002.04.18
Кто че сделал?


1-57685
dr_neo_rostov
2002-04-07 17:43
2002.04.18
Update for Delphi 6


14-57878
VictorT
2002-03-12 11:48
2002.04.18
О понятии “информация”


7-57907
Shagrath
2002-01-03 18:51
2002.04.18
Как вывести текст и/или рисунок прямо на экран, т.е. поверх всех игр, окон и т. д.


1-57759
Митрий
2002-04-05 16:32
2002.04.18
Помогите чайнику. Не разобраться с TExcelworksheet