Jump to content

Extract System Tray Icons


Kasteel
 Share

Recommended Posts

Hi

I am new to AutoIT. :)

Is it possible to extract a list of all system tray icons to a log file?

Any help would be appreciated.

Thanks

The system tray is just a toolbar control (i.e. "[CLASS:ToolbarWindow32; INSTANCE:1]") on the desktop window. The _GuiCtrlToolBar_* UDF functions work fine on it, including _GUICtrlToolbar_GetButtonBitmap() (see help file).

:)

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

Hi and wellcome to the forum! :)

Is it possible to extract a list of all system tray icons to a log file?

Look at SysTray UDF.

 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Link to comment
Share on other sites

Hi and wellcome to the forum! :)

Look at SysTray UDF.

Hi

Thanks. I think AutoIT is amazing!! I will definitly be using this more.

I have managed to get the info you provided. Thanks :)

Is it possible to output the following into Excel? This is what I have so far:

CODE

#include <SysTray_UDF.au3>

#include <ExcelCOM_UDF.au3>

; Open new book, make it visible

Local $oExcel = _ExcelBookNew(1)

; -- Example 1 --

; Get window titles of all windows that have icon on systray

$iTitles = _SysTrayIconTitles()

; Get process names of all processes that have icon on systray

$iProcesses = _SysTrayIconProcesses()

For $i=0 to Ubound($iTitles)-1

; write the info to consolewindow

ConsoleWrite(@CR & "#" &$i & "Title: " & $iTitles[$i] & ", process: " & $iProcesses[$i])

Next

For $p = 0 to _SystrayIconCount()

MsgBox(0, "Tooltip", _SysTrayIconTooltip($p))

Next

; -- Example 7 - get tooltip text when process name is known --

MsgBox(0, "Tooltip", _SysTrayIconTooltip(_SysTrayIconIndex("Feedreader.exe")))

_ExcelWriteCell($oExcel, - Not sure what to do here...

; Now we save it into the temp directory; overwrite existing file if necessary

_ExcelBookSaveAs($oExcel, @TempDir & "\temp.xls", "xls", 0, 1)

; And finally we close out

_ExcelBookClose($oExcel)

Link to comment
Share on other sites

Hi and wellcome to the forum! :)

Look at SysTray UDF.

I have used the SysTray UDF before, but thought it had not been maintained (my latest version was July 2007).

Looks like taupe has worked on it, though. Cool!

:)

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

Hi

Thanks. I think AutoIT is amazing!! I will definitly be using this more.

I have managed to get the info you provided. Thanks :)

Is it possible to output the following into Excel? This is what I have so far:

CODE
#include <SysTray_UDF.au3>

#include <ExcelCOM_UDF.au3>

; Open new book, make it visible

Local $oExcel = _ExcelBookNew(1)

; -- Example 1 --

; Get window titles of all windows that have icon on systray

$iTitles = _SysTrayIconTitles()

; Get process names of all processes that have icon on systray

$iProcesses = _SysTrayIconProcesses()

For $i=0 to Ubound($iTitles)-1

; write the info to consolewindow

ConsoleWrite(@CR & "#" &$i & "Title: " & $iTitles[$i] & ", process: " & $iProcesses[$i])

Next

For $p = 0 to _SystrayIconCount()

MsgBox(0, "Tooltip", _SysTrayIconTooltip($p))

Next

; -- Example 7 - get tooltip text when process name is known --

MsgBox(0, "Tooltip", _SysTrayIconTooltip(_SysTrayIconIndex("Feedreader.exe")))

_ExcelWriteCell($oExcel, - Not sure what to do here...

; Now we save it into the temp directory; overwrite existing file if necessary

_ExcelBookSaveAs($oExcel, @TempDir & "\temp.xls", "xls", 0, 1)

; And finally we close out

_ExcelBookClose($oExcel)

Write what, the titles, the tooltips, ...?

This might be one way:

#include <SysTray_UDF.au3>
#include <ExcelCOM_UDF.au3>

Local $oExcel = _ExcelBookNew(1)

$iTitles = _SysTrayIconTitles()
$iProcesses = _SysTrayIconProcesses()

For $i = 0 To UBound($iTitles) - 1
; write the info to spreadsheet
    _ExcelWriteCell($oExcel, $iTitles[$i], $i + 1, 1); col 1 = title
    _ExcelWriteCell($oExcel, $iProcesses[$i], $i + 1, 2); col 2 = process
Next

For $p = 0 To _SystrayIconCount()
    _ExcelWriteCell($oExcel, _SysTrayIconTooltip($p), $p + 1, 3); col 3 = tooltip
Next

_ExcelBookSaveAs($oExcel, @TempDir & "\temp.xls", "xls", 0, 1)
_ExcelBookClose($oExcel)

:)

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...