How do I toggle Caps Lock in VB.NET?

匿名 (未验证) 提交于 2019-12-03 08:46:08

问题:

Using VB.NET, how do I toggle the state of Caps Lock?

回答1:

From: http://www.vbforums.com/showthread.php?referrerid=61394&t=537891

Imports System.Runtime.InteropServices  Public Class Form2      Private Declare Sub keybd_event Lib "user32" ( _         ByVal bVk As Byte, _         ByVal bScan As Byte, _         ByVal dwFlags As Integer, _         ByVal dwExtraInfo As Integer _     )     Private Const VK_CAPITAL As Integer = &H14     Private Const KEYEVENTF_EXTENDEDKEY As Integer = &H1     Private Const KEYEVENTF_KEYUP As Integer = &H2      Private Sub Button1_Click( _         ByVal sender As System.Object, _         ByVal e As System.EventArgs _     ) Handles Button1.Click          ' Toggle CapsLock          ' Simulate the Key Press         keybd_event(VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0)          ' Simulate the Key Release         keybd_event(VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)     End Sub  End Class  


回答2:

Try this:

Public Class Form1     Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load             Call keybd_event(System.Windows.Forms.Keys.CapsLock, &H14, 1, 0)             Call keybd_event(System.Windows.Forms.Keys.CapsLock, &H14, 3, 0)         End Sub End Class 


回答3:

I use this

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer) Private Const KEYEVENTF_EXTENDEDKEY As Integer = &H1 Private Const KEYEVENTF_KEYUP As Integer = &H2 'put this where you want to turn caps lock on or off keybd_event(VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0) keybd_event(VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0) 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!