如何用程序屏蔽键盘以及鼠标消息?鼠标移动也无效。

如何用程序屏蔽键盘以及鼠标消息?鼠标移动也无效。,第1张

[STAThread]

static

void

Main()

{

//程序开始时候设置一个消息筛选MessageFilter,意思就是只要属于本程序的消息都要经过处理以后再发给本程序

打个比方,程序起来以后再程序的text里输入一个9,但是这个9是系统先获得,然后系统通过消息的方式发给应用程序。这里的essageFilter的意思就是所有系统发给应用程序的消息都要处理一下!

RButtonMessageFilter

filter

=

new

RButtonMessageFilter()

Application.AddMessageFilter(filter)

Application.EnableVisualStyles()

Application.SetCompatibleTextRenderingDefault(false)

Application.Run(new

frmMain())

//移除

Application.RemoveMessageFilter(filter)

}在程序开始的时候添加一个本程序的系统消息的监测。

然后下面的类里处理所有的系统消息!

public

class

RButtonMessageFilter

:

IMessageFilter

{

public

bool

PreFilterMessage(ref

Message

m)

{

const

int

WM_RBUTTONDBLCLK

=

0x206

const

int

WM_RBUTTONDOWN

=

0x204

const

int

WM_RBUTTONUP

=

0x205

switch

(m.Msg)

{

//过滤掉所有与右键有关的消息

case

WM_RBUTTONDBLCLK:

case

WM_RBUTTONDOWN:

case

WM_RBUTTONUP:

{

return

true

}

case

WM_KEYDOWN:

//有键盘按下

{

int

k=

m.WParam.ToInt32()

if

(k

==

57)

{

//屏蔽按键9

9的

asicii吗是57

return

true

}

else

{

//按下的其他建不屏蔽

return

false

}

}

default:

{

return

false

}

}

}

}

设置一个flag d框的时候变化值。在ontouch中加入特殊处理,屏蔽掉那两个键。如 :private boolean show_flag=falseif(d出框时) { show_flag=true} private void onTouch() { if(show_flag==true) { 在此设置 “确定”坐标点击有效 }else{ } }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12203630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存