Wie kann man mit C# einen Tastendruck ohne Fenster Fokus Abfragen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Das geht nur über die Windows-API.

Ein Programm kann dort Hooks registrieren und auf Windows-Messages registrieren, darüber werden alle Ereignisse im Windows verteilt, auch Tastatureingaben. Das Wichtigste sind die Funktionen:

SetWindowsHookEx
Erzeugt einen Hook, die angegebene Methode wird dann je Message aufgerufen. Für die Daten in dieser Message gibt's dann lange Listen, was das bedeuten kann.

CallNextHookEx
Das brauchst Du, um den nächsten Hook aufzurufen, damit auch der Rest im Windows noch funktioniert.

UnhookWindowsHookEx
Damit entfernst Du den Hook wieder, damit Windows den Hook nicht sinnlos versucht aufzurufen.

Die Website pinvoke.net hilft dabei sehr.

Woher ich das weiß:Berufserfahrung
StoppiDerGrosse 
Fragesteller
 11.06.2021, 21:52

Danke! Hat mir sehr weiter geholfen.
Das ist dann ja doch etwas Komplizierter als ich dachte. Eigentlich will ich nur was kleines Ausprobieren. Könnten sie mir vielleicht etwas dabei behilflich sein? Ich möchte irgendwo halt auch wirklich was lernen und verstehen wie es funktioniert.

LG

0
Palladin007  11.06.2021, 22:10
@StoppiDerGrosse

Dann solltest lernen, dich selber zu informieren, das hört nämlich nie auf und Du wirst immer und immer wieder vor der Herausforderung stehen, neue Dinge lernen zu müssen. Das gehört zum Job dazu.

Und Du bist nicht der erste mit dem Ziel, die Frage wurde schon zig Mal beantwortet, auch ausführlicher in Blogs.

Oder Du liest die Doku von Microsoft, das Stichwort für die Technologie dahinter ist "P/Invoke", damit kann man native C/C++-Bibliotheken aufrufen, also auch die WinApi.
Hast Du das verstanden, fehlt gar nicht mehr so viel, auch für die benötigten Funktionen hat Microsoft geeignete Doku.

Und wenn Du konkrete Fragen hast, kannst Du ja wieder fragen.

0