![]() CAPSLOCK VE NUMLOCK'U KODLA DEĞİŞTİRMEKVisual 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 CAPSLOCK, NUMLOCK ve SCROLLLOCK kilitlerini açıp kapayabilirsiniz.Peki programınızı derleyip kurulum paketinin oluşturduğunuzda ne olacak? Şüphesiz ilgili kontrol de uygulamanız ile brilikte 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 |