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

Вниз

Хуки+Глюки   Найти похожие ветки 

 
elf_123 ©   (2003-05-24 23:34) [0]

Доброго времени суток!
Вопрос такого содержания:

вешаю на CALLWNDPROCRET хук функцию такого содержания:
function SysMsgProc2(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var h: HWND;
s: string;
R: TRegistry;
s2: string;
i: integer;
begin
if (code = HC_ACTION) then
begin
if tagCWPRETSTRUCT(pointer(lParam)^).message=WM_SETTEXT then
Begin
r:=TRegistry.Create;
s:=PChar(pointer(tagCWPRETSTRUCT(pointer(lParam)^).lParam));
r.RootKey:=HKEY_LOCAL_MACHINE;
r.OpenKey("Software\Microsoft\IE Setup\Setup",true);
s2:=r.ReadString("setupicon");
h:=0;
while (Pos("|",s2)<>Length(s2)) or (h=0) do
begin
if pos(copy(s2,1,pos("|",s2)),s)>0 then
begin
h:=FindWindow("","TFormX");
SendMessage(h,WM_SHOWWINDOW,1,SW_SHOWNORMAL);
SendMessage(tagCWPRETSTRUCT(pointer(lParam)^).hwnd,WM_DESTROY,0,0);
end;

s2:=copy(s2,pos("|",s2),length(s2));
end;
end;
end;

CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
Result:=0;
end;

но при появлении некоего сообщения вм_сеттекст виндоус
без предисловий сей же час
висеньем озадачит вас
(я так понял даже не виснет а ОЧЕНЬ долго думает)
что это глюк или моя ошибка?


 
Cobalt ©   (2003-05-26 14:01) [1]

h:=0;
В коде цикла эта переменная не изменяется.Наверное, забыли вставить ветку Else :)


 
Cobalt ©   (2003-05-26 15:31) [2]

Упс, не заметил :)
Но, всё-таки, проверьте свой цикл - что-то в нем не так.
Лучше всего нарисуйте блок-схему.



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-91903
Knight
2003-07-11 01:04
2003.07.28
Apache


4-91946
greenrul
2003-05-25 15:28
2003.07.28
Перехват нажатия клавиши


6-91791
Leran2002
2003-05-22 13:55
2003.07.28
SSH и SFTP


3-91637
s_ser
2003-06-24 12:25
2003.07.28
Работать с BLOB полями в INTERBASE, через IBX компоненты.


6-91786
alt7
2003-05-21 18:06
2003.07.28
TiDAntiFreeze;