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

51sky 2003-01-19 06:50:39
急。。。。。。。赠分。。。。
...全文
318 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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"

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