Jump to content

List Desktop Icons


Kasteel
 Share

Recommended Posts

Hi

Is it possible to list the icons on a desktop using AutoIT? (And possibly when they were created?)

I know it can be done using vb script:

Const DESKTOP = &H10&

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.Namespace(DESKTOP)

Set objFolderItem = objFolder.Self

Wscript.Echo objFolderItem.Path

Set colItems = objFolder.Items

For Each objItem in colItems

Wscript.Echo objItem.Name

Next

Any help would be appreciated. :)

Edited by Kasteel
Link to comment
Share on other sites

Hi

Is it possible to list the icons on a desktop using AutoIT? (And possibly when they were created?)

I know it can be done using vb script:

Const DESKTOP = &H10&

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.Namespace(DESKTOP)

Set objFolderItem = objFolder.Self

Wscript.Echo objFolderItem.Path

Set colItems = objFolder.Items

For Each objItem in colItems

Wscript.Echo objItem.Name

Next

Any help would be appreciated. :)

Like this:

#include <Array.au3>
#include <File.au3>

$DESK_FILES = _FileListToArray(@DesktopDir)
_ArrayDisplay($DESK_FILES)

When the words fail... music speaks.

Link to comment
Share on other sites

Like this:

#include <Array.au3>
#include <File.au3>

$DESK_FILES = _FileListToArray(@DesktopDir)
_ArrayDisplay($DESK_FILES)
Hi

The above code does not list the "My Computer", "My Documents" icons. It only lists user created icons on the desktop. Any idea how I can list everything?

Link to comment
Share on other sites

Hi

The above code does not list the "My Computer", "My Documents" icons. It only lists user created icons on the desktop. Any idea how I can list everything?

A wild guess: They're "special" icons. Their visibility should be checked from the registry.

Link to comment
Share on other sites

Hi

The above code does not list the "My Computer", "My Documents" icons. It only lists user created icons on the desktop. Any idea how I can list everything?

But in your VBscript example it's also not listing these items :)

Try this:

#include <GuiListView.au3>

$hDesktop_LV = ControlGetHandle("[CLASS:Progman]", "", "SysListView321")

$iCountItems = _GUICtrlListView_GetItemCount($hDesktop_LV)
$sDesktopItems_List = ""

For $i = 0 To $iCountItems-1
    $sCurrent_Item = _GUICtrlListView_GetItemText($hDesktop_LV, $i)
    $sDesktopItems_List &= $sCurrent_Item & @CRLF
Next

ConsoleWrite($sDesktopItems_List & @CRLF)

And your example from vbs:

$objShell = ObjCreate("Shell.Application")
$objFolder = $objShell.Namespace(0x10)
$objFolderItem = $objFolder.Self

MsgBox(0, "", $objFolderItem.Path)

$colItems = $objFolder.Items

For $objItem In $colItems
    ConsoleWrite($objItem.Name & @CRLF)
Next

 

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

But in your VBscript example it's also not listing these items :)

Try this:

#include <GuiListView.au3>

$hDesktop_LV = ControlGetHandle("[CLASS:Progman]", "", "SysListView321")

$iCountItems = _GUICtrlListView_GetItemCount($hDesktop_LV)
$sDesktopItems_List = ""

For $i = 0 To $iCountItems-1
    $sCurrent_Item = _GUICtrlListView_GetItemText($hDesktop_LV, $i)
    $sDesktopItems_List &= $sCurrent_Item & @CRLF
Next

ConsoleWrite($sDesktopItems_List & @CRLF)

And your example from vbs:

$objShell = ObjCreate("Shell.Application")
$objFolder = $objShell.Namespace(0x10)
$objFolderItem = $objFolder.Self

MsgBox(0, "", $objFolderItem.Path)

$colItems = $objFolder.Items

For $objItem In $colItems
    ConsoleWrite($objItem.Name & @CRLF)
Next
First code not return any result, the VBS code is like _FileListToArray() without My Computer and other special folders.

When the words fail... music speaks.

Link to comment
Share on other sites

  • Moderators

First code not return any result, the VBS code is like _FileListToArray() without My Computer and other special folders.

1st one works on XP, what OS are you using?

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
Share on other sites

XP x64

Can you check if the ControlGetHandle returns a handle? If not, can you also check with AutoIt Info Tool the class of the desktop window and the id of the ListView control?

 

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

Can you check if the ControlGetHandle returns a handle? If not, can you also check with AutoIt Info Tool the class of the desktop window and the id of the ListView control?

ControlGetHandle() and _GUICtrlListView_GetItemCount() seems to work fine.

The problem seems to be the _GUICtrlListView_GetItemText. Does not return anything.

When the words fail... music speaks.

Link to comment
Share on other sites

ControlGetHandle() and _GUICtrlListView_GetItemCount() seems to work fine.

The problem seems to be the _GUICtrlListView_GetItemText. Does not return anything.

Hm, that's strange. What AutoIt version you are using? Because i don't think that x64 is affecting on the function somehow....

 

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

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...