Kayıt Tarihi: 08.07.2015
Toplam 15 konu açtı.
Toplam 35 yorum yaptı.
Toplam
0
puanı bulunmakta.
Mevcut Office Sürümü:
Office 2010 TR,
Beğeniler: 0 / 0
arkadaşın verdiği kodu bi türlü uygulayamadım. ricam bi formda uygulayıp çalışır hale getirebilirmisiniz.
FORMLARDA VERİ GİRİŞİ YAPARKEN NUMLOCK SORUNUNU ORTADAN KALDIRMAK
Arkadaşlar, Bazen formda veri girişi yaparken Numlock tuşu kendi kendine kararlar verebiliyor, Bu tuşa basmadan ya ON oluyor ya da OFF bu da istenmeyen durumlar ortaya çıkarıyor. Sebebi nedir bilinmez ama ben çözüm yolunu aşağıda veriyorum; Bunun için bir modül kullanacğız ve bu modülde Global bir altyordam oluşturacağız. Önce Bir modül ekleyip aşağıdaki kodları bu modüle yerleştirin.
-------------------------------------------------------------------------------
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Declare PtrSafe Function GetVersionEx Lib "kernel32" ()
Private Declare PtrSafe Sub keybd_event Lib "User32" (ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare PtrSafe Function GetKeyboardState Lib "User32" (pbKeyState As Byte) As Long
Private Declare PtrSafe Function SetKeyboardState Lib "User32" (lppbKeyState As Byte) As Long
-------------------------------------------------------------------------------------------------------------
Public Sub TurnNumLockOn()
Dim bytKeys(255) As Byte, bnumLockOn As Boolean, typOS As OSVERSIONINFO
GetKeyboardState bytKeys(0)
bnumLockOn = bytKeys(VK_NUMLOCK)
If Not bnumLockOn Then
If typOS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
bytKeys(VK_NUMLOCK) = 1
SetKeyboardState bytKeys(0)
Else
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End If
End Sub
-------------------------------------------------------------------------------------
Bu kadar, Eğer 32/64 bit hatası alırsanız yukarıda koyu yazılmış olan PtrSafe ifadelerini silin, Satırı komple silmeyin, sadece PtrSafe kelimelerini silin. Şimdi uygulamaya geldi sıra.
Veri girişi yaptığınız formun Load olayına aşağıdaki kodu yazın,
-------------------------------------------------------
Call TurnNumLockOn
Kayıt Tarihi: 06.05.2013
Toplam 192 konu açtı.
Toplam 756 yorum yaptı.
Toplam
34
puanı bulunmakta.
Mevcut Office Sürümü:
Office 2003,
Beğeniler: 18 / 14
24-02-2017, 10:54
(En son düzenleme: 24-02-2017, 10:56 husem.)
'sayın obaysal42
dün konuyu okuyunca bende kendi arşivime bu konuyu dahil ettim, çalıştırdım, teste ettim. çalışıyor.
'AŞAĞIDAKİ KODları ACCESS MODÜL KISMINA KAYDET. [/code]
'SONRASINDA FORMUN YÜKLENDİĞİNDE OLAY YORDAMINA
Call TurnNumLockOn ' KOPYALAYIN, FORM AKTİF OLDUĞUNDA NUMLOCK AKTİF OLACAKTIR, Eğer sadece bahsettiğn metin kutularına girince numlock pasif oluyorsa, formda başka bir kod varmı kontrol et.
Option Compare Database
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Declare Function GetVersionEx Lib "kernel32" ()
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 GetKeyboardState Lib "User32" (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "User32" (lppbKeyState As Byte) As Long
Public Sub TurnNumLockOn()
Dim bytKeys(255) As Byte, bnumLockOn As Boolean, typOS As OSVERSIONINFO
GetKeyboardState bytKeys(0)
bnumLockOn = bytKeys(VK_NUMLOCK)
If Not bnumLockOn Then
If typOS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
bytKeys(VK_NUMLOCK) = 1
SetKeyboardState bytKeys(0)
Else
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End If
End Sub