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

如何用程序屏蔽键盘以及鼠标消息?鼠标移动也无效。,第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

}

}

}

}

我这里有,只需用到3个DLL命令,可以蒙蔽所有键盘:代码:

.版本

2.程序集

窗口程序集1

.程序集变量

钩子ID,

整数型.子程序

键盘失灵,

,

公开,

蒙蔽所有按键钩子ID

设置系统钩子_

(13,

&sss,

取进程句柄

(0),

0).子程序

sss

.子程序

恢复键盘,

,

公开,

恢复按键释放系统钩子_

(钩子ID)

DLL命令:

.版本

2.DLL命令

设置系统钩子_,

整数型,

"user32.dll",

"SetWindowsHookExA",

,

SetWindowsHookEx

.参数

钩子类型,

整数型,

,

idHook

.参数

回调函数地址,

子程序指针,

,

lpfn

.参数

实例句柄,

整数型,

,

hmod

.参数

线程ID,

整数型,

,

dwThreadId.DLL命令

取进程句柄,

整数型,

,

"GetModuleHandleA"

.参数

M,

整数型.DLL命令

释放系统钩子_,

整数型,

"user32.dll",

"UnhookWindowsHookEx",

,

UnhookWindowsHookEx

.参数

钩子句柄,

整数型,

,

hHook


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存