دکمه های مجازی در سی شارپ

کار با دکمه های مجازی در سی شارپ

با سلام.در این پست به شما اموزش کار با دکمه های مجازی در سی شارپ را میدهیم.
منظور از دکمه های مجازی شامل تمام دکمه های موجود بروی سیستم شما که شامل صفحه کلید و موس میشود میباشد.
برای اینکار ما از keybd_event استفاده میکنیم.قبل از هرچیزی لازم است که DLL  برای USER32 را import کنید اینکار را بصورت سراسری انجام دهید:

خب حالا نوبت تعریف keybd_event است که این را هم سراسری تعریف کنید:

extern چیست؟ اگر در برناممان چندین سورس وجود داشته باشد بخواهیم از یک متغییر که در یکی از این سورس ها تعریف شده در خارج از فایل اصلی ان استفاده کنیم باید ان را در محلی که میخواهیم استفاده کنیم(یعنی محل غیر از سورس اصلی) بصورت extern بازخوانی کنیم.

خب حالا به توضیح خلاصه هرکدام از پارامتر های ان میپردازیم
bVk از نوع byte: کد کلید مجازی میباشد که یک عدد ین 1 تا 254 میباشد.میتوانید از اینجا لیست کامل این کد هارا بینید.
bScan از نوع byte:کد اسکن سخت افزاری برای دکمه.
dwFlags از نوع dword(که در کد ما با Uint ان را فراخوانی میکنیم): کد عملکرد های مختلف کلید مانند KEYEVENTF_KEYUP که کد ان 0x2 میباشد و جلو تر به ان میپردازیم.
dwExtraInfo از نوع ULONG_PTR:یک مقدار اضافی در رابطه با زدن دکمه
 
خب حالا لازم است که مقدار هایی که بالا توضیح دادیم را در برنامه تعریف و مقدار دهی کنیم:

خب همانطور که مشخص است دو دکمه CAPSLOCK و NUMLOCK را تعریف و مقدار دهی کردیم.مقداری که به ان دادیم کد کلید مجازی ان است.هر دکمه کد اختصاصی خود را دارد.
و دو رویداد KEYEVENTF_EXTENDEDKEY و KEYEVENTF_KEYUP برای زدن و رها کردن دکمه است.
خب حالا تنها کاری که باید بکنیم این است که متدی که تعریف کردیم را فراخوانی و پارامتر هایی را که برای ان مشخص کردیم مقدار دهی کنیم
در برنامه زیر ما یک button تعریف کردیم که با هر بار زدن ان دکمه های NUMLOCK و CAPSLOCK فعال و غیر فعال شوند:

کد کامل برنامه :

پایان.

مطالعه بیشتر