Главная страница
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.013 c
1-57728
$hiC0
2002-04-08 16:38
2002.04.18
Цвета в TChart


1-57715
Tiomik
2002-04-08 12:39
2002.04.18
какие книги посоветуете начинающему програмисту???


1-57738
ymin
2002-04-05 11:56
2002.04.18
Как в 1-й форме ввести строку, потом нажать на кнопку и во второй


1-57821
Rammst
2002-04-07 06:25
2002.04.18
Работа с ini


3-57646
phantom2040
2002-03-26 15:59
2002.04.18
Как упаковать таблицу??