wxKeyEvents systemweit?



  • Nabend zusammen,

    gibt es eine Möglichkeit, KeyEvents (bzw. CharEvents) auch systemweit zum funktionieren zu bekommen, sodass ich das Proramm minimieren oder in den Tray schließen kann, und dieses weiterhin die Tastendrücke bekommt?

    Hintergrund: Ich programmiere derzeit einen Screenshooter mit Shortcut-Funktion, habe nur bisher keine Möglichkeit gefunden, diesen Shortcut zum Laufen zu bekommen, wenn das Fenster nicht aktiv ist.

    Ich arbeite unter Linux/KDE, sofern es also keine wxWidgets-Möglichkeit gibt, hilft mir eine linuxspezifische ebenfalls (wobei ich das Programm, falls möglich, gerne portable haben möchte).

    Vielen Dank im Voraus,

    Dr-Saar



  • Ok, ich bin soeben selbst beim Graben im wxWidgets Support Forum darauf gestoßen:

    wxWindow::RegisterHotKey

    bool RegisterHotKey(int hotkeyId, int modifiers, int virtualKeyCode)

    Registers a system wide hotkey.

    Vielen Dank an Alle, die zumindest über das Problem nachgedacht haben 🙂

    Gruß

    Dr-Saar



  • Ok, Kommando zurück.

    Nachdem ich nun die Hotkeys implementieren wollte, dies allerdings nicht ging und ich noch einmal einen genaueren Blick ins die Referenz geworfen hatte, musste ich folgende Zeile lesen:

    Remarks

    Use EVT_HOTKEY(hotkeyId, fnc) in the event table to capture the event. This function is currently only implemented under Windows. It is used in the Windows CE port for detecting hardware button presses.

    Da mein Programm allerdings halbwegs sinnlos ohne Hotkey ist, möchte ich nocheinmal nachfragen, ob es eine andere Möglichkeit gibt, dies umzusetzen.

    Vielen Dank,

    Dr-Saar


  • Mod

    Müsstest dir da selber was basteln, wäre sicher auch vom wxTeam gewünscht, wenn man da was für andere Plattformen hätte.
    Evtl. schaust du auch mal bei wxCode, das gibts bestimmt schon.
    Ansonsten müsstest du das halt für die für dich interessanten Plattformen implementieren (Unter Windows scheints ja zu gehen).



  • Naja, das Problem scheint am Linuxdesign zu liegen.

    Zwar bietet der X-Server die Möglichkeit, Hotkeys zu setzen, allerdings kann es hier zwei Problemfälle:

    1. Der Hotkey ist bereits registriert (versteht sich wohl von selbst)
    2. Eine Anwendung (z.B. Spiel, also gerade da, wo der Hotkey zwingend Sinn macht) "grabt" die ganze Tastatur.

    Zwar wäre es eine Notlösung, das mit den X-Libs anzustellen, aber so wirklich glücklich bin ich damit auch nicht.

    Gruß
    Dr-Saar


Anmelden zum Antworten