如何打開或關閉Visual Basic6中的Caps Lock鍵?如何打開或關閉VB6中的Caps Lock鍵?
1
A
回答
4
由於keybd_event功能已被取代,SendInput(MSDN)是很長的路要走。順便說一句,如果你要在VB6中用鍵盤做一些嚴肅的事情,一定要檢查Carl E. Peterson的文章和代碼:http://vb.mvps.org/samples/SendInput/
要設置CapsLock狀態,可以使用下面的代碼(可選地將其放入標準模塊)。 SetCapsLockState(True)啓用CapsLock,並且SetCapsLockState(False)將其禁用。
Option Explicit
Private Declare Function GetKeyState Lib "user32" _
(ByVal nVirtKey As Long) As Integer
Private Declare Function MapVirtualKey Lib "user32" _
Alias "MapVirtualKeyA" _
(ByVal uCode As Long, ByVal uMapType As Long) As Long
Private Declare Function SendInput Lib "user32" _
(ByVal nInputs As Long, pInputs As Any, ByVal cbSize As Long) As Long
Private Type KeyboardInput ' typedef struct tagINPUT {
dwType As Long ' DWORD type;
wVK As Integer ' union {MOUSEINPUT mi;
wScan As Integer ' KEYBDINPUT ki;
dwFlags As Long ' HARDWAREINPUT hi;
dwTime As Long ' };
dwExtraInfo As Long ' }INPUT, *PINPUT;
dwPadding As Currency '
End Type
'SendInput constants
Private Const INPUT_KEYBOARD As Long = 1
Private Const KEYEVENTF_KEYUP As Long = 2
Private Const VK_CAPITAL = &H14
Public Function CapsLock() As Boolean
' Determine whether CAPSLOCK key is toggled on.
CapsLock = CBool(GetKeyState(VK_CAPITAL) And 1)
End Function
Public Sub SetCapsLockState(bEnabled As Boolean)
'CapsLock is already in desired state. Nothing to do.
If CapsLock = bEnabled Then Exit Sub
PressCapsLock
End Sub
Private Sub PressCapsLock()
GenerateKeyboardEvent VK_CAPITAL, 0
GenerateKeyboardEvent VK_CAPITAL, KEYEVENTF_KEYUP
End Sub
Private Sub GenerateKeyboardEvent(VirtualKey As Long, Flags As Long)
Dim kevent As KeyboardInput
With kevent
.dwType = INPUT_KEYBOARD
.wScan = MapVirtualKey(VirtualKey, 0)
.wVK = VirtualKey
.dwTime = 0
.dwFlags = Flags
End With
SendInput 1, kevent, Len(kevent)
End Sub
人們可以從表單模塊這樣稱呼它:
Option Explicit
Private Sub cmdCapsLockOff_Click()
SetCapsLockState False
End Sub
Private Sub cmdCapsLockOn_Click()
SetCapsLockState True
End Sub
Private Sub cmdShowState_Click()
MsgBox "CapsLock is " & IIf(CapsLock, "ON", "OFF")
End Sub
+0
這很好,謝謝。 – reza
2
相關問題
- 1. 有沒有辦法打開/關閉Num,Caps和Scroll Lock燈?
- 2. 如何連接多個鍵盤時打開特定USB鍵盤的CAPS LOCK
- 3. 如何檢查Scroll Lock是否打開或關閉?
- 4. PowerShell:打開和關閉「Num Lock」。
- 5. 如何在VB.NET中切換Caps Lock?
- 6. Caps Lock隱含在
- 7. android softkeypad的控制Caps-Lock
- 8. 如何關閉打開一個網站使用的ShellExecute VB6
- 9. 如果它打開或關閉,則關閉div如果關閉
- 10. 檢查Cocoa中Caps Lock的狀態
- 11. 打開或關閉分組
- 12. 在Xlib中模擬CAPS LOCK新聞
- 13. 如何打開/關閉AngularJS中的$ log.debug
- 14. 如何匹配VIM的vimrc文件中的CAPS LOCK
- 15. 如何關閉在VB6
- 16. 我如何開啓/關閉大寫鎖定,滾動鎖定,Num Lock鍵編程
- 17. 如何獲取VB.NET中Caps Lock的當前狀態?
- 18. 使用[Caps-Lock]區分兩個USB連接的鍵盤
- 19. 如何在Javascript/Sencha中偵聽鍵盤打開/關閉?
- 20. ListBox打開或關閉時的控件
- 21. 禁用或關閉打開「vim」的NERDTree。
- 22. Javascript:打開/關閉開關
- 23. 如何警告用戶在Flex/AIR中啓用CAPS LOCK?
- 24. 如何知道在Dev-C++中是否啓用了Caps Lock?
- 25. 如何設置Caps Lock警告氣球在meanstack中
- 26. 打開和關閉外鍵約束
- 27. 打開/關閉軟鍵盤(Galaxy S)
- 28. 打開和關閉或返回,如果已經打開導航
- 29. 關閉從VB6
- 30. VB6 - 如何打開Chrome?
看到這裏 - http://access.mvps.org/access/api/api0046.htm –