![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго времени суток. Сабж. Я упростил код(создал приложение и добавил неработающий в вин7 код).
Вот код: Код:
unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private FHookStarted : Boolean; //переменая что отвечает включен перехватчик или нет record1,play :boolean; // переменые что отвечает за проигрывание или запись old:integer; f:file; //наш временый файл public { Public declarations } end; var Form1: TForm1; JHook: THandle; implementation {$R *.dfm} function JournalProc(Code, wParam: Integer; var EventStrut: TEventMsg): Integer; stdcall; var x,y,ev,t: integer; begin Result := CallNextHookEx(JHook, Code, wParam, Longint(@EventStrut)); if Code < 0 then Exit; if Code = HC_SYSMODALON then Exit; if Code = HC_ACTION then begin t:=GetCurrentTime-Form1.old; Form1.old:=GetCurrentTime; case EventStrut.message of WM_LBUTTONUP : ev:=1; WM_LBUTTONDOWN: ev:=2; WM_RBUTTONDOWN: ev:=3; WM_RBUTTONUP : ev:=4; WM_MOUSEMOVE : ev:=5; else ev:=0; end; if (ev>=0) and (ev<=5) then begin x:=EventStrut.paramL; y:=EventStrut.paramH; Form1.Memo1.Lines.Add(IntToStr(ev)); Form1.Memo1.Lines.Add(IntToStr(x)); Form1.Memo1.Lines.Add(IntToStr(y)); Form1.Memo1.Lines.Add(IntToStr(t)); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin JHook := SetWindowsHookEx(WH_JOURNALRECORD, @JournalProc, hInstance, 0); record1:=true; if SetWindowsHook(WH_JOURNALRECORD, @JournalProc) > 0 then FHookStarted := True else begin ShowMessage('Невозможно включить запись'); end; end; Должно быть так: все движения и щелчки мыши перекидываются в мемо. В WinXp так и есть, в Win7 пишет ShowMessage('Невозможно включить запись'); Googleние ничего мне не дало. Зарегистрировался здесь ради этого... Я уже не знаю что думать. Помогите пожалуйста. Заранее спасибо за потраченное на меня время. ---------------------------------------------- Возможно есть другой подход, который позволит записывать все действия мыши. Если вдруг кто подумает что это для трояна и/или другого вредоносного ПО, то это не так. Просто хочу написать для своего клана программку, которая будет автоматизировать некоторые действия в игре... Она, точнее уже почти написана.... Просто с моим переходом на вин7 она перестала работать. P.S.: Windows 7 x86 (32 bit) |