Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Вниз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);
//ЁхушёЄЁ ёюс√Єшх
WMKeyHook:=RegisterWindowMessage(UniqueHookID);
finalization
if Assigned(CommonArea) then UnMapViewOfFile(CommonArea);
if Mapping <> 0 then CloseHandle(Mapping);
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c