c# - (VB 或 C#)在系统托盘中运行应用程序并在应用程序未处于焦点时收听键盘输入

标签 c# vb.net keyboard

我想制作一个应用程序,它在加载时位于系统托盘中,甚至在我打开另一个程序(比如记事本或 vlc 或任何东西)之后,即即使应用程序未处于焦点并且如果我按 G 在我的键盘上,托盘图标应该显示工具提示 - “按下 G 键”。 我已经尝试了几种代码,但当应用程序失焦时没有任何效果。我可以使用 Register Hot Key但它还需要一个修饰符(如 CtrlAlt 等,以及我的键 G)。那么,有什么办法可以实现这一目标吗? 许多托盘图标所做的事情,如防病毒应用程序等。 而且我不想使用 AutoHotkey 应用程序。我想 build 一个,但需要一些帮助。

最佳答案

WindowsHookLib.dll 救了我很多次。它使您可以非常轻松地在整个系统范围内连接鼠标和键盘。

http://www.vbforums.com/showthread.php?t=436321

钩住键盘并在按下“G”时 Action :

Imports WindowsHookLib
Public Class frmMain

    Dim WithEvents gkh As New LLKeyboardHook

    Private Sub frmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        gkh.RemoveHook()
        ghk.Dispose()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        gkh.InstallHook()
    End Sub


    Private Sub gkh_KeyDown(ByVal sender As Object, ByVal e As WindowsHookLib.KeyEventArgs) Handles gkh.KeyDown
        If e.KeyCode = Keys.G Then
            REM G is pressed!                
        End If
    End Sub
    Private Sub gkh_KeyUp(ByVal sender As Object, ByVal e As WindowsHookLib.KeyEventArgs) Handles gkh.KeyUp
        If e.KeyCode = Keys.G Then
            REM G was pressed and now released
        End If
    End Sub

End Class

关于c# - (VB 或 C#)在系统托盘中运行应用程序并在应用程序未处于焦点时收听键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2534378/

相关文章:

c# - 当子项打开时禁用 MDI 窗体的控件

android - Android 中的微笑和长按功能

jquery - 如何使用 jQuery 按键对事件进行排序?

c# - 大型数据库的模型优先或代码优先

C# - 数字非常小的问题 - 双数据类型中的数字不足

vb.net - 按需显示或隐藏标题栏

javascript - ios7 键盘,打开时会收缩 web-app

c# - 使用 Entity Framework 将文件保存在数据库中

c# - Unity3d,在鼠标位置射击

Vb.net 从字符串转换日期时间