我正在制作一个使用F1~F12的VB宏,并且移位+ F1~F12,以及ctrl + F1~F12, 必须在外部程序中工作,例如浏览器, 问题出现了,Shift + F1~F12部分重叠, 它没有工作(在Firefox上),它与firefox的HotKey / ShortCut重叠, (因为它最终变为Shift + F1 + ctrl + v) 有什么想法解决这个问题? :( 我使用的是visual studio 2013。
Public Const MOD_CONTRO As Integer = &H2
Public Const MOD_SHIFT As Integer = &H4
Public Const WM_HOTKEY As Integer = &H312
受保护的覆盖子WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_HOTKEY Then
Dim id As IntPtr = m.WParam
Select Case (id.ToString)
Case "101"
Clipboard.SetText(System.IO.File.ReadAllText(Application.StartupPath & "\SF1.txt"))
SendKeys.Send("^" & "v")
'^This is the problem part,
End Select
End If
MyBase.WndProc(m)
End Sub
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
UnregisterHotKey(Me.Handle, 101)
End Sub
Private Sub Home_Load(sender As Object, e As EventArgs) Handles MyBase.Load
RegisterHotKey(Me.Handle, 101, &H4, Keys.F1)
End Sub
答案 0 :(得分:0)
这样做解决了这个问题, 作为我从Joiner从这里学到的代码的一部分! shift pressed, and automatically up?(to avoid long press and hold)
私有声明Sub keybd_event Lib“user32”(ByVal bVk As Byte,ByVal bScan As Byte,ByVal dwFlags As Integer,ByVal dwExtraInfo As Integer)
案例“101” Clipboard.SetText(System.IO.File.ReadAllText(Application.StartupPath&“\ SF1.txt”)) keybd_event(& H10,0,& H2,0) SendKeys.SendWait(“^”&“v”)