资源描述:
《c#实现记录键盘输入完整版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、[HCode=C#]///Hook.cs代码usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Reflection;usingSystem.Windows.Forms;namespaceKingOper{publicenumKeyboardEvents{KeyDown=0x0100,KeyUp=0x0101,SystemKeyDown=0x0104,SystemKeyUp=0x0105}[StructLayout(LayoutKind.Sequential)]publicstructK
2、eyboardHookStruct{publicintvkCode;//表示一个在1到254间的虚似键盘码publicintscanCode;//表示硬件扫描码publicintflags;publicinttime;publicintdwExtraInfo;}publicdelegatevoidKeyboardEventHandler(KeyboardEventskeyEvent,System.Windows.Forms.Keyskey);publicclassHook{publiceventKeyboardEventHandlerKeyboardEv
3、ent;publicenumHookType{WH_JOURNALRECORD=0,WH_JOURNALPLAYBACK=1,WH_KEYBOARD=2,WH_GETMESSAGE=3,WH_CALLWNDPROC=4,WH_CBT=5,WH_SYSMSGFILTER=6,WH_MOUSE=7,WH_HARDWARE=8,WH_DEBUG=9,WH_SHELL=10,WH_FOREGROUNDIDLE=11,WH_CALLWNDPROCRET=12,WH_KEYBOARD_LL=13,WH_MOUSE_LL=14,WH_MSGFILTER=-1,}pub
4、licdelegateIntPtrHookProc(intcode,intwParam,IntPtrlParam);[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstaticexternIntPtrSetWindowsHookEx(HookTypehookType,HookProchook,IntPtrinstance,intthreadID);[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstaticexternIntPtrCallNex
5、tHookEx(IntPtrhookHandle,intcode,intwParam,IntPtrlParam);[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstaticexternboolUnhookWindowsHookEx(IntPtrhookHandle);privateIntPtrinstance;privateIntPtrhookHandle;privateintthreadID;privateHookProchookProcEx;publicHook(){this.instance
6、=Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]);this.threadID=0;hookHandle=IntPtr.Zero;hookProcEx=newHookProc(hookProc);}publicboolSetHook(){this.hookHandle=SetWindowsHookEx(HookType.WH_KEYBOARD_LL,hookProcEx,this.instance,this.threadID);return((int)hookHan
7、dle!=0);}publicIntPtrhookProc(intcode,intwParam,IntPtrlParam){if(code>=0){KeyboardEventskEvent=(KeyboardEvents)wParam;if(kEvent!=KeyboardEvents.KeyDown&&kEvent!=KeyboardEvents.KeyUp&&kEvent!=KeyboardEvents.SystemKeyDown&&kEvent!=KeyboardEvents.SystemKeyUp){returnCallNextHookEx(th
8、is.hookHandle,(int)HookType.WH_KEYBOARD_