PDA

نسخه کامل مشاهده نسخه کامل : ویزوال بیسیک



mymansor
08-10-2018, 09:53
چطور میشه توسط ویژوال بیسیک فشرده شدن دکمه صفحه کلید رو تشخیص داد البته منظورم موقعی هستش که فوکس رو برنامه مون نباشه

shaahani
08-10-2018, 12:13
چطور میشه توسط ویژوال بیسیک فشرده شدن دکمه صفحه کلید رو تشخیص داد البته منظورم موقعی هستش که فوکس رو برنامه مون نباشه

با استفاده از توابع API و ارتباط برقرار کردن با توابع هسته ویندوز .

تابع GetKeyboardState در قالب یک آرایه وضعیت تمام دکمه های صفحه کلید را در قالب یک آرایه در لحظه فراخوانی به برنامه شما بازمیگرداند .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

shaahani
08-10-2018, 12:19
مثال

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

shaahani
08-10-2018, 12:53
از دیگر توابع 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 را برمی گرداند.

مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید