|
1 - استفاده از یک تابع کتابخانه ای به اسم GetAsyncKeyState موجود در کتابخانه
user32.dll . این تابع ، فشرده شدن یا رها شدن یک کلید را تشخیص می دهد . نحوه
declare کردن این تابع بصورت زیر است :
حال در برنامه تان یک timer قرار داده و در event آن کد زیر را قرار دهید :
|
For i = 1 To 255
results = 0
results = GetAsyncKeyState(i)
If results <> 0 Then
Msgbox(Chr(i))
End If
Next
|
برای مشاهده یک برنامه نمونه به این آدرس مراجعه کنید :
2 - استفاده از قلاب یا Hook : قلاب ، یک ابزار در مکانیزم مدیریت پیغام سیستم
ویندوز است که توسط آن برنامه ها می توانند یک روتین را برای مدیریت و پردازش
پیغامهای خاصی قبل از اینکه آن پیغامها به برنامه مقصد برسند نصب نمایند . قلابها
باعث کندی سیستم می شوند زیرا حجم پردازشی سیستم روی هر پیغام را افزایش می دهند
بنابراین بایستی زمانیکه واقعاً به قلاب نیاز دارید آنرا نصب نموده و هر چه زودتر
آنرا حذف نمایید . سیستم ویندوز از انواع زیادی از قلابها پشتیبانی می کند که هر
کدام امکان دستیابی به پیغامهای خاصی را مهیا می نمایند برای مثال یک برنامه
کاربردی می تواند با استفاده از قلاب کیبرد برای مدیریت و پردازش پیغامهای مربوط به
آن ( مثل فشرده شدن یک کلید خاص یا رها شدن آن ) استفاده کند .
برای نصب یک قلاب در برنامه از یک تابع کتابخانه ای به اسم SetWindowsHookEx
استفاده می شود . این تابع یک قلاب را به زنجیره قلابهای سیستم اضافه می کند . نحوه
declare کردن این تابع بصورت زیر است :
|
eclare Function SetWindowsHookEx Lib "user32"
Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long,
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
|
همچنین برای آزاد کردن یک قلاب و حذف آن از زنجیره قلابها از تابع کتابخانه ای
UnhookWindowsHookEx استفاده می گردد . نحوه declare کردن این تابع بصورت زیر است :
|
Declare Function UnhookWindowsHookEx Lib "user32"
(ByVal hHook As Long) As Long
|
برای ایجاد قلاب کیبرد همچنین نیاز به تعریف یک ثابت است که شماره قلاب کیبرد در آن
قرار دارد :
|
Public Const WH_KEYBOARD = 2
|
حال بایستی یک تابع پس زمینه یا Callback Function نوشت که به ازای فشرده شدن کیبرد
اجرا شود و آدرس آنرا ( با استفاده از کلمه کلیدی Address Of ) بهمراه ثابت فوق به
تابع SetWindowsHookEx فرستاد .
برای اطلاعات بیشتر و مشاهده یک نمونه برنامه به این آدرس مراجعه کنید .
|