(VB или C #) Запустите приложение в системном трее и слушайте ввод с клавиатуры, даже когда приложение не в фокусе - PullRequest
4 голосов
/ 29 марта 2010

Я хочу создать приложение, которое при загрузке будет находиться в системном трее и даже после того, как я открою другую программу (скажем, блокнот или VLC или что-то еще), т.е. даже когда приложение не в фокусе и если я нажму G на моей клавиатуре значок в трее должен показывать подсказку - «нажата клавиша G». Я пробовал несколько кодов, но ничего не работает, когда приложение выходит из фокуса. Я могу использовать Register Hot Key, но для этого также требуется модификатор (например, Ctrl или Alt и т. Д. Вместе с моей клавишей G ). Итак, есть ли способ, которым я могу достичь этого? то, что делают многие иконки в трее, например, антивирусные приложения и т. д. и я не хочу использовать AutoHotkey приложение. Я хочу построить его, но мне нужна помощь.

Ответы [ 2 ]

3 голосов
/ 29 марта 2010

WindowsHookLib.dll спасла меня много раз. Это позволяет вам легко подключить как мышь, так и клавиатуру.

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

, чтобы подключить клавиатуру и действовать, когда нажата 'G':

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
1 голос
/ 29 марта 2010

Вам нужно будет использовать крючок клавиатуры. Вот несколько реализаций: Крючки для клавиатуры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...