Seite 1 von 1

systemweite tastaturabfrage

Verfasst: 25.04.2011 20:51
von delikanli_19_82
hallo leute,

in vorfeld zu vermerken: AddKeyboardShortcut ist nicht ausreichend, da dieser jegliche sonderzeichen wiw ()[]"! etc. nicht unterstützt.

unter windows kann man ja mittels getasynckeystate die aktuelle taste auf der tastatur abfangen. ich brauche einen gegenstück zusätzlich für mac os x und linux. suche seit tagen in google und bin nicht zufriedenstellend fündig geworden.

ich würde ja gern das ganze im englischen forum anfragen, aber ich kann mir dort aus welchem grund auch immer, keinen account anlegen. wie auch immer, egal...

hat jemand vielleicht eine idee was man da bei mac und lin machen könnte?

mfg

kurt

Re: systemweite tastaturabfrage

Verfasst: 25.04.2011 21:10
von ts-soft
Da getasynckeystate nicht auf ein Event basiert, sollte man dies nicht in einer GUI-Anwendung nutzen.
Besser wäre dann: RegisterHotKey
Aber auch das ist IMHO unschön, da sich verschiedene Anwendungen gegenseitig den Hotkey stehlen.
Für Linux und Mac hab ich jetzt keine API parat, möchte Dir aber empfehlen, wenn es nicht unbedingt
erforderlich ist, auf so was zu verzichten, bzw unbedingt dem User die Möglichkeit geben, diesen Key einzu-
stellen, damit Probleme mit anderen gleichzeitig laufenden Anwendungen abgewendet werden können.

Das andere Programme aufgrund solcher Systemübergreifenden Abfrage nicht mehr funktionieren ist keine
Seltenheit, also überleg Dir was Du machst!

Gruß
Thomas

Re: systemweite tastaturabfrage

Verfasst: 25.04.2011 21:22
von delikanli_19_82
ich möchte eigentlich eine speziellle inputfeld-control basteln. der soll unter win,lin und mac funktioneren.

es geht hierbei darum, das ich lernen will, wie ich sowas selbst hinbekomme. dies ist erstmal ein experiment für ein späteres projekt.

Re: systemweite tastaturabfrage

Verfasst: 28.04.2011 09:16
von Zaphod
AFAIK geht das unter OS X nur mit Carbon, welches man aber langsam meiden sollte.
Die Funktionen hießen da wenn ich mich nicht sehr irre InstallApplicationEventHandler und RegisterEventHotKey.