[英]Keys overlapping on vb.net [a macro project on external program]
我正在制作一个使用F1〜F12,shift + F1〜F12和ctrl + F1〜F12的VB宏,这些宏必须在外部程序(例如浏览器)中工作,这就是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(由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
这样做解决了这个问题,这是我从这里从Joiner那里学到的代码的一部分! 按下并自动向上移动?(避免长按)
私有声明子keybd_event库“ user32”(ByVal bVk作为字节,ByVal bScan作为字节,ByVal dwFlags作为整数,ByVal dwExtraInfo作为整数)
案例“ 101” Clipboard.SetText(System.IO.File.ReadAllText(Application.StartupPath&“ \\ SF1.txt”))keybd_event(&H10,0,&H2,0)SendKeys.SendWait(“ ^”&“ v”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.