+ ارسال نظر
نمایش نتایج: از 1 به 1 از 1

موضوع: تشخیص فشرده شدن کلیدهاي کیبرد

  1. #1
    مدیرکل انجمنهای نور آسمان vorojax آواتار ها
    تاریخ عضویت
    Jun 2008
    محل سکونت
    همشهری حضرت عشق
    نوشته ها
    7,305
    تشکر
    6
    تشکر شده 0 بار در 0 ارسال

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

    [size=xx-large]تشخیص فشرده شدن کلیدهاي کیبرد
    چگونه می توان کلیدهاي کیبرد را
    حتی وقتی فوکوس روي برنامه ما نیست تشخیص داد مانند دیکشنري
    ها که Keylogger فعال می شوند و یا CTRL+F ها که مثلاً با 12
    کلیدهاي فشرده شده را ثبت می کنند .
    من دو روش زیر را براي اینکار پیشنهاد می کنم :
    GetAsyncKeyState 1 - استفاده از یک تابع کتابخانه اي به اسم
    این تابع ، فشرده شدن یا رها شدن یک . user32.dll موجود در کتابخانه
    کردن این تابع بصورت زیر declare کلید را تشخیص می دهد . نحوه
    است :
    Private Declare Function GetAsyncKeyState Lib "user32"
    (ByVal vKey As Long) As Integer
    آن کد زیر را قرار event قرار داده و در timer حال در برنامه تان یک
    دهید :
    For i = 1 To 255
    results = 0

    results = GetAsyncKeyState(i)
    If results <> 0 Then
    Msgbox(Chr(i))
    End If
    Next

    قلاب ، یک ابزار در مکانیزم مدیریت پیغام : Hook 2 - استفاده از قلاب یا
    سیستم ویندوز است که توسط آن برنامه ها می توانند یک روتین را
    براي مدیریت و پردازش پیغامهاي خاصی قبل از اینکه آن پیغامها به
    برنامه مقصد برسند نصب نمایند . قلابها باعث کندي سیستم می شوند
    زیرا حجم پردازشی سیستم روي هر پیغام را افزایش می دهند بنابراین
    بایستی زمانیکه واقعا به قلاب نیاز دارید آنرا نصب نموده و هر چه
    زودتر آنرا حذف نمایید . سیستم ویندوز از انواع زیادي از قلابها
    پشتیبانی می کند که هر کدام امکان دستیابی به پیغامهاي خاصی را مهیا
    می نمایند براي مثال یک برنامه کاربردي می تواند با استفاده از قلاب
    کیبرد براي مدیریت و پردازش پیغامهاي مربوط به آن ( مثل فشرده
    شدن یک کلید خاص یا رها شدن آن ) استفاده کند .
    براي نصب یک قلاب در برنامه از یک تابع کتابخانه اي به اسم
    استفاده می شود . این تابع یک قلاب را به SetWindowsHookEx
    کردن این تابع declare زنجیره قلابهاي سیستم اضافه می کند . نحوه
    بصورت زیر است :
    Declare 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[/size]

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    محل سکونت
    Advertising world
    نوشته ها
    Many

     

    حرز امام جواد

     

+ ارسال نظر

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را دارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
کانال سپاه