Autor Beitrag
Creedy
Hält's aus hier
Beiträge: 12
Erhaltene Danke: 3

Win 7 Prof. x86 & x64, Win XP Prof.
C#, C++, Java
BeitragVerfasst: Fr 23.07.10 10:20 
Gibt es in C# die möglichkeit Hotkeys zu definieren damit vom mir definierte aktionen (Methoden/Funktionen) ausgeführt werden auch wen sich die Form nicht im Vordergrund befindet aber gestartet ist. Würde in mein Programm gern sowas einbauen ähnlich wie in z.b. Winamp , dass man festlegt Strg+Alt+P betätigt den Play/Pause Button auch wen man sich gerade in einer anderen Anwendung(Spiel,Browser usw) befindet.

Wen die Möglichkeit nicht direkt besteht kann man sowas über C/C++ einbinden ?

Wäre mir nett wen mir da jemand helfen könnten, vor allem weil ich in C/C++ auch nicht so fitt bin, wen C# direkt so eine Möglichkeit anbietet wäre dies natürlich praktischer.


Vielen Dank schonmal ;-)


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Fr 23.07.2010 um 17:08
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 23.07.10 10:27 
Wenn ich mich gerade nicht täusche dürfte in C# nur der Tastendruck erkannt werden wenn dein Programm im Fokus ist.
Ansonsten wären es Globale Hotkeys.
(Wenn du bei google mal nach "c# global hotkey" suchst findest du genug dazu)
ThoMa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46
Erhaltene Danke: 3



BeitragVerfasst: Fr 23.07.10 15:42 
Hallo,

eigentlich ändert sich unter C# an der Stelle nicht viel gegenüber den anderen nicht-.NET-Ansätzen. Aus C# mag es ungewohnt sein mit der Win32API umzugehen, was Du hier tun musst um einen sogenannten MessageHook zu registieren.

Du musst Dir klar darüber werden wie Nachrichten (dazu gehören auch Tastatur- und Mausereignisse) unter Windows verarbeitet werden. Vereinfacht ausgedrückt kommen die in eine Warteschlange und werden so lange nach unten gereicht bis irgendwas damit anfangen konnte. Es gibt nun die Möglichkeit sich in diese Warteschlange einzuhängen.

Hier gibt es eine fertige Lösung:
www.codeproject.com/KB/cs/globalhook.aspx

Grüße
ThoMa
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 23.07.10 15:48 
Hier noch ein anderer Link zu einer Hotkey-Klasse: www.mycsharp.de/wbb2...d.php?threadid=65760

Und "ErfinderDesRades" hat noch einen einfacheren Weg (mittels RegisterHotKey) in C# implementiert:
www.mycsharp.de/wbb2...id=341963#post341963
Creedy Threadstarter
Hält's aus hier
Beiträge: 12
Erhaltene Danke: 3

Win 7 Prof. x86 & x64, Win XP Prof.
C#, C++, Java
BeitragVerfasst: Di 27.07.10 13:53 
Danke euch vielmals , sieht sehr vielversprechend aus . Werde am Wochenende mal schauen wie ich das am besten einbauen kann.