下面的代码是刷新托盘图标,在list中显示托盘图标名称。请问如何修改,可以修改每一个图标的Title,改成“aa”+ title,然后列在表单里。(不是在表单中加入“aa”,是真正的修改每一个托盘图标的title)
Public Sub listSysButtonTitle(lst1 As ListBox)
lst1.Clear
Dim pIdExplorer As Long, hWnd2 As Long, hExplorer As Long, lpIconText As Long
Dim i As Integer
Dim BtnCount As Integer
Dim IconText As String
hWnd2 = FindWindow("Shell_TrayWnd", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "TrayNotifyWnd", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "SysPager", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "ToolbarWindow32", vbNullString)
GetWindowThreadProcessId hWnd2, pIdExplorer
hExplorer = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pIdExplorer)
lpIconText = VirtualAllocEx(ByVal hExplorer, ByVal 0&, Len(IconText), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE)
BtnCount = SendMessage(hWnd2, TB_BUTTONCOUNT, 0, 0)
Dim lLen As Long, sBuff As String
For i = 0 To BtnCount - 1
IconText = Space$(256)
lLen = SendMessage(hWnd2, TB_GETBUTTONTEXTA, i, ByVal lpIconText)
ReadProcessMemory hExplorer, ByVal lpIconText, ByVal IconText, Len(IconText), 0
If lLen <> -1 Then IconText = Left$(IconText, InStr(1, IconText, Chr$(0)) - 1)
lst1.AddItem IconText
If lst1.List(lst1.ListCount - 1) = lst1.List(lst1.ListCount - 2) Then lst1.RemoveItem (lst1.ListCount - 1)
Next
VirtualFreeEx hExplorer, lpIconText, Len(IconText), MEM_RELEASE
CloseHandle hExplorer
End Sub
Public Sub listSysButtonTitle(lst1 As ListBox)
lst1.Clear
Dim pIdExplorer As Long, hWnd2 As Long, hExplorer As Long, lpIconText As Long
Dim i As Integer
Dim BtnCount As Integer
Dim IconText As String
hWnd2 = FindWindow("Shell_TrayWnd", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "TrayNotifyWnd", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "SysPager", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "ToolbarWindow32", vbNullString)
GetWindowThreadProcessId hWnd2, pIdExplorer
hExplorer = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pIdExplorer)
lpIconText = VirtualAllocEx(ByVal hExplorer, ByVal 0&, Len(IconText), MEM_COMMIT Or MEM_RESERVE, PAGE_READWRITE)
BtnCount = SendMessage(hWnd2, TB_BUTTONCOUNT, 0, 0)
Dim lLen As Long, sBuff As String
For i = 0 To BtnCount - 1
IconText = Space$(256)
lLen = SendMessage(hWnd2, TB_GETBUTTONTEXTA, i, ByVal lpIconText)
ReadProcessMemory hExplorer, ByVal lpIconText, ByVal IconText, Len(IconText), 0
If lLen <> -1 Then IconText = Left$(IconText, InStr(1, IconText, Chr$(0)) - 1)
lst1.AddItem IconText
If lst1.List(lst1.ListCount - 1) = lst1.List(lst1.ListCount - 2) Then lst1.RemoveItem (lst1.ListCount - 1)
Next
VirtualFreeEx hExplorer, lpIconText, Len(IconText), MEM_RELEASE
CloseHandle hExplorer
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货