Главная страница
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.015 c
1-91751
Relaxxx
2003-07-15 15:25
2003.07.28
ФОрмирование вывода Time


7-91925
slex
2003-05-19 14:40
2003.07.28
Поиск имён классов


7-91929
RRR
2003-05-19 14:56
2003.07.28
IRDA ...


1-91715
Nikolai_S
2003-07-14 15:07
2003.07.28
Вызов процедур из TList


6-91802
Aleksei85
2003-05-18 01:02
2003.07.28
Как узнать, скачивается информация(через модем) или нет