http://www.love126.com/soft/down/tuzi2002.rar
序列号:SRMSS10987-RKMJQTMNOAC
超绝兔子,里面有这个功能

解决方案 »

  1.   

    这样,把下面的代码粘贴到一个模块中
    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
      

  2.   

    之后在想要图标背景色透明时用   
     
    SetIconTextAndTransBak GetSysColor(COLOR_DESKTOP), True
      

  3.   

    另外
    HideDeskTopIcons()和DisplayDeskTopIcons()用来隐藏和显示桌面图标
      

  4.   

    但是如果在图标背景设为透明后,再刷新窗口就又会恢复原来的颜色了,有一个变通的方法,就是用一个Timer之后每隔一段时间就把图标背景色设为透明一次……