ytmfb Geschrieben 6. August 2013 Teilen Geschrieben 6. August 2013 Hallo, da ich in C# relativ unerfahren bin und meinen Chef nicht wegen jeder Kleinigkeit fragen muss, bat er mir an dieses ihm bekannte Forum zu benutzen für den Fall.. Wir entwickeln ausschließlich mit C# und ich soll zurzeit ein Tool schreiben welches mir auf Druck einer bestimmten Tastenkombination einen Ton abspielt ( .wav ). Beispielsweise soll so erzielt werden das auf den genauen Tastendruck von /shutdown der Computer sagt "Computer wird Heruntergefahren" , anstatt das nur die Messagebox erscheint. Den Ton kann ich schon einbinden meine Frage nun lautet allerdings wie ich auf die Kombination der Tasten abfrage, habe eine Keydown funktion gefunden allerdings hilft mir das nicht wirklich weiter weil sich dies auf einzelne Tasten bezieht. Bitte um nützliche Vorschläge! Freundlicher Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 6. August 2013 Teilen Geschrieben 6. August 2013 Wie sieht denn der bisherige Versuch aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
citybreaker Geschrieben 6. August 2013 Teilen Geschrieben 6. August 2013 Schau mal bei Google in Richtung "Tastatur hook". Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ytmfb Geschrieben 7. August 2013 Autor Teilen Geschrieben 7. August 2013 Habe mir Global Keyhook.cs heruntergeladen klappt für buchstaben ganz gut, allerdings sind die sonderzeichen nicht deutlich nachvollziehbar. using System; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region " Disable Special Keys" [DllImport("user32.dll", EntryPoint = "SetWindowsHookExA", CharSet = CharSet.Ansi)] private static extern int SetWindowsHookEx( int idHook, LowLevelKeyboardProcDelegate lpfn, int hMod, int dwThreadId); [DllImport("user32.dll")] private static extern int UnhookWindowsHookEx(int hHook); [DllImport("user32.dll", EntryPoint = "CallNextHookEx", CharSet = CharSet.Ansi)] private static extern int CallNextHookEx( int hHook, int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); private delegate int LowLevelKeyboardProcDelegate(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); const int WH_KEYBOARD_LL = 13; private int intLLKey; private struct KBDLLHOOKSTRUCT { public int vkCode; int scanCode; public int flags; int time; int dwExtraInfo; } private int LowLevelKeyboardProc( int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam) { bool blnEat = false; switch (wParam) { case 256: //WM_KEYDOWN = 0x0100 case 257: //WM_KEYUP = 0x0101 case 260: //WM_SYSKEYDOWN = 0x0104 case 261: //WM_SYSKEYUP = 0x0105 { blnEat = false; textBox1.Text = lParam.vkCode.ToString(); } break; } if (blnEat) return 1; else return CallNextHookEx(0, nCode, wParam, ref lParam); } private void KeyboardHook(object sender, EventArgs e) { intLLKey = SetWindowsHookEx( WH_KEYBOARD_LL, new LowLevelKeyboardProcDelegate(LowLevelKeyboardProc), System.Runtime.InteropServices.Marshal.GetHINSTANCE( System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0); } private void ReleaseKeyboardHook() { intLLKey = UnhookWindowsHookEx(intLLKey); } #endregion private void chk_DisableSpecialKeys_CheckedChanged(object sender, EventArgs e) { { if (chk_DisableSpecialKeys.Checked) KeyboardHook(this, e); else ReleaseKeyboardHook(); } } } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 7. August 2013 Teilen Geschrieben 7. August 2013 Hallo dein erster Anlauf schaut sehr "kompliziert" aus. Da du dich vermutlich in einem "form" befindest könnte folgendes interessant sein: Control.KeyDown-Ereignis (System.Windows.Forms) KeyEventArgs.KeyCode-Eigenschaft (System.Windows.Forms) Gruß Hans-Jörg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.