'Capslock ve Numlock'u Değiştirin...
'Visual Basic 4.0 paketi tuş kilitlerini değiştirmek
've görüntülemek için "Keyboard State Control"'unu
'(KEYSTA32.OCX) birlikte getiriyor. Bu kontrolü kullanarak
've küçük bir kod satırı yazarak programınız çalışırken CAPS
'LOCK, NUM LOCK ve SCROLL LOCK kilitlerini açıp
'kapayabilirsiniz. Peki programınızı derleyip kurulum
'paketinin oluşturduğunuzda ne olacak? Şüphesiz ilgili
'kontrol de uygulamanız ile birlikte programı kurduğunuz
'sisteme kopyalanacak. Bizce bu kadar küçük bir işlemi
'gerçekleştiren bir kontrolü kullanarak uygulamanızı
'kalabalıklaştırmak anlamsız, aynı işlemi bir WIN32 API'sini
'kullanarak da gerçekleştirebilirsiniz. Örneğimizi uygulamak
'için üzerinde üç tane komut butonu bir de etiket kontrolü
'olan bir form oluşturun ve ilk aşamada boş bir BAS
'modülünün General - Declarations bölümüne aşağıdaki
'satırları girin.
Public Const VK_CAPITAL = &H14
Public Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Public kbArray As KeyboardBytes
Public Declare Function GetKeyState Lib "user32"
(ByVal nVirtKey As Long) As Long
Public Declare Function GetKeyboardState Lib
"user32" (kbArray As KeyboardBytes) As Long
Public Declare Function SetKeyboardState Lib
"user32" (kbArray As KeyboardBytes) As Long
'Aşağıdaki kodlar oluşturduğnuz formun
'General - Declarations bölümüne girmelidir:
Private Function CapsLock() As Integer
CapsLock = GetKeyState(VK_CAPITAL) And 1 = 1
End Function
Private Command1_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) =
IIf(kbArray.kbByte(VK_CAPITAL) = 1, 0, 1)
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "Açık", "Kapalı")
End Sub
Private Sub Command2_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 1
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "Açık ", "Kapalı")
End Sub
Private Sub Command3_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 0
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "Açık ", "Kapalı")
End Sub