繁体   English   中英

vb.net上的键重叠[外部程序上的宏项目]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM