已有23人关注
如何编写程序使 电脑系统的任务栏和开始按键不可用
发表在VB答疑区 2011-05-31
是否精华
版块置顶:
我想做个考核系统  要求在打开考核界面时  电脑的任务栏和开始按键为不可用,关闭考核界面后恢复可用状态


目的:让考核时无法进入电脑桌面,不能运行其他程序(除在考核系统中调用的程序外)
分享到:
精彩评论 1
vbsoldier
学分:0 LV1
2011-05-31
沙发
Private Declare Function IsWindowEnabled Lib "user32" (ByVal hwnd As Long) As Integer
Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal aBOOL As Integer) As Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private lngTASKBARHWND As Long
Private intISTASKBARENABLED As Long
Private lHwnd As Long '开始按钮句柄


Public Sub DisableTaskBar() '禁用
    Dim EWindow As Long
    lngTASKBARHWND = FindWindow("Shell_traywnd", "")
    If lngTASKBARHWND <> 0 Then
        EWindow = IsWindowEnabled(lngTASKBARHWND)
        If EWindow = 1 Then intISTASKBARENABLED = EnableWindow(lngTASKBARHWND, 0)
    End If
    
    lHwnd = FindWindowEx(lngTASKBARHWND, 0&, "Button", vbNullString)
    Call EnableWindow(lHwnd, 0)

End Sub


Public Sub EnableTaskBar() '启用
    If intISTASKBARENABLED = 0 Then intISTASKBARENABLED = EnableWindow(lngTASKBARHWND, 1)
    EnableWindow lHwnd, 1
End Sub

以上代码在WINXP下测试成功,但是在WIN7下无法禁用“开始”按钮。你不妨换个思路,就是根据任务栏的句柄,使用GetWindowRect 获取其位置以及窗口范围,根据这个范围来限定鼠标活动范围。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照