让鼠标键盘失效的VB小程序

来源:百度知道 编辑:UC知道 时间:2024/05/21 18:59:46
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
很多地方看不懂,大虾能不能帮我每句都翻下啊?

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)
这两条是调用DLL(动态连接库),调用后可以当函数一样使用。
如第一个EnableWindow是函数名"user32"是DLL文件的地址,user32是表示在用户程序集中,kernel32是表示在内核中,同样也可以用绝对地址如“C:\XXXX.DLL”,ByVal hwnd As Long,ByVal 是变要传输的形式有ByVal和ByRef两种他们的区别是ByRef在调用函数后可以返回数值而ByVal不可以,Hwnd ,是变量名,Long是数据类型,声明后就可以当做函数EnableWindow(ByVal hwnd As Long, ByVal fEnable As Long)一样调用。不同的DLL有不同的动能具体要看说明。
Private Sub Command1_Click()
Call EnableWindow(Me.hwnd, 0)
'调用EnableWindow,Me.hwnd是窗口的句柄,0是相应的参数,表示对当前窗口执行对应于0的命令
'Me在本窗口使用时相当于本窗口名称,如load Me,Unload Me
Me.Caption = "现在拒绝KeyPress, MouseClick"
'窗口的标题改为"现在拒绝KeyPress, MouseClick"
Dim i As Long '定义I
For i = 1 To 100 ‘For 和Next之间循环100次
Call Sleep(100) '调用Sleep DLL
DoEvents '空动作
Next i
Me.Caption =