Hey,
um mein Programm immer aufrufen zu können würde ich gerne Tastendrücke systemweit abfragen. Also auch wenn der User in einem anderen Programm zu Werke ist.
Das ganze sollte auch unter Linux funktionieren, also nicht die WindowsAPI benutzen...
Tastenabfrage systemweit (ohne WinAPI)
Tastenabfrage systemweit (ohne WinAPI)
----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
PB 5.20 Beta 10 | Windows 7
Re: Tastenabfrage systemweit (ohne WinAPI)
Da wirst du wohl ohne API kein Glück haben.
Du willst dem Betriebssystem sagen, dass auf eine bestimmte Taste reagiert werden soll...
da kommst du ohne das Betriebssystem zu nutzen nicht drumrum, sowas wirds auch unter Linux und Mac geben...
Also ohne API (wie auch immer das unter Linux oder Mac genannt wird) sehe ich da kein Land...
Du willst dem Betriebssystem sagen, dass auf eine bestimmte Taste reagiert werden soll...
da kommst du ohne das Betriebssystem zu nutzen nicht drumrum, sowas wirds auch unter Linux und Mac geben...
Also ohne API (wie auch immer das unter Linux oder Mac genannt wird) sehe ich da kein Land...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Tastenabfrage systemweit (ohne WinAPI)
Das wird überall API (Application Programming Interface) genannt. API ist kein Begriff der mit Windows verheiratet istBisonte hat geschrieben:Also ohne API (wie auch immer das unter Linux oder Mac genannt wird) sehe ich da kein Land...

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Tastenabfrage systemweit (ohne WinAPI)
ts-soft hat geschrieben:Das wird überall API (Application Programming Interface) genannt. API ist kein Begriff der mit Windows verheiratet istBisonte hat geschrieben:Also ohne API (wie auch immer das unter Linux oder Mac genannt wird) sehe ich da kein Land...

Hm Okay. Oder ich mache eine von diesen schicken Abfragen, ob es sich um Windows oder Linux handelt. Und dann suche ich mir einfach 2 API-Befehle die das gleiche machen. Kennt ihr einen Linux Befehl, der so ähnlich wieBisonte hat geschrieben:Da wirst du wohl ohne API kein Glück haben.
Du willst dem Betriebssystem sagen, dass auf eine bestimmte Taste reagiert werden soll...
da kommst du ohne das Betriebssystem zu nutzen nicht drumrum, sowas wirds auch unter Linux und Mac geben...
Also ohne API (wie auch immer das unter Linux oder Mac genannt wird) sehe ich da kein Land...
Code: Alles auswählen
GetAsyncKeyState_(n)
----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
PB 5.20 Beta 10 | Windows 7
Re: Tastenabfrage systemweit (ohne WinAPI)
So einfach ist dies in Linux leider nicht, denn in Linux gibt es ja im Gegensatz zu Windows eine Vielzahl verschiedener Desktop-Manager wie Gnome, KDE, Unity, LXDE, Enlightenment usw., die man für eine unter allen Linux-Distributionen lauffähige Lösung berücksichtigen müßte.Joel hat geschrieben: Kennt ihr einen Linux Befehl, der so ähnlich wieist?Code: Alles auswählen
GetAsyncKeyState_(n)
Aber zum Glück haben zur Zeit alle Linux-Distros noch XWindow als Unterbau (Wayland und Mir sind in Entwicklung und werden bald ebenfalls in verschiedenen Distros auftauchen, dann scheidet die XWindow-Lösung als alleinige Lösung auch aus), sodass über XWindow eine systemweite HotKey-Lösung möglich ist. Ein Beispiel dazu habe ich bereits früher einmal im englischen Forum gezeigt. Das Beispiel richtet die systemweite HotKey-Tastenkombination <Strg> + <Shift> + <K> ein. Bei Drücken dieser Tastenkombination erfolgt eine Meldung und die HotKey-Tastenkombination wird wieder entfernt. Ich habe das Beispiel noch einmal aktuell auf verschiedenen Linux-Distros getestet und gemerkt, dass es nur auf etwa der Hälfte der Distros lief, bis ich merkte, dass manchmal die NumLock-Taste aktiviert war und dann die HotKey-Kombination nicht funktionierte, weil ja die NumLock-Taste auch "gedrückt" war...

Also dran denken: vor dem Test sollte die NumLock-Taste ausgeschaltet sein!
Für MacOS X habe ich im englischen Forum ebenfalls bereits demonstriert, wie man eine systemweite HotKey-Tastenkombination einrichtet (lauffähig mit Carbon-Framework und Cocoa-Framework, 32 und 64 Bit, ASCII- und Unicode-Modus).