Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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);
  //ЁхушёЄЁ ёюс&#8730;Єшх
 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.032 c
4-1078828816
eRoR
2004-03-09 13:40
2004.05.02
Как узнать имя окна, активного в данный момент


4-1078141590
tytus
2004-03-01 14:46
2004.05.02
Ярлык и значек


1-1081886582
Def_E
2004-04-14 00:03
2004.05.02
Является ли приложение консольным?


3-1080979672
Belkova
2004-04-03 12:07
2004.05.02
Как обновить д-е во всех приложениях


1-1081820986
niko4543
2004-04-13 05:49
2004.05.02
Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский