Jump to content

ICU - Icon Configuration Utility [Updated 2018-Sep-16]


KaFu
 Share

Recommended Posts

ICU - Icon Configuration Utility

130111_ICU_1.jpg

Current Version: v6 (2018-Sep-16)

Restore your desktop when the icons get "rearranged".

Melba23 and I found we were working on very similar ideas to restore the Desktop icons to their normal place if they became "rearranged" (

). Vista seems to like this doing on occasion just for fun - but we all know some apps and games which change the display resolution or move icons around. This annoys "tidy" people who like their desktops arranged "just so" - I am particularly thinking of this desktop when I say that! :D

We combined efforts and here is the result of our labors.

Operation is easy - press "Save" to store a particular configuration and "Restore" to reset the icons to the saved positions in the selected configuration file. "Delete" allows you to remove unwanted configuration files from the list. There is a command line option so that the restoration can be run via HotKeys if required (that is why the script warns that it should be compiled for full functionality). You can decide what to do with any icons that have been added since you last saved the configuration file - the default is to put them in the top-left corner, but you can also banish them way off-screen or, more sensibly, specify a location for them.

A new feature as of ICU v3.4 is the optional Desktop Contextmenu Integration (DCI) for Win7 (Win7 only because Microsoft implemented an easy way to do this through the registry as of this release).

Version 3.3 should fix the empty save file bug

Version 3.4 Win7: Admin rights no longer needed for DCI

Version 5.0 Win8 compatibility for DCI

The source and executable can be downloaded from my site: http://www.funk.eu

Kudos to Ascend4nt, Melba23, Prog@ndy, & Valik for parts of the code.

Please let me know if you found some piece of code in the source for which I forgot to mention a credit.

Enjoy, let me know what you think of ICU and with Best Regards

Edited by KaFu
Link to comment
Share on other sites

  • 3 weeks later...

Nice!

I used WinTidy for restoring desktop icons all the time but it doesn't work on Win7.

So I will try this your utility definitely.

This week it was mentioned also on Czech main technical site which is one of the most accessed sites here:

http://www.zive.cz/

http://www.zive.cz/clanky/svet-na-plose-...ou-aplikacich/sc-3-a-159626/de

You can look at it in English trough online Google translator :-)

http://translate.google.com/translate?sl...plikacich%2Fsc-3-a-159626%2Fde

:D

EDIT: It's mentioned there no matter of missing Czech translation so it's great success!

Edited by Zedna
Link to comment
Share on other sites

Once again, thanks for sharing! :D

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

Link to comment
Share on other sites

  • 1 month later...
Link to comment
Share on other sites

  • 2 months later...

Hello,

thank you for this great tool.

May I raise a RFC?

I downloaded your source and added a msgbox autolose option.

In the ICU.INI I added

[Settings]
Desktop_Contextmenu_Integration=0
MsgBox_AutoClose=2

The MsgBox_AutoClose is added to all MsgBox calls.

example:

MsgBox(16 + 262144, $sGUITitle & " - Error _Save_Locations_Desktop()", "Desktop Window Handle not found.",$MsgBox_AutoClose)

Does this make sense for you?I use the ICU in an unattended way. (maybe no msgbox at all also an option when started from commandline?)

Anyway, I spread already your tool and the word. And all of the users are happy, to get a weapon against the Funny-MS-occasional-time-desktop-Icon-rearrangements now.

Link to comment
Share on other sites

  • 9 months later...

Well, after exactly one year here's the latest update on ICU...

2013-Jan-11, Changelog 3.5 > 4.0

  • Added new method for “Unkown Icon” handling: Top-Left|Bottom-Right|Custom Position|Ask per Icon|Off-Screen
  • "Custom Position" and "Ask per Icon" now work by selecting new position with mouse
  • Added new command line parameters (see “About” in program for details): restore, autosave, save, savereplace
  • Replaced several MsgBoxes with Tray Notifications
  • Added “Duplicate” config function
  • Enhanced config list right-click contextmenu with some functions
Source and Executable are available at

http://www.funk.eu

Enjoy :) and Best Regards

Edited by KaFu
Link to comment
Share on other sites

  • 4 months later...

2013-May-24, Changelog 4.0 > 5.0

  • Improved Win8 compatibility (esp. Desktop Contextmenu Integration / DCI)
  • Added "minimized" command line switch (to start GUI minimized to tray / autostart with windows), see program "About" for details on command line switches
  • Added Tray Menu (esp. useful for Win XP) > see "minimized" switch. Also pressing ESC or minimizing the program will send ICU to the system tray now
  • Added "toggle" command line switch
  • Added "restore %resolution%" and "savereplace %resolution%" command line switches

     

Source and Executable are available at
http://www.funk.eu

Enjoy :) and Best Regards

Edited by KaFu
Link to comment
Share on other sites

Link to comment
Share on other sites

  • 1 year later...

Hi!

I've made a small improvement to this tool, but I don't know the proper etiquette for incorporating it. What I did was to add an element to the .ini file to store the most recently used configuration name. Then the next time the user wants to save the current icon configuration, that last used name is pre-set in the name field, allowing that name to be reused without having to look up that name manually. I use this all the time because I see no need to create a new name simply because I've moved an icon or two.

