چطور میشه توسط ویژوال بیسیک فشرده شدن دکمه صفحه کلید رو تشخیص داد البته منظورم موقعی هستش که فوکس رو برنامه مون نباشه
چطور میشه توسط ویژوال بیسیک فشرده شدن دکمه صفحه کلید رو تشخیص داد البته منظورم موقعی هستش که فوکس رو برنامه مون نباشه
با استفاده از توابع API و ارتباط برقرار کردن با توابع هسته ویندوز .نوشته شده توسط mymansor [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
تابع GetKeyboardState در قالب یک آرایه وضعیت تمام دکمه های صفحه کلید را در قالب یک آرایه در لحظه فراخوانی به برنامه شما بازمیگرداند .
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مثال
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
از دیگر توابع Api که ممکن است در راستای هدف شما مفید باشد :
تابع RegisterHotkey
هدف : این تابع یک کلید یا کلیدی ترکیبی را در محیط ویندوز ثبت می کند.
کلیدی که توسط این تابع تعریف می شود درون قسمتی از حافظه قرار می گیرد و در هرجای ویندوز که کلید تعریف شده فشرده شود،
برنامه شما در صورت فعال بودن عکس العمل نشان خواهد داد.
سیستم عامل : ویندوز 95 به بعد ؛ ویندوز NT3.1 به بعد
مبدا فراخوانی : user32
مقادیر بازگشتی : مقدار صفر به منزله عدم موفقیت تابع می باشد و مقادیر غیرصفر موفقیت آن را می رساند.
توضیح :
1.hwnd: اشاره گر پنجره فرم و یا اجزای داخل فرم می باشد که می خواهیم کلید ها برای آن ثبت شوند.
2.id: کد هویت آن hotkey می باشد که میتواند بین &H0000& و &HBFF& باشد. (در مبنای Hex)
3.fsModifiers: مقدار این متغیر می تواند با کلید تعریف شده در متغییر VK ترکیب شوند ، که این مقادیر میتوانند از موارد زیر باشند:MOD_Alt: کلید Alt فشار داده شده است.
MOD_control: کلید Ctrl فشرده شده است.
MOD_shift: کلید Shift فشار داده شده است.
4.VK: مقدار این متغیر که کلیدهای طبیعی ویندوز می باشند مانند VbkeYM (کلید M) ، VbkeYP (کلید P) الی آخر.
توجه:
1.هر یک از مقادیر متغییر FsMoidifiers می توانند به کمک دستور or با یکدیگر ترکیب شوند.
2.مقادیر متغییر VK نمی توانند با یکدیگر ترکیب شوند.
3.بعد از استفاده از RegisterHotkey ، از تابع UnRegisterHotkey جهت خارج کردن کلید ها از رزرو استفاده کنید.
4.تابع WaitMessage باعث می شود سیستم منتظر ارسال چیزی بماند و وقتی چیزی به پنجره ، فرم یا اجزای فرم ارسال شد ، تابع PeekMessage بررسی می کند که آیا مورد ارسال شده (در این مثال Hotkey) با مقدار متغییر vMsgFilterMin (در این مثال WM_Hotkey) برابر است یا خیر و در صورت برابر بودن مقدار True را برمی گرداند.
مثال:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)