PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Globales mitschneiden von Tastatureingaben



CH=HoMeR
15.03.2010, 21:31
Moin Moin

Also folgendes:

Ich habe ein Programm mit einer Form , das auf Tasten reagiert die gedrückt werden das aber nur, wenn die Form aktiv ist, also wen sie im Vordergrund ist.

Wie kann ich es machen das dieses Programm auch auf die Tasten reagiert wenn es im Hintergrund läuft ?

ThX

Titel geändert - bitte das nächste mal aussagekräftigen Titel wählen

inout
15.03.2010, 21:38
mögliche unsaubere Lösung: GetAsyncKeyState pollen
mögliche saubere Lösung: systemweiten HotKey registrieren

Zum Thema HotKeys findet man mit Google einige Beispiele.

kedi07
15.03.2010, 22:26
globalKeyboardHook gibt es auch noch..


using Utilities;
globalKeyboardHook gkh = new globalKeyboardHook();

private void Form1_Load(object sender, EventArgs a)
{
gkh.HookedKeys.Add(Keys.NumPad5); //was auch immer für eine Taste
gkh.HookedKeys.Add(Keys.B); //und noch eine Taste
gkh.KeyDown += new KeyEventHandler(gkh_KeyDown);
gkh.KeyUp += new KeyEventHandler(gkh_KeyUp);
}

void gkh_KeyUp(object sender, KeyEventArgs e)
{
MessageBox.Show("Bling es geht");
e.Handled = true;
}
sowohl das ganze nur mit KeyDown:


void gkh_KeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show(e.KeyCode.ToString());
e.Handled = true;
}
Download der Klasse:
http://rapidshare.com/files/363832598/globalKeyboardHook.cs.html
MD5: 0A20AAADBF93AB2F7390B582C42A79D6


Hoffe konnte helfen =)