'This code is designed to give you the text associated to each of the task tray icons.
'Created by Stevan Mitrovic.
'First you will need to add a reference to the project. So click on "Project"
'in the menu and select "References..." from the drop dowm list. Once the
'references dialog box pops up, click on the "Browse.." button. A "Add Reference"
'dialog box will pop up. Goto your system32 folder and find "oleacc.dll", select
'it and then press the open button. You should now see a checked off "Accessibility"
'in the list. Click on the "OK" button and your ready to go.
'The next things you'll need to add, are to your form. You will need a
'"Command button" (Command1), a "Label" (Label1), a "textbox" (Text1) and
'a "Listbox" (List1). Now cut and paste the following code into your Form1
'and run it.
'Region Toolbar button styles
Private Const TBSTYLE_BUTTON = &H0
Private Const TBSTYLE_SEP = &H1
Private Const TBSTYLE_CHECK = &H2
Private Const TBSTYLE_GROUP = &H4
Private Const TBSTYLE_CHECKGROUP = (TBSTYLE_GROUP Or TBSTYLE_CHECK)
Private Const TBSTYLE_DROPDOWN = &H8
Private Const TBSTYLE_AUTOSIZE = &H10
Private Const TBSTYLE_NOPREFIX = &H20
Private Const TBSTYLE_TOOLTIPS = &H100
Private Const TBSTYLE_WRAPABLE = &H200
Private Const TBSTYLE_ALTDRAG = &H400
Private Const TBSTYLE_FLAT = &H800
Private Const TBSTYLE_LIST = &H1000
Private Const TBSTYLE_CUSTOMERASE = &H2000
Private Const TBSTYLE_REGISTERDROP = &H4000
Private Const TBSTYLE_TRANSPARENT = &H8000&
Private Const TBSTYLE_DRAWDDARROWS = &H1
Private Const WM_USER = &H400&
'Region ToolBar Messages
Private Const TB_ENABLEBUTTON = (WM_USER + 1)
Private Const TB_CHECKBUTTON = (WM_USER + 2)
Private Const TB_PRESSBUTTON = (WM_USER + 3)
Private Const TB_HIDEBUTTON = (WM_USER + 4)
Private Const TB_INDETERMINATE = (WM_USER + 5)
Private Const TB_MARKBUTTON = (WM_USER + 6)
Private Const TB_ISBUTTONENABLED = (WM_USER + 9)
Private Const TB_ISBUTTONCHECKED = (WM_USER + 10)
Private Const TB_ISBUTTONPRESSED = (WM_USER + 11)
Private Const TB_ISBUTTONHIDDEN = (WM_USER + 12)
Private Const TB_ISBUTTONINDETERMINATE = (WM_USER + 13)
Private Const TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14)
Private Const TB_SETSTATE = (WM_USER + 17)
Private Const TB_GETSTATE = (WM_USER + 18)
Private Const TB_ADDBITMAP = (WM_USER + 19)
Private Const TB_ADDBUTTONSA = (WM_USER + 20)
Private Const TB_INSERTBUTTONA = (WM_USER + 21)
Private Const TB_ADDBUTTONS = (WM_USER + 20)
Private Const TB_INSERTBUTTON = (WM_USER + 21)
Private Const TB_DELETEBUTTON = (WM_USER + 22)
Private Const TB_GETBUTTON = (WM_USER + 23)
Private Const TB_BUTTONCOUNT = (WM_USER + 24)
Private Const TB_COMMANDTOINDEX = (WM_USER + 25)
Private Const TB_SAVERESTOREA = (WM_USER + 26)
Private Const TB_CUSTOMIZE = (WM_USER + 27)
Private Const TB_ADDSTRINGA = (WM_USER + 28)
Private Const TB_GETITEMRECT = (WM_USER + 29)
Private Const TB_BUTTONSTRUCTSIZE = (WM_USER + 30)
Private Const TB_SETBUTTONSIZE = (WM_USER + 31)
Private Const TB_SETBITMAPSIZE = (WM_USER + 32)
Private Const TB_AUTOSIZE = (WM_USER + 33)
Private Const TB_GETTOOLTIPS = (WM_USER + 35)
Private Const TB_SETTOOLTIPS = (WM_USER + 36)
Private Const TB_SETPARENT = (WM_USER + 37)
Private Const TB_SETROWS = (WM_USER + 39)
Private Const TB_GETROWS = (WM_USER + 40)
Private Const TB_GETBITMAPFLAGS = (WM_USER + 41)
Private Const TB_SETCMDID = (WM_USER + 42)
Private Const TB_CHANGEBITMAP = (WM_USER + 43)
Private Const TB_GETBITMAP = (WM_USER + 44)
Private Const TB_GETBUTTONTEXTA = (WM_USER + 45)
Private Const TB_REPLACEBITMAP = (WM_USER + 46)
Private Const TB_SETINDENT = (WM_USER + 47)
Private Const TB_SETIMAGELIST = (WM_USER + 48)
Private Const TB_GETIMAGELIST = (WM_USER + 49)
Private Const TB_LOADIMAGES = (WM_USER + 50)
Private Const TB_GETRECT = (WM_USER + 51)
Private Const TB_SETHOTIMAGELIST = (WM_USER + 52)
Private Const TB_GETHOTIMAGELIST = (WM_USER + 53)
Private Const TB_SETDISABLEDIMAGELIST = (WM_USER + 54)
Private Const TB_GETDISABLEDIMAGELIST = (WM_USER + 55)
Private Const TB_SETSTYLE = (WM_USER + 56)
Private Const TB_GETSTYLE = (WM_USER + 57)
Private Const TB_GETBUTTONSIZE = (WM_USER + 58)
Private Const TB_SETBUTTONWIDTH = (WM_USER + 59)
Private Const TB_SETMAXTEXTROWS = (WM_USER + 60)
Private Const TB_GETTEXTROWS = (WM_USER + 61)
Private Const TB_GETOBJECT = (WM_USER + 62)
Private Const TB_GETBUTTONINFOW = (WM_USER + 63)
Private Const TB_SETBUTTONINFOW = (WM_USER + 64)
Private Const TB_GETBUTTONINFOA = (WM_USER + 65)
Private Const TB_SETBUTTONINFOA = (WM_USER + 66)
Private Const TB_INSERTBUTTONW = (WM_USER + 67)
Private Const TB_ADDBUTTONSW = (WM_USER + 68)
Private Const TB_HITTEST = (WM_USER + 69)
Private Const TB_SETDRAWTEXTFLAGS = (WM_USER + 70)
Private Const TB_GETHOTITEM = (WM_USER + 71)
Private Const TB_SETHOTITEM = (WM_USER + 72)
Private Const TB_SETANCHORHIGHLIGHT = (WM_USER + 73)
Private Const TB_GETANCHORHIGHLIGHT = (WM_USER + 74)
Private Const TB_GETBUTTONTEXTW = (WM_USER + 75)
Private Const TB_SAVERESTOREW = (WM_USER + 76)
Private Const TB_ADDSTRINGW = (WM_USER + 77)
Private Const TB_MAPACCELERATORA = (WM_USER + 78)
Private Const TB_GETINSERTMARK = (WM_USER + 79)
Private Const TB_SETINSERTMARK = (WM_USER + 80)
Private Const TB_INSERTMARKHITTEST = (WM_USER + 81)
Private Const TB_MOVEBUTTON = (WM_USER + 82)
Private Const TB_GETMAXSIZE = (WM_USER + 83)
Private Const TB_SETEXTENDEDSTYLE = (WM_USER + 84)
Private Const TB_GETEXTENDEDSTYLE = (WM_USER + 85)
Private Const TB_GETPADDING = (WM_USER + 86)
Private Const TB_SETPADDING = (WM_USER + 87)
Private Const TB_SETINSERTMARKCOLOR = (WM_USER + 88)
Private Const TB_GETINSERTMARKCOLOR = (WM_USER + 89)
Private Const TB_GETSTRINGW = (WM_USER + 91)
Private Const TB_GETSTRINGA = (WM_USER + 92)
' Reserved IDs for system objects
Private Const OBJID_WINDOW = &H0&
Private Const OBJID_SYSMENU = &HFFFFFFFF
Private Const OBJID_TITLEBAR = &HFFFFFFFE
Private Const OBJID_MENU = &HFFFFFFFD
Private Const OBJID_CLIENT = &HFFFFFFFC
Private Const OBJID_VSCROLL = &HFFFFFFFB
Private Const OBJID_HSCROLL = &HFFFFFFFA
Private Const OBJID_SIZEGRIP = &HFFFFFFF9
Private Const OBJID_CARET = &HFFFFFFF8
Private Const OBJID_CURSOR = &HFFFFFFF7
Private Const OBJID_ALERT = &HFFFFFFF6
Private Const OBJID_SOUND = &HFFFFFFF5
Private Const OBJID_QUERYCLASSNAMEIDX = &HFFFFFFF4
Private Const OBJID_NATIVEOM = &HFFFFFFF0
Private Type TBBUTTON
iBitmap As Long
idCommand As Long
fsState As Byte
fsStyle As Byte
bReserved1 As Byte
bReserved2 As Byte
dwData As Long
iString As Long
End Type
Private Type UUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
'WINAPI declarations
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private 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
'Active Accessibility declarations
Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal hwnd As Long, ByVal dwId As Long, riid As UUID, ppvObject As Object) As Long
Private Declare Function AccessibleChildren Lib "oleacc" (ByVal paccContainer As IAccessible, ByVal iChildStart As Long, ByVal cChildren As Long, rgvarChildren As Variant, pcObtained As Long) As Long
Private Declare Function GetRoleText Lib "oleacc" Alias "GetRoleTextA" (ByVal dwRole As Long, ByVal szRole As String, ByVal cchRoleMax As Integer) As Long
Private Declare Function GetStateText Lib "oleacc" Alias "GetStateTextA" (ByVal dwStateBit As Long, ByVal szState As String, ByVal cchStateBitMax As Integer) As Long
Private Sub Command1_Click()
On Error Resume Next
Dim iTrayButtonsCount As Long
Dim hWndTray As Long
Dim hWndTray2 As Long
Dim hWndToolBar As Long
Dim iBtnIndex As Integer
Dim iTextLen As Integer
Dim lRet As Long
Dim Av() As Variant
Dim UID1 As UUID
Dim Ob As IAccessible
Dim lStart As Long
Dim LNum As Long
With UID1
.Data1 = &H618736E0
.Data2 = &H3C3D
.Data3 = &H11CF
.Data4(0) = &H81
.Data4(1) = &HC
.Data4(2) = &H0
.Data4(3) = &HAA
.Data4(4) = &H0
.Data4(5) = &H38
.Data4(6) = &H9B
.Data4(7) = &H71
End With
List1.Clear
hWndTray = FindWindow("Shell_TrayWnd", vbNullString)
hWndTray2 = FindWindowEx(hWndTray, 0, "TrayNotifyWnd", vbNullString)
hWndToolBar = FindWindowEx(hWndTray2, 0, "ToolbarWindow32", vbNullString)
If hWndToolBar Then
lRet = AccessibleObjectFromWindow(ByVal hWndToolBar, OBJID_CLIENT, UID1, Ob)
iTrayButtonsCount = SendMessage(hWndToolBar, TB_BUTTONCOUNT, 0, 0)
Text1.Text = Str(iTrayButtonsCount)
LNum = Ob.accChildCount
ReDim Av(0 To LNum) As Variant
lRet = AccessibleChildren(Ob, lStart, LNum, Av(0), LNumRet)
For iBtnIndex = 0 To iTrayButtonsCount
'Getting the text length.
iTextLen = SendMessage(hWndToolBar, TB_GETBUTTONTEXTW, iBtnIndex, 0)
If iTextLen >= 0 Then List1.AddItem Str(iBtnIndex) & " - " & Str(iTextLen) & vbTab & " - " & Ob.accName(Av(iBtnIndex))
Next iBtnIndex
Set Ob = Nothing
End If
End Sub
原始连接: http://www.vbcode.com/Asp/showsn.asp?theID=11610
分享到:
相关推荐
visual c++ vc遍历任务栏上的窗口
任务栏托盘图标 遍历 托盘 图标 将托盘图标放到自己程序里 不错的源代码
联想工程师专用小工具 解决任务栏网络图标丢失V4.15.1联想工程师专用小工具 解决任务栏网络图标丢失V4.15.1联想工程师专用小工具 解决任务栏网络图标丢失V4.15.1联想工程师专用小工具 解决任务栏网络图标丢失V4.15.1...
用于锁定/解锁任务栏图标。 适用于win7\win10,其它系统未测试,使用方法:脚本+程序完整路径。 如果任务栏没有,则锁定到任务栏,如果任务栏已存在则解锁。 示例: 任务栏图标.VBS C:\Program Files\internet ...
易语言任务栏程序图标的简单隐藏和显示源码,任务栏程序图标的简单隐藏和显示
易语言隐藏任务栏程序图标源码。@易语言入门教程。
TeamViewer 7 已经验证, 可以隐藏任务栏图标,托盘图标,连接后右边操作框
隐藏任务栏图标隐藏任务栏图标隐藏任务栏图标
.NET(C#): 任务栏窗口和状态图标的闪动。 。。。。。。。。。。。
任务栏程序图标的简单隐藏和显示隐藏和显示任务栏程序窗口图标。隐藏右下角的QQ之类的图标使用同样的方法也能生效 只要ToolbarWindow32 句柄找对就可以了。注意: 隐藏右下角的QQ之类的图标使用同样的方法也能生效 ...
易语言隐藏任务栏或托盘图标模块源码,隐藏任务栏或托盘图标模块,隐藏任务栏图标,隐藏托盘图标,取句柄,GetButtonInfo,FindWindow,FindWindowEx,SendMessage,GetWindowThreadProcessId,OpenProcess,DuplicateHandle,...
有时候我们为了操作方便,需要对任务栏窗口和系统托盘图标进行位置上的调整,但是Windows并没有提供这个功能.使用任务栏图标管理器能够让你通过简单的拖拽来重排任务栏窗口和系统托盘图标,正如你在浏览器中为了便于...
RunCat_for_windows:Windows任务栏上的可爱奔跑猫动画 exe文件, windows系统下 双击执行 既可 免安装
java swt 实现的隐藏和显示任务栏图标和托盘图标的(导入swt包即可)
易语言任务栏程序图标的简单隐藏和显示.rar 易语言任务栏程序图标的简单隐藏和显示.rar 易语言任务栏程序图标的简单隐藏和显示.rar 易语言任务栏程序图标的简单隐藏和显示.rar 易语言任务栏程序图标的简单隐藏和...
我们在使用win7(或vista)操作系统的时候,体验了右下角的任务栏图标的显示和隐藏的功能。但是当我们安装的软件在系统中卸载后,发现这个任务栏的图标依然存在。或多或少的影响了我们的系统的性能和视觉上造成了...
易语言隐藏外部程序任务栏图标和系统托盘图标模块和源码,FindWindow,FindWindowEx,SendMessage,GetWindowThreadProcessId,OpenProcess,DuplicateHandle,GetCurrentProcess,CloseHandle,VirtualAllocEx,...
易语言隐藏任务栏程序图标源码,隐藏任务栏程序图标,操作任务栏程序图标
access 让任务栏图标动起来 access 让任务栏图标动起来 access 让任务栏图标动起来 access 让任务栏图标动起来
c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 c# ,任务栏,图标,闪烁,效果 vc# ,任务栏,图标,...