这样,把下面的代码粘贴到一个模块中 Option ExplicitPrivate 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 Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long Private Const LVM_FIRST = &H1000 Private Const LVM_GETITEMCOUNT = LVM_FIRST + 4 Private Const LVM_SETTEXTCOLOR = LVM_FIRST + 36 Private Const LVM_REDRAWITEMS = LVM_FIRST + 21 Private Const LVM_SETTEXTBKCOLOR = LVM_FIRST + 38 Public Const COLOR_DESKTOP = 1Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Private Const SW_HIDE = 0 Private Const SW_SHOW = 5Public Sub SetIconTextAndTransBak(txtBack As Long, bTrans As Boolean) Dim hWindow As Long Dim lItemCount As Long '查找桌面窗口。 hWindow = FindWindow("Progman", "Program Manager") hWindow = FindWindowEx(hWindow, 0, "SHELLDLL_DefView", "") hWindow = FindWindowEx(hWindow, 0, "SysListView32", "") If bTrans Then '透明背景。 SendMessage hWindow, LVM_SETTEXTBKCOLOR, 0, &HFFFFFFFF Else '非透明背景 SendMessage hWindow, LVM_SETTEXTBKCOLOR, 0, txtBack End If '重新绘制所有的图标。 lItemCount = SendMessage(hWindow, LVM_GETITEMCOUNT, 0, 0) SendMessage hWindow, LVM_REDRAWITEMS, 0, lItemCount - 1 '更新窗口。 UpdateWindow hWindow End SubPublic Sub HideDeskTopIcons() Dim hwnd As Long hwnd = FindWindowEx(0&, 0&, "Progman", vbNullString) ShowWindow hwnd, SW_HIDE End SubPublic Sub DisplayDeskTopIcons() Dim hwnd As Long hwnd = FindWindowEx(0&, 0&, "Progman", vbNullString) ShowWindow hwnd, SW_SHOW End Sub
Option ExplicitPrivate 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 Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
Private Const LVM_FIRST = &H1000
Private Const LVM_GETITEMCOUNT = LVM_FIRST + 4
Private Const LVM_SETTEXTCOLOR = LVM_FIRST + 36
Private Const LVM_REDRAWITEMS = LVM_FIRST + 21
Private Const LVM_SETTEXTBKCOLOR = LVM_FIRST + 38
Public Const COLOR_DESKTOP = 1Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5Public Sub SetIconTextAndTransBak(txtBack As Long, bTrans As Boolean)
Dim hWindow As Long
Dim lItemCount As Long
'查找桌面窗口。
hWindow = FindWindow("Progman", "Program Manager")
hWindow = FindWindowEx(hWindow, 0, "SHELLDLL_DefView", "")
hWindow = FindWindowEx(hWindow, 0, "SysListView32", "")
If bTrans Then '透明背景。
SendMessage hWindow, LVM_SETTEXTBKCOLOR, 0, &HFFFFFFFF
Else '非透明背景
SendMessage hWindow, LVM_SETTEXTBKCOLOR, 0, txtBack
End If
'重新绘制所有的图标。
lItemCount = SendMessage(hWindow, LVM_GETITEMCOUNT, 0, 0)
SendMessage hWindow, LVM_REDRAWITEMS, 0, lItemCount - 1
'更新窗口。
UpdateWindow hWindow
End SubPublic Sub HideDeskTopIcons()
Dim hwnd As Long
hwnd = FindWindowEx(0&, 0&, "Progman", vbNullString)
ShowWindow hwnd, SW_HIDE
End SubPublic Sub DisplayDeskTopIcons()
Dim hwnd As Long
hwnd = FindWindowEx(0&, 0&, "Progman", vbNullString)
ShowWindow hwnd, SW_SHOW
End Sub
SetIconTextAndTransBak GetSysColor(COLOR_DESKTOP), True
HideDeskTopIcons()和DisplayDeskTopIcons()用来隐藏和显示桌面图标