Hook技术屏蔽鼠标右键的菜单(如realplayer的)

原创 2004年09月16日 00:57:00
我们以做一个realplayer控件的播放器为例子

首先在form界面放一个realG2控件。然后设定CtlControls的属性值为imagewindow,all
这样我们就可以在form界面上看到一个realplay的播放器界面了。

然后我们再在form界面上加一个ContextMenu的菜单。自己随便加几个菜单项。


(我这里面的contextMenu的名字为contextMenu2。你们根据自己的情况
可以改变名字。但底下的名字也要相应改变)

现在我们在项目中添加一个模板

在里面加入以下代码:
Module Module1

   Public frm1 As New form1()

   Declare Function GetCurrentThreadId Lib "kernel32" Alias "GetCurrentThreadId" () As Integer

   Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As HOOKPROC, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer

   Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Integer) As Integer

   Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Integer, ByVal ncode As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

   Public Delegate Function HOOKPROC(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

   Public hnexthookproc As Integer


   Public Enum HookType

       WH_MOUSE = 7

   End Enum


   Public Sub UnHook()

       If hnexthookproc <> 0 Then

           UnhookWindowsHookEx(hnexthookproc)

           hnexthookproc = 0


       End If

   End Sub

   Public Function SetHook()

       If hnexthookproc <> 0 Then

           Exit Function

       End If

       hnexthookproc = SetWindowsHookEx(HookType.WH_MOUSE, AddressOf MyMouseProc, 0, GetCurrentThreadId())


   End Function


   Public Function MyMouseProc(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

       MyMouseProc = 0
       Dim p As New Point()
       If nCode < 0 Then

           MyMouseProc = CallNextHookEx(hnexthookproc, nCode, wParam, lParam)

           Exit Function

       End If

       If wParam = 516 Then '判断鼠标右击

           MyMouseProc = 1
           p = frm1.PointToClient(frm1.MousePosition)
           frm1.ContextMenu2.Show(frm1, p)‘菜单显示
       End If



   End Function

   Sub main()
       Application.Run(frm1)
   End Sub

End Module


然后我们要在项目的属性中把-启动对象改为Moudel1
如图:


最后我们在form的load和closed事件中加入如下代码:

   Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Call SetHook()
   End Sub

 Private Sub form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
       Call UnHook()


   End Sub

如何屏蔽ctrl + v 粘贴事件,鼠标右键粘贴事件

通常在自己的APP里的密码框,验证码框需要屏蔽复制,粘贴,怎么办呢? 有三...
  • tiandyoin
  • tiandyoin
  • 2014年09月22日 12:11
  • 2114

vue右键菜单学习

使用vue-contextmenu组件创建右键菜单。
  • wsxwang
  • wsxwang
  • 2017年10月21日 15:14
  • 1220

用js,jQuery屏蔽鼠标右与jquery 鼠标右键事件、左键单击事件判定

http://blog.qintag.com/right-jquery-event-left-click-the-event-to-determine.html  jQuery屏蔽鼠标右键: $(do...
  • lifeifei2010
  • lifeifei2010
  • 2013年01月19日 10:45
  • 2199

ApplicationEvents1Message屏蔽鼠标右键

OnMessage事件只处理消息队列中的消息,SendMessage()发送的消息不会被截获。 任何窗体接收到一个windows消息,都会触发一次此事件   函数原型:   typedef vo...
  • ksrsoft
  • ksrsoft
  • 2013年02月26日 09:21
  • 1255

js禁止页面复制功能禁用页面右键菜单示例代码

禁用网页右键菜单,但是仍然可以使用快捷键复制。 js代码禁用复制功能:  document.body.onselectstart=document.body.oncontextmenu=fu...
  • baidu_39567828
  • baidu_39567828
  • 2018年01月16日 15:32
  • 60

钩子编程(HOOK) 屏蔽所有按键、鼠标及系统功能键 (4)

[钩子编程(HOOK) 屏蔽所有按键鼠标及系统功能键]上篇文章《钩子编程(HOOK) 安装系统全局钩子》已经详细的讲解了全局钩子的安装,下面我们增强一下钩子的功能,实现屏蔽所有按键鼠标与系统功能键。要...
  • u012339743
  • u012339743
  • 2014年05月15日 13:32
  • 4453

iframe里的页面禁止右键事件

在子页面中加入: document.oncontextmenu = function(){ return false } 即可
  • junmoxie
  • junmoxie
  • 2014年06月09日 15:34
  • 1425

Delphi 禁用TEdit右键菜单及复制粘贴

Delphi 禁用TEdit右键菜单及复制粘贴简的单方法如下: 1)  设置TEdit的ReadOnly 属性为True       Edit1.ReadOnly := True; 2)  在T...
  • wozengcong
  • wozengcong
  • 2015年05月20日 20:09
  • 1032

web页面屏蔽鼠标右键

转载地址:http://blog.sina.com.cn/s/blog_4f925fc30100ln1o.html jQuery屏蔽鼠标右键: $(document).ready(functi...
  • liwb1987
  • liwb1987
  • 2015年10月16日 10:45
  • 1187

js禁用鼠标右键菜单(加强版)

之前我们也介绍过一些用javascript禁用右键的方法,比如:javascript禁止网页右键的方法与javascript禁止页面操作(右键、复制、F5刷新)等代码 ,今天介绍的这个可以算是这些版本...
  • u011153667
  • u011153667
  • 2016年07月01日 15:46
  • 1848
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hook技术屏蔽鼠标右键的菜单(如realplayer的)
举报原因:
原因补充:

(最多只允许输入30个字)