امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
سوال درباره KeyBord Hooking
نویسنده پیام
hojjatcroos آفلاین
تازه وارد

ارسال‌ها: 4
موضوع‌ها: 2
تاریخ عضویت: دى ۱۳۸۷

تشکرها : 1
( 0 تشکر در 0 ارسال )
ارسال: #1
سوال درباره KeyBord Hooking
سلام دوستان من می خواستم ببینم چه طور میشه هنگام زدن کلید اون رو به یک کلید دیگه تغییر داد مثلا اگه o رو بزنیم Q کلیک بشه ممنون
این هم سورس
نقل قول: uses
SysUtils,
Classes,
windows,
shellapi,
Messages,Variants,Graphics, Controls, Forms,
Dialogs;
var
HookHandle:thandle;

{$R *.res}

function GlobalKeyBoardHook(code: integer; wParam: word; lParam: longword): longword; stdcall;
begin
if ((lParam and wm_KEYDOWN)=0) then
begin
ShowMessage(IntToStr(wParam) )
end;
Result := CallNextHookEx(HookHandle, Code, wParam, lParam);
end;

procedure RunHook; stdcall;
begin
HookHandle:= SetWindowsHookEx(WH_KEYBOARD,@GlobalKeyBoardHook, HInstance, 0);
if HookHandle = INVALID_HANDLE_VALUE then
begin
MessageBox(0, 'Error :)' , '' , MB_OK);
Exit;
end;
end;

procedure KillHook; stdcall;
begin
if HookHandle <> INVALID_HANDLE_VALUE then
UnhookWindowsHookEx(HookHandle);
end;

exports
KillHook,
RunHook;

begin
end.

کربلا در کربلا می مرد اگر زینب نبود
۱۰-آذر-۱۳۸۸, ۲۳:۱۰:۲۱
ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #2
RE: سوال درباره KeyBord Hooking
1-تابع GetAsyncKeyState رو هوك كن.
2-روش هوك رو تغيير بده.
3-كد نمونه براي روش ApiHook

کد:
function GetAsyncKeyStateCallback(vKey: Integer): SHORT;
begin
if vKey = 35 then vKey:=39;
Result:=NewGetAsyncKeyState(vKey);
end;

۱۶-دى-۱۳۸۸, ۱۸:۲۰:۰۴
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: سوال درباره KeyBord Hooking
شما اگه برای برنامه خودت میخواهی که از رویداد OnKeyPress مربوط به فورم یا کنترل مورد نظر میتونی استفاده کنی اگه برای کل ویندوز میخواهی یه Message هوک بنویس که قبل رسیدن Message به پنجره مورد نظر بگیریش مقدارشو PmRemove بده که message به کنترل نرسه خودت مقدار مورد نظرتو جاگزاری کن و با SendMessage به اون پنجره بفرست

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۱۶-دى-۱۳۸۸, ۲۰:۰۷:۲۷
وب سایت ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #4
RE: سوال درباره KeyBord Hooking
فكر كنم ايشون دامنه وسيع تري رو مي خوان پوشش بدن.

۲۰-دى-۱۳۸۸, ۱۶:۴۸:۴۸
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سوال درباره dbcombobox (دلفی) iranproud 8 10,436 ۰۶-تير-۱۳۸۸, ۱۰:۴۴:۳۷
آخرین ارسال: lord_viper
  راهنمایی درباره calcfields در دلفی mbm007_1364 0 1,934 ۰۸-آذر-۱۳۸۴, ۱۵:۱۲:۲۸
آخرین ارسال: mbm007_1364

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS