资源描述:
《屏蔽Real的ActiveX插件的右键菜单(C#版)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、屏蔽Real的ActiveX插件的右键菜单(C#版)分类C#(Csharp) 2006-8-711:45:45浏览1574回复0 隐藏侧边栏转自DZEND--C#学习乐园.其实就是调用一下API而已: 1、安装钩子: SetWindowsHookEx 函数原形: 复制 保存HHOOKSetWindowsHookEx(intidHook,//钩子类型,HOOKPROClpfn,//钩子函数地址INSTANCEhMod,//钩子所在的实例的句柄,DWORDdwThreadId//钩子所监视的线程的线程号)hMod: 对
2、于线程序钩子,参数传NULL; 对于系统钩子:参数为钩子DLL的句柄 dwThreadId:对于全局钩子,该参数为NULL。 钩子类型用WH_CALLWNDPROC=4(发送到窗口的消息。由SendMessage触发) 返回:成功:返回SetWindowsHookEx返回所安装的钩子句柄; 失败:NULL; 2、回调,你要截获消息就在这里进行: 复制 保存LRESULTWINAPIMyHookProc(intnCode,//指定是否需要处理该消息WPARAMwParam,//包含该消息的附加消息LPARAMlPar
3、am//包含该消息的附加消息)3、调用下一个钩子 复制 保存LRESULTCallNextHookEx(HHOOKhhk,//是您自己的钩子函数的句柄。用该句柄可以遍历钩子链intnCode,//把传入的参数简单传给CallNextHookEx即可WPARAMwParam,//把传入的参数简单传给CallNextHookEx即可LPARAMlParam//把传入的参数简单传给CallNextHookEx即可);4、用完后记得卸载钩子哦,要不然你的系统会变得奇慢无比! 复制 保存BOOLUnhookWindowsHookEx(HH
4、OOKhhk//要卸载的钩子句柄。)把上面这些API用C#封装一下,就可以直接用了! 首先在form界面放一个realG2控件。然后设定CtlControls的属性值为imagewindow,all 这样我们就可以在form界面上看到一个realplay的播放器界面了。 然后我们再在form界面上加一个ContextMenu的菜单。自己随便加几个菜单项。 (我这里面的contextMenu的名字为contextMenu1。你们根据自己的情况 可以改变名字。但底下的名字也要相应改变) 复制 保存//定义委托(钩子函数,用于回调)p
5、ublicdelegateintHookProc(intcode,IntPtrwparam,refCWPSTRUCTcwp);//安装钩子的函数[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstaticexternIntPtrSetWindowsHookEx(inttype,HookProchook,IntPtrinstance,intthreadID);//调用下一个钩子的函数[DllImport("User32.dll",CharSet=CharSet.Auto)]pub
6、licstaticexternintCallNextHookEx(IntPtrhookHandle,intcode,IntPtrwparam,refCWPSTRUCTcwp);//卸载钩子[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstaticexternboolUnhookWindowsHookEx(IntPtrhookHandle);//获取窗体线程ID[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstatice
7、xternintGetWindowThreadProcessId(IntPtrhwnd,intID);privateHookProchookProc;privateIntPtrhookHandle=IntPtr.Zero;//开始拦截privateboolStartHook(){SetWindowsHookEx(7,hookProc,IntPtr.Zero,GetWindowThreadProcessId(Handle,0));return((int)this.hookHandle!=0);}//停止拦截privateboolSto
8、pHook(){returnUnhookWindowsHookEx(this.hookHandle);}//钩子处理函数,在这里拦截消息并做处理privateintmyhookproc(intcode,IntPtrwparam,ref