PDA

View Full Version : غیر فعال کردن موس و کیبورد



lesolai
شنبه 25 تیر 1390, 19:36 عصر
میشه برنامه ای نوشت که موس و کیبورد قفل بشه فقط کلیک چپ موس کار کنه؟

MP.C-Writer
یک شنبه 26 تیر 1390, 11:05 صبح
با توابع Api میشه اینکارو کرد.

تابع SetCursorPos یه مختصات ازت می گیره و موس رو به اون جا منتقل می کنه که اگه توی یه تایمر اجرا بشه میتونه موس رو همونجا نگه داره و از طریق KeyAscii و KeyCode هم میشه کی بورد رو قفل کرد.

lesolai
یک شنبه 26 تیر 1390, 19:47 عصر
راستش من از کیبورد چند کلید ترکیبی زیر رو خواستم غیر فعال کنم :


Alt+Ctrl+Delete
Alt+Tab
Ctrl+Esc
Alt+F4
Win Key

2 تا از کلید ها رو تونستم غیر فعال کنم اما باقیش رو نتونستم ، برای همین مجبورم کیبورد رو غیر فعال کنم.
اگه میشه برای راهی که گفتین یه مثال بزنید.
ممنون

M.T.P
یک شنبه 26 تیر 1390, 20:37 عصر
تابع BlockInput
یک تابع برای از کار انداختن موس و کیبورد هست.


Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Activate()
DoEvents
'block the mouse and keyboard input
BlockInput True
'wait 10 seconds before unblocking it
Sleep 10000
'unblock the mouse and keyboard input
BlockInput False
End Sub

lesolai
دوشنبه 27 تیر 1390, 17:00 عصر
الان در روش بالا کلید های ترکیبی Ctrl+Alt+Delete در سرویس پک 3 کار می کنه!
اگه بخوام فقط موس کار کنه و کیبورد از کار بیوفته باید چکار کنم؟

M.T.P
دوشنبه 27 تیر 1390, 18:33 عصر
الان در روش بالا کلید های ترکیبی Ctrl+Alt+Delete در سرویس پک 3 کار می کنه!

تو همه ویندوزها همینه ، باید کد رو تو یه تایمر با دقت بالا گذاشت.


اگه بخوام فقط موس کار کنه و کیبورد از کار بیوفته باید چکار کنم؟
باید از این کد استفاده کنی:(البته من تست نکردم)
Shell "rundll32 keyboard,disable"

و برای فعال سازی اون:



Shell "rundll32 keyboard,enable"


برای فعال و غیر فعال کردن موس هم کدهای زیر پیشنهاد شده:



Shell "rundll32 mouse,disable"
Shell "rundll32 mouse,enable"

محسن واژدی
دوشنبه 27 تیر 1390, 19:01 عصر
تو همه ویندوزها همینه ، باید کد رو تو یه تایمر با دقت بالا گذاشت.


باید از این کد استفاده کنی:(البته من تست نکردم)


Shell "rundll32 keyboard,disable"



و برای فعال سازی اون:



Shell "rundll32 keyboard,enable"


برای فعال و غیر فعال کردن موس هم کدهای زیر پیشنهاد شده:



Shell "rundll32 mouse,disable"
Shell "rundll32 mouse,enable"




سلام علیکم
احتمالا" مربوط به نسخه های قبلی ویندوز است چون خطا میدهد؛

موفق باشید

Felony
دوشنبه 27 تیر 1390, 19:25 عصر
برای از کار انداختن موس یا صفحه کلید همونطور که گفته شد از تابع BlockInput استفاده میشه که کلا موس و صفحه کلید رو غیر فعال میکنه ، برای از کار انداختن بخشی از موس یا کی برد ( مثلا از کار انداختن کلیک راست یا ... ) در سطح ویندوز باید پیغام های مرتبط با اون عملیات رو هوک کنید .

lesolai
سه شنبه 28 تیر 1390, 09:24 صبح
برای از کار انداختن موس یا صفحه کلید همونطور که گفته شد از تابع BlockInput استفاده میشه که کلا موس و صفحه کلید رو غیر فعال میکنه ، برای از کار انداختن بخشی از موس یا کی برد ( مثلا از کار انداختن کلیک راست یا ... ) در سطح ویندوز باید پیغام های مرتبط با اون عملیات رو هوک کنید .
اگه میشه بیشتر توضیح بدین.
ممنون

alireza264
شنبه 08 مرداد 1390, 20:25 عصر
سلام چون معمولا از wizard در c# استفاده میکنیم این کار خیلی سخته روش بهتر اینه که یک تکه کد به زبان ماشین یا اسمبلی بنویسی ویا در C# از حالت ویزارد استفاده نکنی و همه چیز و خودت تعریف کنی

محسن واژدی
سه شنبه 10 شهریور 1394, 11:11 صبح
کار کرد این کد ها به نوع ویندوز بستگی داره؟؟؟

سلام

این پارامترها از ویندوز XP کاربردی ندارند، هم میتوان با apiی BlockInput صفحه کلید و موس ( هردو ) را غیرفعال کرد و یا برای بلاک کردن یکی از این دوتا ورودی های اونها رو هوک و بلاک کنیم

موفق و موید باشید