Хочу поделится найденым ответом Для глобального системного хука клавиатуры (т.к. мне было нужно именно перехват нажатия клавишь клавиатуры) можно использовать функцию WinAPI - RegisterHotKey, а вот пример подсказанного мне способа использования этой функции:
Код | using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServices;
public class WindowsForm : System.Windows.Forms.Form { [DllImport("USER32.DLL", EntryPoint="RegisterHotKey")] public static extern bool HotK(int hWnd, int id, uint fsModifiers, uint vk); public static int pressCnt; const int MOD_CONTROL = 2; const int MOD_ALT = 1; const int WM_HOTKEY = 0x312; const int VK_F2 = 0x71; [STAThread] public static void Main() { Application.Run(new WindowsForm()); }
public WindowsForm() { this.Size = new Size(500, 50); if( !HotK(this.Handle.ToInt32(), 1, MOD_CONTROL+MOD_ALT, VK_F2) ) throw( new ArgumentException("Can't install hot key! Bad arguments?"));
}
protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_HOTKEY: this.Text = "HotKey was pessed "+(++pressCnt).ToString()+" times."+ "Lparam="+m.LParam.ToInt32().ToString("X")+";Wparam="+m.WParam.ToInt32().ToString("X"); break; } base.WndProc(ref m); } } | Так, что пользуйтесь ребятки, думаю не у меня одного на этом форуме возникали подобные вопросы |