以下代码在模块中
Option Explicit
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const HWND_DESKTOP = 0
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_SHOWWINDOW = &H40
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Public Const GW_CHILD = 5
Public Const GW_HWNDNEXT = 2
以下代码在窗体中
Option Explicit
Private Sub Command1_Click()
Dim hTaskbar As Long, hStartbutton As Long
Dim sClass As String * 250
hTaskbar = FindWindow("Shell_traywnd", vbNullString) 'Shell_traywnd为任务栏的类名
hStartbutton = GetWindow(hTaskbar, GW_CHILD)
Do
GetClassName hStartbutton, sClass, 250
If LCase(Left(sClass, 6)) = "button" Then Exit Do
hStartbutton = GetWindow(hStartbutton, GW_HWNDNEXT)
Loop
SetWindowPos hStartbutton, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
End Sub
Private Sub Command2_Click()
Dim hTaskbar As Long, hStartbutton As Long
Dim sClass As String * 250
hTaskbar = FindWindow("Shell_traywnd", vbNullString)
hStartbutton = GetWindow(hTaskbar, GW_CHILD)
Do
GetClassName hStartbutton, sClass, 250
If LCase(Left(sClass, 6)) = "button" Then Exit Do
hStartbutton = GetWindow(hStartbutton, GW_HWNDNEXT)
Loop
SetWindowPos hStartbutton, 0, 0, 0, 0, 0, SWP_SHOWWINDOW
End Sub