| Код | library hook_1; uses Windows, Messages, Sysutils, Forms; var SysHook : HHook = 0; Wnd : Hwnd = 0; app: HWND;
d5:HWND; t:string;
function childwindows(handl:HWND):bool; stdcall; var chilhandle:HWND; begin chilhandle:=FindWindowEx(handl,0,nil,'1248'); //ищем поле с именем 1248 if chilhandle<>0 then begin d5:=chilhandle; //присваиваем глобальной переменной хэндл поля result:=false; end; if chilhandle=0 then exit; end;
function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall; var f:TextFile; cursor:tpoint; hand:hwnd; reload:HWND; addd:HWND; start:bool; exitt:hwnd; begin if code = HC_ACTION then begin if TMsg(Pointer(lParam)^).message = WM_LBUTTONDOWN then //нажимается левая кнопка begin app:=GetForegroundWindow(); //хэндл активного окна reload:=FindWindowEx(app,0,nil,'Обновить') ; //хэндл кнопки Обновить addd:=FindWindowEx(app,0,nil,'Добавить'); //хэндл кнопки exitt:=FindWindowEx(app,0,nil,'Выход'); //хэндл кнопки getcursorpos(cursor); //получаем положение курсора hand:=WindowFromPoint(cursor); //хэндл объекта под курсором if (reload<>0) and (reload=hand)and(start=false) then //если нажата кнопка begin EnumChildWindows(app, @childwindows,0); //функция start:=true; end; if (addd=hand) then //если нажата кнопка добавить begin SetLength(t, SendMessage(d5, wm_gettextlength, 0, 0)); // получаем текст SendMessage(d5, wm_gettext, Length(t)+1, Integer(t)); // из требуемого поля AssignFile(f, 'C:\1.txt'); //записываем в файл if FileExists('C:\1.txt') then Append(f) else Rewrite(f); WriteLn(f,t); CloseFile(f); end; if (exitt=hand) then //если выход start:=false; end;
Result:= CallNextHookEx(SysHook, Code, wParam, lParam); end; end;
procedure hook(switch : Boolean) export; stdcall; begin if switch=true then SysHook := SetWindowsHookEx(WH_GETMESSAGE, @SysMsgProc, HInstance, 0); SysHook := 0; end; exports hook;
end.
|
Не выполняется второе условие...не могу понять почему( поскажите? По отдельности выполняются...а если сначала нажать обновить...а потом нажать добавить то ничего не происходит =(
|