PDA

View Full Version : از کار انداختن موس و کیبورد



hamid-nice
چهارشنبه 14 فروردین 1392, 22:29 عصر
سلام به همه دوستان

یک فرمی دارم که یک دگمه روش داره که با زدنش چندین کار انجام می شه
می خوام وقتی به اجرای یکی از کدهاش می رسه تا پایان انجام اون ، کاربر نتونه هیچ کاری انجام بده
برای این منظور فکر کنم باید قبل از اون کد یک کدی بنویسم که موس وکیبورد را از کار بیاندازه و بعدش دوباره فعال کنه

اگه کسی می تونه برای این منظور کدی را ارایه بده یا راهکار دیگه ای را پیشنهاد بده ممنون می شم

با تشکر

Abbas Amiri
پنج شنبه 15 فروردین 1392, 00:29 صبح
سلام
اگه جستجو میکردید پیدا می شد . یک تابع API بنام BlockInput هست که این کاررو انجام میده .


Declare Function BlockInput Lib "USER32.dll" (ByVal fBlockIt As Long) As Long
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub DisableEnableMouseKb(miliSecond As Long)
BlockInput True
DoCmd.Hourglass True
Sleep ms
DoCmd.Hourglass False
BlockInput False
End Sub


فاصله بین غیرفعال و فعال کردن را میتونید بسته به نیاز کارهای دیگه انجام بدید ولی از MsgBox استفاده نکنید . دلیلش واضحه .

hamid-nice
پنج شنبه 15 فروردین 1392, 00:50 صبح
سلام

خیلی گشتم و همه تاپیک های مربوطه را دیدم اصلا این را پیدا نکردم لطفا لینکش را بذارید

این کد را داخل یک ماژول کپی می کنم ولی
بعد تابع را به چه صورت فراخوانی کنم ؟

لطفا نحوه استفاده را کمی توضیح دهید

Abbas Amiri
پنج شنبه 15 فروردین 1392, 01:03 صبح
سلام

خیلی گشتم و همه تاپیک های مربوطه را دیدم اصلا این را پیدا نکردم لطفا لینکش را بذارید

این کد را داخل یک ماژول کپی کنم؟
بعد تابع را به صورت call BlockInput بذارم ؟

لطفا نحوه استفاده را کمی توضیح دهید



DisableEnableMouseKb 3000

با این دستور 3 ثانیه موس وکیبرد غیرفعال میشوند . اگر زمان اتمام عملیات موردنظرتان مشخص است احتیاج به روال فوق ندارید ، ابتدا دستور غیرفعال شدن BlockInput True و پس از عملیات موردنظر و در اتمام آن دستور فعال شدن BlockInput False را تایپ کنید .