PDA

View Full Version : سوال: قفل کردن صفحه کلید



se7en66
چهارشنبه 04 اردیبهشت 1392, 16:04 عصر
سلام دوستان.چطور می تونم با سی شارپ کیبورد رو قفل کنم ، فقط دکمه های خاصی ازش کار کنن.
ممنون میشم اگه کمک کنین.

rezaei_y
چهارشنبه 04 اردیبهشت 1392, 16:31 عصر
مثلا برای یک تکست باکس میشه این کارو کرد
در رویداد KEY_PRESS تکست باکس با نوشتن کد زیر فقط میشه عدد نوشت

e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);

saman-arsenal
چهارشنبه 04 اردیبهشت 1392, 16:33 عصر
سلام
میتونی با گذاشتن شرط توو رویداد keypress کنترل کنی e.handeled بغیر از برای دکمه های مورد نظرت true کنه مثلا کد زیر فقط عدد میزاره وارد شه:

if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
e.Handled = true;

se7en66
چهارشنبه 04 اردیبهشت 1392, 18:57 عصر
مرسی دوستان.اینا رو می دونم منظوز من این نیست. میخوام برنامم وقتی ویندوز بالا میاد بالا بیاد و دکمه هایی مثل ctrl+alt+del و هر دکمه ای که باعث بشه کاربر از برنامه خارج بشه قفل بشه.

erfan_urchin
چهارشنبه 04 اردیبهشت 1392, 19:57 عصر
من فقط میدونم که باید از توابع API استفاده کنید
ببینید این 3تا لینک بدردتون میخوره؟؟؟
http://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C
http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

danialafshari
چهارشنبه 04 اردیبهشت 1392, 21:00 عصر
مرسی دوستان.اینا رو می دونم منظوز من این نیست. میخوام برنامم وقتی ویندوز بالا میاد بالا بیاد و دکمه هایی مثل ctrl+alt+del و هر دکمه ای که باعث بشه کاربر از برنامه خارج بشه قفل بشه.

سلام
خب این کار شما که می خواید کیبورد رو غیر فعال کنید کار بسیار بسیار اشتباهی است!
مثلا میای Ctrl + alt + delete رو غیر فعال می کنید که TaskManager نیاد ؟؟؟ خب من با Ctrl + Shift +Esc میارمش !! یا روی Start کلیک راست می کنم و Task Manager رو باز میکنم !
کاری که شما باید انجام بدید اینه که باید از طریق رجیستری این ها رو غیر فعال کنید !
مثلا کد زیر به طور کل Task Manager رو از راه صحیح از کار میندازه !
RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Poli cies\\System");
key.SetValue("DisableTaskMgr", "1", RegistryValueKind.DWord);
موفق باشید

se7en66
پنج شنبه 05 اردیبهشت 1392, 17:55 عصر
مرسی از دوستان. اگه باز سوال داشتم مزاحمتون می شم.