I've attached the revised source file only...

 

Thanks for the great tool!

ICU - Icon Configuration Utility v6.1.0.0.zip

Link to comment
Share on other sites

Hi Mbee, good addition 👍, added to the Beta. Next release will also contain a context menu entry to directly "Update" existing save file, as well as dealing with negative offsets in multi-monitor environments.

Link to comment
Share on other sites

  • 2 years later...

KaFu

Hello

Warning!

In next verison, in file ICU - Icon Configuration Utility v6.au3 please add fix

1) Stroke 242-244

Before

        GUICtrlCreateListViewItem("|No Layouts saved", $c_Listview_Configs)
        GUICtrlSetState($c_Button_Restore, $GUI_DISABLE)
        GUICtrlSetState($c_Button_Delete, $GUI_DISABLE)

After

        GUICtrlCreateListViewItem("|No Layouts saved", $c_Listview_Configs)
        GUICtrlSetState($c_Button_Restore, $GUI_DISABLE)
        GUICtrlSetState($c_Button_Delete, $GUI_DISABLE)
        GUICtrlSetState($c_Button_Duplicate, $GUI_DISABLE)

2) Stroke 837-841

Before

    ; Reset GUI
    GUICtrlSetData($c_Label_State, "Ready")
    GUICtrlSetBkColor($c_Label_State, $i_Color_LimeGreen)
    GUICtrlSetState($c_Button_Restore, $GUI_ENABLE)
    GUICtrlSetState($c_Button_Delete, $GUI_ENABLE)

After

    GUICtrlSetData($c_Label_State, "Ready")
    GUICtrlSetBkColor($c_Label_State, $i_Color_LimeGreen)
    GUICtrlSetState($c_Button_Restore, $GUI_ENABLE)
    GUICtrlSetState($c_Button_Delete, $GUI_ENABLE)
    GUICtrlSetState($c_Button_Duplicate, $GUI_ENABLE)

3) Stroke 1119-1121

Before

        GUICtrlCreateListViewItem("|No Layouts saved", $c_Listview_Configs)
        GUICtrlSetState($c_Button_Restore, $GUI_DISABLE)
        GUICtrlSetState($c_Button_Delete, $GUI_DISABLE)

After

        GUICtrlCreateListViewItem("|No Layouts saved", $c_Listview_Configs)
        GUICtrlSetState($c_Button_Restore, $GUI_DISABLE)
        GUICtrlSetState($c_Button_Delete, $GUI_DISABLE)
        GUICtrlSetState($c_Button_Duplicate, $GUI_DISABLE)

Without this fix, button Duplicate not correctly work (enable or disable button when not config "icf" files)

Thank You!

 

Edited by SharkyEXE
Link to comment
Share on other sites

  • 5 weeks later...

Hi KaFu!

I first want to thank you for your amazing utility!  I ran across it trying to figure out how to do the same thing myself... so you saved me a lot of work!

Now for my next point.... I attempted to automate your program to autosave at start up. In my testing I ran across a bit of a bug I thought I should mention.

So cmdline autosave works great (thanks for the feature by the way). However when I had multiple autosaves and tried to restore with cmdline restore 1 or 2 etc. I realized it wasn't working. But would only restore the first autosave.  So.... I'm not a real "coder" but  after much time figuring out what exactly some of your code did (much of it is way over my head) I figured out what was wrong (maybe?) .... I see in your restore cmdline section you have two ways available -- the first for numbers and the second for restoring by name. (Right?)

What is going wrong is on line 472 you have If IsInt ($__cmdline [2]) Then.....  but for whatever reason the cmdlind  variable is considered a string (as far as I can tell?) So IsInt always returns 0... thus always going to your name search method (line 482) which searchs for a string. But 90% of the time when restoring by cmdline number,  its going to match the first auto save since they are all numbers .... so to fix this on my project I just changed line 472 to If IsInt (Number ($__cmdline [2])) then.... but I think that defeats your purpose for the "IsInt"?? (I'm not 100% clear on the "number" function)  so my method 2 would be to change the string search on line 482 to limited to the first three digits If the variable contains only digits (regex?) Which I think should Work okay? But I can't help but think there is a way to make the cmdline variable be recognized as a digit to begin with?
Anyway just wanted to notify you of my findings.  Sorry for the long windedness... and lack of knowledge on a fix...
Regards,
Don

 

Edited by donnyh13
further understanding of the code.

LibreOffice UDF  ; Scite4AutoIt Spell-Checker Using LibreOffice

Spoiler

"Life is chiefly made up, not of great sacrifices and wonderful achievements, but of little things. It is oftenest through the little things which seem so unworthy of notice that great good or evil is brought into our lives. It is through our failure to endure the tests that come to us in little things, that the habits are molded, the character misshaped; and when the greater tests come, they find us unready. Only by acting upon principle in the tests of daily life can we acquire power to stand firm and faithful in the most dangerous and most difficult positions."

 

Link to comment
Share on other sites

  • 2 weeks later...

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

×
×
  • Create New...