资源描述:
《在C#程序中使用系统热键》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在C#程序中使用系统热键关键词:热键Win32API1.首先引入System.Runtime.InteropServices usingSystem.Runtime.InteropServices;2.在类内部声明两个API函数,它们的位置和类的成员变量等同.[System.Runtime.InteropServices.DllImport("user32.dll")]//申明API函数 publicstaticexternboolRegisterHotKey( IntPtrhWnd,//handletowindow
2、 intid,//hotkeyidentifier uintfsModifiers,//key-modifieroptions Keysvk//virtual-keycode );[System.Runtime.InteropServices.DllImport("user32.dll")]//申明API函数 publicstaticexternboolUnregisterHotKey( IntPtr
3、hWnd,//handletowindow intid//hotkeyidentifier );3.定义一个KeyModifiers的枚举,以便出现组合键publicenumKeyModifiers { None=0, Alt=1, Control=2, Shift=4, Windows=8 }4.在类的构造函数出注册系统热键示例,下例注册了四个热键: publicMainForm() { Initial
4、izeComponent(); RegisterHotKey(Handle,100,2,Keys.Left);//热键一:Control +光标左箭头 RegisterHotKey(Handle,200,2,Keys.Right);//热键一:Control +光标右箭头 RegisterHotKey(Handle,300,2,Keys.Up);//热键一:Control +光标上箭头 RegisterHotKey(Handle,400,2,Keys.Down);//热键一:Control +光标
5、下箭头 ....; }5.重写WndProc()方法,通过监视系统消息,来调用过程示例:protectedoverridevoidWndProc(refMessagem)//监视Windows消息 { constintWM_HOTKEY=0x0312;//如果m.Msg的值为0x0312那么表示用户按下了热键 switch(m.Msg) { case
6、WM_HOTKEY: ProcessHotkey(m);//按下热键时调用ProcessHotkey()函数 break; } base.WndProc(refm);//将系统消息传递自父类的WndProc } 5.不用说,我们接下来需要实现ProcessHotkey函数://按下设定的键时调用该函数 pri
7、vatevoidProcessHotkey(Messagem) { IntPtrid=m.WParam;//IntPtr用于表示指针或句柄的平台特定类型 //MessageBox.Show(id.ToString()); stringsid=id.ToString(); switch(sid) { case"100":D