Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Crazy Scripting : IconEx v1.4b - Icon Explorer / Extractor


  • Please log in to reply
64 replies to this topic
SKAN
  • Administrators
  • 9115 posts
  • Last active:
  • Joined: 26 Dec 2005


Posted Image

Download :

IconEx-v1.4b 15.33 KiB

IconEx-v1.00 13.21 KiB


Auto complete Address Bar
Credit : Sean
Type a folder path ( or ) the full path to a resource file

What you see is What you Extract
Left Click on an item to Select
and then Right Click on it to Extract

Keyboard user friendly

Go - Default button / Enter would suffice
Browse - Select a folder
File - Sets Control focus to Report view
Icon - Sets Control focus to Icon view
Address Bar - Sets Control focus to Address Bar, like Windows Explorer
Reload - Reloads the script with last viewed Icon[/list]
:)




Previous version :
Download : IconEx 9Kb ( 200 Lines )

Posted Image

Intro: IconEx is a Icon explorer / extractor that will help in extracting icons from resources files ( like EXE, DLL, CPL etc ). An ICON is different from a BITMAP file, in the sense that a BMP will contain only one image whereas an ICON can contain several instances of the image in various resolutions.

With IconEx, you can

[*:2y1jqsrx]Extract all the Icons resources from a resource file in one go
[*:2y1jqsrx]Extract a single Icon ( Icon Group ) from a resource
[*:2y1jqsrx]or just a single Frame/Image from an Icon Group
How to Install ?
No procedures.., IconEx is a single file script with no dependency. Just make sure you create a new folder ( like D:\IconEx ) and place the script in it. The script would create sub folders when you extract icons.


How to explore ?
By default IconEx starts in Windows folder and loads resources with icons in a Report-View. To change it to a different folder, click on the text control that shows the folder path - select your folder - and allow enough time for the Report-View to load.
Double-click on a file name and the Icon-View pane will be refreshed with the Icon groups present in that resource file.
Double-click on an Icon Group and the 12 squares at the bottom of the GUI will show you the different icons present in the group.

How to extract ?

( Refer the screen shot )

To extract all Icon resources from SHELL32.DLL
Keep the Left-Control button down and double-click on SHELL32.DLL on the Report-View pane

You will be prompted with a Message Box:

Posted Image
A sub-folder named SHELL32.DLL will be created on the scripts folder and all icons would be extracted into it.

To extract ICON GROUP 28 from SHELL32.DLL
Keep the Left-Control button down and double-click on Icon Group 28 on the Icon-View pane

You will be prompted with a Message Box:

Posted Image
To extract a single ICON from ICON GROUP 16 of SHELL32.DLL

Just click on any of the 12 squares placed the bottom of the GUI.

Posted Image
The single icons extracted will all be placed in the subfolder named ~Icons
To avoid the Message Box, keep the Left-Control button down while clicking.

Find Target: After extraction, the status bar would be pointing to the Folder or File. Clicking the status bar will open an instance of Windows Explorer with the Folder or File auto-selected.

Limitations ?

SHDOCVW.DLL behaves funny.. I have to check on that.
Generally speaking, if you do not see an icon in any one of the 12 squares, you cannot extract that icon.

End note:

This project evolved with many simple procedures that I had posted earlier in this topic. I have removed them to reduce the clutter and provide here the links instead:

post1.ahk - Previous Title post
post2.ahk - CopyData() alternate
post3.ahk- LoadIconFromICO()
post4.ahk - LoadIconFromRes()
:)[/list]
Edit: All Links in Topic fixed on 09-Aug-2012 - 23:20 GMT

ahklerner
  • Members
  • 1386 posts
  • Last active: Oct 08 2014 10:29 AM
  • Joined: 26 Jun 2006
Cool! Good Job :D

tic
  • Members
  • 1934 posts
  • Last active: May 30 2018 08:13 PM
  • Joined: 22 Apr 2007
Good job little guy! :p

Z Gecko
  • Guests
  • Last active:
  • Joined: --
very cool,
and all this, just because someone asked if it is possible.

