Вниз
Скачать: CL | DM;

Hook для блокировки компа   Найти похожие ветки 

← →
ZDDR ©   (2004-04-15 22:17) [0]

Уважаемые мастера вот состряпал библотеку для блокировки управления компьтером
но проблема некоторые игры выдают ошибу когда ставится ловушка
программа выполнела недопустмую операцию
пожайлуста посоветуйте что можно сделать

library key;
uses
 WinTypes,
 WinProcs,
 Messages;

const

var
 HookHandle: hHook;

function KeyHook(Code: integer; WParam: word; LParam: Longint): Longint;stdcall
var
 wnd: hWnd;
begin
 if Code >= 0 then begin
  result:=1
 end else
   Result := CallNextHookEx(HookHandle, code, WParam, LParam); stdcall

end;

procedure SetKeyHook;
begin
 HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyHook, HInstance, 0);
end;

procedure DelKeyHook;
begin
 if HookHandle <> 0 then
   UnhookWindowsHookEx(HookHandle);
end;

exports
 SetKeyHook index 1,
 KeyHook index 2,
 DelKeyHook index 3;

begin
end.


← →
ZDDR ©   (2004-04-15 22:28) [1]

и что никто непосоветует может я что не так сделал?


← →
ZDDR ©   (2004-04-15 22:30) [2]

и что никто непосоветует может я что не так сделал?


← →
IntSer ©   (2004-04-15 22:51) [3]

библиотека
library KeyBoardHook;

uses
 Windows,
 KeyBoardExchange in "KeyBoardExchange.pas";

{$R *.res}

function KeyboardProc(Code: Integer;WPARAM: wParam; LPARAM: lParam):integer;stdcall
Begin
if Code < 0 then
 Result:=CallNextHookEx(CommonArea^.HookHandle,Code,wParam,lParam) else
  Begin
   PostMessage(CommonArea^.FormHandle,WMKeyHook,wParam,lParam);
   Result:=CallNextHookEx(CommonArea^.HookHandle,Code,wParam,lParam);
  end;
end;

function SetKeyBoardHook(Activate: Bool; ThreadId: DWord = 0): Bool;stdcall;export;
Begin
Result:=false;
 if Activate then
   Begin
    CommonArea^.HookHandle:=SetWindowsHookEx(WH_KEYBOARD,@KeyBoardProc,hInstance,ThreadId);
     Result:=(CommonArea^.HookHandle<>0);
   end else
        Begin
         if CommonArea^.HookHandle <> 0 then
          Result:=UnHookWindowsHookEx(CommonArea^.HookHandle);
          if Result then CommonArea^.HookHandle:=0;
        end;
end;

exports
SetKeyBoardHook;

begin
end.

Модуль организующий файл-мэппинг
надо его и в прогу подключать

unit KeyBoardExchange;

interface

uses Windows;

type
PHookInfo = ^THookInfo;
THookInfo = packed record
HookHandle: THandle;
FormHandle: THandle;
end;

var
WMKeyHook: integer = 0;
CommonArea: PHookInfo;

const
UniqueHookID = "{2B46D80C-A39F-44FF-B711-FF8E60286981}";
implementation
var Mapping: THandle = 0;

initialization
 Mapping:=CreateFileMapping(0,nil,PAGE_READWRITE,0,SizeOf(CommonArea),UniqueHookID);
  CommonArea:=MapViewOfFile(Mapping,FILE_MAP_ALL_ACCESS,0,0,0);
  //ЁхушёЄЁ ёюс&#8730;Єшх
 WMKeyHook:=RegisterWindowMessage(UniqueHookID);
finalization
if Assigned(CommonArea) then UnMapViewOfFile(CommonArea);
if Mapping <> 0 then CloseHandle(Mapping);
end.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
1-1081876992
andrysha
2004-04-13 21:23
2004.05.02
подкажите как из String конвертить в Boolean


3-1080955812
olhovik
2004-04-03 05:30
2004.05.02
Добавление в Базу данных


7-1078859629
Riant
2004-03-09 22:13
2004.05.02
Как отключить некоторые клавиши и их комбинации в Win XP?


14-1081793801
Шишкин Илья
2004-04-12 22:16
2004.05.02
Посоветуйте хостинг


1-1082029201
avgur
2004-04-15 15:40
2004.05.02
Вопрос по кратности значений




   Наверх