Steuerung per hotkey !?
-
Hallo Wissende,
gegeben ein in C++ geschriebenes Programm welches minimiert in der Taskleiste steht.
Dieses soll nun per hotkey auf einen Start/Stop Befehl gehorchen.
Muss sowas einprogrammiert werden (wie), oder ist das ein perverses
Hirngespinst, welches gar nicht geht?Ich brauche irgendeinen Gedankenanstoss -
Gruss
tuxmuck
-
Standard-C++ kennt keine Tasten, hotkeys oder sonst was. Nur Files und vielleicht noch Signals. Da wirst du also dein System fragen müssen, ich tippe mal auf Windows, das wäre dann die WinAPI. (Mit der du das Programm ohnehin in die Taskleiste gesetzt hast.)
msdn.microsoft.com/en-us/library/windows/desktop/ms646309(v=vs.85).aspx
-
das kannst zu z.b mit der Funktion GetAsyncKeyState() machen (unter Windows).
siehe: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646293%28v=vs.85%29.aspxAlso eine Schleife, die dauernd prüft ob eine Taste gedrückt ist:
while(1) { if(GetAsyncKeyState(VK_F1 & 0x8000) //F1 wurde gedrückt { //Befehle } Sleep(10); }
Übrigens: kannst du bitte den Code posten mit dem du dein Programm ins Systray verschiebst, würde mich interessieren.
-
GetAsyncKeyState
ist nicht so toll, weil man ständig pollen muss. Guck dir mal die API FunktionenRegisterHotKey
undUnregisterHotKey
an.
-
Danke mal für alle Hinweise.
Das Ganze ist übrigens unter Linux.
Ich werde mich mal in Richtung RegisterHotKey und XGrabKeybord schlauer machen ...Gruss
tux
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
tuxmuck schrieb:
RegisterHotKey
Die ganzen Windows-Tipps kannst du vergessen. Die meisten Helfer in diesem Thread sind wohl aus Erfahrung davon ausgegangen, dass jemand, der kein System angibt und solche Vorhaben hat, Windows benutzt.
-
Danke für's verschieben. Die Sache mit dem Wald und lauter Bäume ...
Ich "dachte", auf Grund meiner Signatur wäre es klar, dass ich kein Win-Nutzer binGruss
tux