SKAN
  • Administrators
  • 9115 posts
  • Last active:
  • Joined: 26 Dec 2005

Cool! Good Job :D


Thanks :)

Good job little guy! :p


Thanks. I do not want to grow up. :D

very cool,
and all this, just because someone asked if it is possible.


Thanks. :) The best is yet to come.. ;)

RIST
  • Members
  • 39 posts
  • Last active: Aug 17 2012 08:36 PM
  • Joined: 08 May 2008
hoho :shock: its very cool :D
Keegi Siin ka Eestlane? :)

SKAN
  • Administrators
  • 9115 posts
  • Last active:
  • Joined: 26 Dec 2005
Thanks RIST. :)

@Everybody:

I have combined my previous code into a GUI based utility.

:)

Laszlo
  • Moderators
  • 4713 posts
  • Last active: Mar 31 2012 03:17 AM
  • Joined: 14 Feb 2005
It beats all the similar scripts posted before. Nice job!

Z Gecko
  • Guests
  • Last active:
  • Joined: --

The best is yet to come..

you didn´t promise to much!
HOT !
:mrgreen:

heresy
  • Members
  • 291 posts
  • Last active: Sep 26 2008 10:47 PM
  • Joined: 11 Mar 2008
very impressive !
you rule SKAN
my suggestion is make to react on single click rather than double click
Thanks for sharing
Easy WinAPI - Dive into Windows API World
Benchmark your AutoHotkey skills at PlayAHK.com

Oberon
  • Members
  • 442 posts
  • Last active: Jul 03 2008 11:34 PM
  • Joined: 18 Feb 2008
The loading takes forever to get to shell32.dll when searching through \Windows\System32 on my core 2 duo 2ghz 2gb rams so can you make a way to select an icon file directly? As heresy said it would be a lot easier to be able to single click in many places. Finally I would like a file browse dialog when saving icons or at least a context menu in the list view that gives me extended export options.

I understand you want to keep this script short as possible, so if you're reluctant to add these features I'll just fork a version for private use :p Up until now I've been using toralfs Icon Viewer Lite but this one seems promising.

SKAN
  • Administrators
  • 9115 posts
  • Last active:
  • Joined: 26 Dec 2005

It beats all the similar scripts posted before. Nice job!


Thank you Sir!. You made it my day :)

The best is yet to come..

you didn´t promise to much!
HOT !
:mrgreen:


Thanks ! :)

very impressive !
you rule SKAN
my suggestion is make to react on single click rather than double click
Thanks for sharing


Thanks ! :)

I did try with AltSubmit in LV Options. It triggers the subroutine too many times effecting unbearable flicker. I will try to workaround it.


@Oberon:

The loading takes forever to get to shell32.dll when searching through \Windows\System32 on my core 2 duo 2ghz 2gb rams so can you make a way to select an icon file directly?


Sure! I am working on it. The newer version will have Windows explorer's address bar so the user will be benefitted with its Auto-complete facility.


I would like a file browse dialog when saving icons or at least a context menu in the list view that gives me extended export options.


Yes! A GUI script should be that way.. I will try to implement it.
The present way was very convenient during development / testing.

I understand you want to keep this script short as possible


Not for this script. A GUI script needs to be intuitive and mine is short of that.

so if you're reluctant to add these features I'll just fork a version for private use Up until now I've been using toralfs Icon Viewer Lite but this one seems promising.


I will try my best... Icon Viewer Lite has been my favorite too.

Thanks again to everybody!

:)

n-l-i-d
  • Guests
  • Last active:
  • Joined: --
Very impressive indeed! 8)

Almost a fullblown Resource Hacker (hint, hint) :wink:

SKAN
  • Administrators
  • 9115 posts
  • Last active:
  • Joined: 26 Dec 2005

Very impressive indeed! 8)


Thanks :)

Almost a fullblown Resource Hacker (hint, hint) :wink:


I think I still have a long way to go .. :D

SKAN
  • Administrators
  • 9115 posts
  • Last active:
  • Joined: 26 Dec 2005
Download : IconEx-v1.00 13.21Kb ( 325 Lines )

Details and screen shot on the Title post.

:)