Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_HIDE = 0
Const SW_SHOWNORMAL = 1Private Sub Command1_Click()
    Dim X As Long
    Dim StartWindow As Long
    Dim ClassName As String
    ClassName = Space(256)
    ClassName = "Shell_TrayWnd"
    StartWindow = FindWindow(ClassName, vbNullString)
If Command1.Caption = "隐藏" Then
    '隐藏任务栏
    X = ShowWindow(StartWindow, SW_HIDE)
    Command1.Caption = "恢复"
Else
    '显示任务栏
    X = ShowWindow(StartWindow, SW_SHOWNORMAL)
    Command1.Caption = "隐藏"
End If
End Sub

解决方案 »

  1.   

    请各路大侠帮帮我吧,我的问题是:用VB编写程序时如何屏蔽掉"小窗口"键的功能.但不屏蔽其他的WIN98功能键,仅仅使"小窗口"键不起作用.通常,如果这个键起作用的话,在按下他时会弹出WIN98的开始菜单(跟用鼠标点击开始一样).敬请给我一段代码,非常感谢!
      

  2.   

    用这段代码可以屏蔽任何你想要屏蔽的键,我不明白你说的"小窗口"键是什么,示例代码中屏蔽了VK_APPS键,是你说的吗,如果不是,你可以调试一下,看看你说的那个键的virual key code是什么(传给参数wParam的那个),稍作改动就可以了。代码如下:
    因该没有问题,可要记得给分呀,老兄*********************
    'form1.frm
    Private Sub Form_Load()
        OldWindowProc = GetWindowLong(hWnd, GWL_WNDPROC)
        SetWindowLong hWnd, GWL_WNDPROC, AddressOf Fnc_WndMessage
    End Sub
    *********************
    'module1.bas
    ublic Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Const SC_MAXIMIZE = &HF030& 'Max Button
    Public Const WM_SYSCOMMAND = &H112 'Windows Message : SystemPublic Const GWL_WNDPROC = (-4) 'Window Procedure
    'Public Const WM_SYSKEYDOWN = &H104
    Public Const WM_KEYDOWN = &H100
    'Public Const VK_LMENU = &HA4
    'Public Const VK_MENU = &H12
    Public Const VK_APPS = &H5D
    Public OldWindowProc As LongPublic Function Fnc_WndMessage(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        On Error Resume Next
        If Msg = WM_KEYDOWN And wParam = VK_APPS Then
            Fnc_WndMessage = 1
            Exit Function
        End If
        Fnc_WndMessage = CallWindowProc(OldWindowProc, hWnd, Msg, wParam, lParam)
    End Function
      

  3.   

    我的意思是写一段程序,运行它后,不能通过按键盘来调出WIN98的开始菜单。也就是屏蔽掉了“Ctrl”和“Alt”键之间的那个上面印有“小窗口图标”的那个键。
      

  4.   

    是“WIN”键,用个HOOK就好了!
      

  5.   

    是这个WIN键,我想写一段程序为屏蔽它,也就是说当用户按这个WIN键时不会弹出WIN98的开始菜单,请给我一段代码好吗?非常感谢!