在VB中如何屏蔽windows所有键盘输入及鼠标响应事件?

51sky 2003-01-19 06:50:39
急。。。。。。。赠分。。。。
...全文
83 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
51sky 2003-01-27
不是要这个、
你这代码只能屏蔽自已窗口上的按键与鼠标事件。

是要windws所有按键事件及鼠标事件
回复
zmcpu 2003-01-22
就好比呼叫MsgBox之後,Form就不接受Mouse Click与KeyPress,但是Form仍可处於Activate的状态,即我们暂停了Mouse Click,KeyPress,等待我们要做事都做完了,再将之回复。不过Mouse仍可自由的移动,若要让Mouse也不能动,就使用JournalPlayBack Hook,而不是使用本方法。

EnableWindow()可达目的,第二个叁数传0进入则不能输入,传1则相反

Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Call EnableWindow(Me.hwnd, 0)
Me.Caption = "现在拒绝KeyPress, MouseClick"
Dim i As Long
For i = 1 To 100
Call Sleep(100)
DoEvents '虽有DoEvents,会发现,按Form的任何地方都没有反应
Next i
Me.Caption = "现在解除了"
Call EnableWindow(Me.hwnd, 1)
End Sub

回复
magalaxy 2003-01-22
索性把form的enabled属性设为false
回复
magalaxy 2003-01-22
我只知道屏蔽键盘输入。

先设form的keypreview为true。

然后在Form_KeyPress事件中写入以下语句。
KeyAscii = 0
回复
龙华 2003-01-22
调用中断,在关键的地方做几次伪装的按键。
回复
51sky 2003-01-22
怎么没有一个人会?我不相信。

随便说说,我就不用问了。
回复
zyl910 2003-01-19
全局Hook
回复
Dickson 2003-01-19
对每个键盘事件及鼠标事件都相应做出响应,只不过引向无用的地方。
回复
Dickson 2003-01-19
msgbox "请拔掉键盘和鼠标",vbOKOnly,"Warning"
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告