پنجره ای به جهان فناوری اطلاعات
 
             
   

راهنما

 

اینجا هستید :

مطالب سایت

برنامه نویسی

VB - Visual Basic 6.0

 

 

مطالب مشابه

 

»

تابعی برای تبدیل عدد به معادل حرفی (فارسی)

»

معرفی سایت های مختلف کامپیوتر (برنامه نویسی ، پایگاه داده ها ، بانک اطلاعات ، اطلاعات عمومی )

 

 

جستجو های مشابه

 

G کیبرد

G کی برد

G تشخیص فشرده شدن کلید در vb

G کلیدهای کیبرد

G کیبرد

G شود

G ثبت کلیدهای فشرده شده

G کلید های کیبرد

G برنامه کی برد

G زمان

G ثبت

G نحوه ی نصب ویندوز 7

G مدیریت سیستم های اطلاعات

 

 

سایر بخش های سایت

 
صفحه اول پنجره ای به جهان فناوری اطلاعات صفحه اول

درباره من درباره من

About me About me

تماس با من تماس

عضویت در خبرنامه عضویت در خبرنامه

جستجوی پیشرفته در سایت جستجوی پیشرفته

فید خوان آر اس اس - RSS Feeds

فیدخوان (RSS)

فید خوان اتم - ATOM Feeds

فیدخوان (ATOM)

 

 

پنجره ای به جهان فناوری اطلاعات

 
صفحه اول پنجره ای به جهان فناوری اطلاعات صفحه اول

طراحی وب سایت

تازه های رایانه و تکنولوژی

برنامه نویسی

پایگاه داده ها و بانک های اطلاعاتی

اینترنت و شبکه

امنیت

نکته ها و ترفند ها

معرفی نرم افزار

سخت افزار

گرافیک کامپیوتری

سیستم عامل

بازی های رایانه ای

کتاب الکترونیک ebook

تجارت، مدیریت و بازاریابی

حسابداری و امور مالی

تحقیق و توسعه

پیوند ها
 

 

 

پیوند های روزانه

   
 

دارای مقام مشورتی ویژه از اکوسوک سازمان ملل متحد
اولین موسسه خیریه دریافت کننده مجوز ملی از وزارت کشور
سوئیس SGS دارای گواهی استاندارد جهانی موسسات غیر دولتی از

 
 

 
 

توسعه نرم افزار منظم
ارائه راهکار های اینترنتی
نرم افزار های مالی و اداری

 
 

 

تبلیغات

   
 

 
 

 

 

تشخیص فشرده شدن کلیدهای کیبرد

کد مطلب : 40 چاپ - تشخیص فشرده شدن کلیدهای کیبرد عضویت در خبرنامه سایت تماس با من

 

 

 

چگونه می توان کلیدهای کیبرد را حتی وقتی فوکوس روی برنامه ما نیست تشخیص داد مانند دیکشنری ها که مثلاً با CTRL+F12 فعال می شوند و یا Keylogger ها که کلیدهای فشرده شده را ثبت می کنند

 

1 - استفاده از یک تابع کتابخانه ای به اسم GetAsyncKeyState موجود در کتابخانه user32.dll . این تابع ، فشرده شدن یا رها شدن یک کلید را تشخیص می دهد . نحوه declare کردن این تابع بصورت زیر است :

 

 

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
 

حال در برنامه تان یک 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 فرستاد .

برای اطلاعات بیشتر و مشاهده یک نمونه برنامه به این آدرس مراجعه کنید .

 

 

 

 

منبع : sheidaian.persianblog.com - شیداییان

 

 

 

موضوعات مرتبط با این مطلب :

  برنامه نویسی VB - Visual Basic 6.0