Programm im SystemTray soll bei Knopfdruck aktiv werden

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von PrinzMegahertz.

    Programm im SystemTray soll bei Knopfdruck aktiv werden

    Hallo liebe VB-ler,

    ich versuche gerade ein Programm zu schreiben, dass im System Tray liegt und bei einer speziellen Tastenkombination (in unserem Fall CTRL+Page Down) prüft, ob sich ein siebenstelliger String im Zwischenspeicher befindet und, falls ja, eine andere Form öffnet und dort mit dem String eine Datenbankabfrage startet.

    Meine Frage ist, wie ich so einen Tastendruck abfragen kann, wenn mein Programm keine aktive Form und keinen Fokus hat?

    Im Vorraus schonmal vielen Dank!
    Nein, keinen Keyhook. RegisterHotKey tuts alle mal.

    VB.NET-Quellcode

    1. Imports System.Runtime.InteropServices
    2. Public Class Hotkey
    3. <DllImport("user32.dll")>
    4. Public Shared Function RegisterHotKey(hwnd As IntPtr, id As Integer, fsModifiers As Integer, vk As Integer) As Integer
    5. End Function
    6. <DllImport("user32.dll")>
    7. Public Shared Function UnregisterHotKey(hwnd As IntPtr, id As Integer) As Integer
    8. End Function
    9. End Class


    Das sind die API-Calls. Den Rest kannst Du nachlesen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Hallo Manschula,

    mein Problem ist fast gelöst. Ich habe das von diylab verlinkte Projekt in VB umgesetzt und kann jetzt einzelne Tastendrucks abfangen.

    Mir ist aber noch nicht so ganz klar, wie ich einen kombinierten Tastendruck (STRG+Page Down) abfragen kann.

    Anbei mein Code:
    - Der TrayListener ist die Klasse, die das Icon in der Taskleiste einblendet und dann auf ein Tastendruckevent wartet und dann etwas tut.
    - Der GlobalKeyboardHook ist die Klasse, die das Lauschen übernimmt und dann ein entsprechendes Event zurück wirft

    Edit by ErfinderDesRades: KeyHooks sind Kernkomponente einer bestimmten Klasse von Malware.
    Solche Technologie bitte auf VBP nicht für jedermann zugänglich veröffentlichen.
    Wenn ihr einander vertraut - klärt das per PM

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()