***بسیار مفتخریم که از سایت ما بازدید فرمودید امید است شما را در رسیدن به بخشی هرچند اندک از اهدافتان یاری نموده باشیم*** ***WWW.CESblog.Ir*** ***به وبلاگ مهندسی کامپیوتر خوش آمدید ***

تشخیص فشرده شدن کليدهای کيبرد در ویژوال بیسیک

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

۱ - استفاده از یک تابع کتابخانه ای به اسم  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



منبع:www.cesblog.ir

+ نوشته شده توسط CES در دوشنبه بیست و سوم خرداد ۱۳۹۰ و ساعت 15:3 |