Sign in to follow this  
Followers 0
Kasteel

List Desktop Icons

14 posts in this topic

#1 ·  Posted (edited)

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Like this:

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

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

Thanks!! :)

Share this post


Link to post
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?

Share this post


Link to post
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.

Share this post


Link to post
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

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

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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?

[center]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.[/center]

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

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

XP x64 Edited by Andreik

When the words fail... music speaks

Share this post


Link to post
Share on other sites

XP x64

Wow - you are amazing!! Thanks for your help - I really appreciate it. :)

Last night I came accross @DesktopCommonDir which gave me a bit more info but your code works 110% on my pc.

Thanks.

Share this post


Link to post
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?

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

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

Share this post


Link to post
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

Share this post


Link to post
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....

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

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

Share this post


Link to post
Share on other sites

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

v3.2.12.1

v3.2.13.12 (beta)


When the words fail... music speaks

Share this post


Link to post
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
Sign in to follow this  
Followers 0