PDA

View Full Version : فعال کردن num lock



aleas2
چهارشنبه 20 دی 1391, 21:06 عصر
سلام خسته نباشید دوستان بنده یه سورس نوشتم که num lock در صورتی غیر فعال بود فعالش کنه ولی سورسی نوشتم فقط اگر ماوس روی خودم فرم باشه جواب میده کسی از دوستان یه کده ساده داره که حتی پنجره فرم - بود باز هم جواب بده حتی اگر ماوس رو فرم نبود باز هم جواب بده یه کد به ساده ترین شکل ممکن نیاز دارم

که num lock اگر غیرفعال بود فعالش کنه دوستان بنده تاپیک های مختلفی تو این انجمن دیدن ولی همشون راجب هر سه گزینه Num Lock و Caps Lock و Scroll Lock ولی متاسفانه vb6 اونقدر پیشرفته نیستم نمیتونم کدهای اضافی مربوط به Caps Lock و Scroll Lock حذف کنم بله دوستان قبلا خیلی در این مورد بحث شده ولی متاسفانه تجربشو ندارم که کد ساده کنم اگر ممکنه یکی از دوستان فقط کد مربوط به اینکه اگر num lock غیرفعال بود فعالش کنه بذاره و همیشه هم جواب بده حتی اگر ماوس روی فرم نبود یا فرم پایین بود ممنون

Hashemvp
چهارشنبه 20 دی 1391, 22:17 عصر
دوست عزیز فقط کافیه کد مورد نظرتو توی رویداد(همون کدی ک وقتی ماوس روی فرم میره numرو روشن میکنه)
Form_Load قرار بدی

موفق باشی

aleas2
پنج شنبه 21 دی 1391, 08:38 صبح
عزیز من میخوام حتی اگر فرم هم نبود باز جواب بده

تو تایمر هم جواب نمیده

aleas2
پنج شنبه 21 دی 1391, 09:22 صبح
اینم کد که خودم موفق شدم بنویسم گفتم شاید بدرد کسی دگه خورد



Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As _
Long) As Integer
Private Const VK_NUMLOCK = &H90
Public Enum enumKeys
keyNumLock = &H90
keyScrollLock = &H91
keyCapsLock = &H14
End Enum



Private Sub Timer1_Timer()

Dim blnKeyNum As Boolean
Dim blnKeyCaps As Boolean
Dim blnKeyScroll As Boolean


GetLockStatus blnKeyNum

If blnKeyNum = False Then


keybd_event VK_NUMLOCK, 1, &H0, 1
End If
End Sub
Public Sub GetLockStatus(bNumLock As Boolean)

bNumLock = GetKeyState(enumKeys.keyNumLock)

End Sub

محسن واژدی
پنج شنبه 21 دی 1391, 09:41 صبح
سلام علیکم
بله خودتون مشکل را حل کنید از هر لحاظ بهتر هست، شاید سورس زیر مختصرتر باشد

موفق باشید

aleas2
پنج شنبه 21 دی 1391, 12:10 عصر
ممنون

محسن جان من از این کد تو برنامه اصلم استفاده میکنم گاهی اوقات برنامه برعکس عمل میکنه یعنی num lock غیرفعال میکنه

ضمنا" بعضی اوقات هم علت غیرفعال شدن num lock این کد در برنامه اصلیم هسته


For i = 1 To 10
WebBrowser1.Document.All.Item("comtb").focus
SendKeys "{tab}"
WebBrowser1.Document.All.Item("comtb").focus
SendKeys "{tab}"
WebBrowser1.Document.All.Item("comtb").focus
SendKeys "{tab}"
Next i

که بعدش این کد اجرا میشه که گاهی اوقات جای فعال کردن num lock غیرفعالش میکنه


If GetKeyState(VK_NUMLOCK) = 0 Then
keybd_event VK_NUMLOCK, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_NUMLOCK, 0, KEYEVENTF_KEYUP, 0
End If


چکار باید بکنم؟

Hashemvp
پنج شنبه 21 دی 1391, 14:08 عصر
دوست عزیز کد خودت درست بود و مشکلی نداشت
من تستش کردم و این هم پروژه
http://uploadtak.com/images/i27_Num_lock.zip

تو تایمر هم گذاشتمش و هر کرای کنی numlock خاموش نمیشه

موفق باشی

aleas2
پنج شنبه 21 دی 1391, 14:11 عصر
بله ولی تو پروژه اصلیم هر کار کردم نشد بعضی وقتا قاطی میکرد که در پست شما 6 دقیق گفتم

که الان مجبود شدم کنار پروژه اصلیم این برنامه رو تو یه برنامه دگه کنار پروژه اصلیم قرار بدم که همزمان با پروژه اصلی اجرا بشه