- Как посмотреть значки (иконки) в файлах shell32.dll, imageres.dll
- Windows 10 icons. Where are they located? In which files and folders?
- How are Windows 10 icons stored?
- Where are Windows 10’s default icons located?
- How to use the icons stored inside a .DLL file
- Do you know any other DLL files with icons from Windows 10?
- How do you get the icons out of shell32.dll?
- 10 Answers 10
- Shell_NotifyIconA function (shellapi.h)
- Syntax
- Parameters
- NIM_ADD (0x00000000)
- NIM_MODIFY (0x00000001)
- NIM_DELETE (0x00000002)
- NIM_SETFOCUS (0x00000003)
- NIM_SETVERSION (0x00000004)
- Return value
- Remarks
Как посмотреть значки (иконки) в файлах shell32.dll, imageres.dll
Shell32.dll & imageres.dll
Добрый вечер, уважаемые! Сегодня намудрил с файлами Shell32.dll и imageres.dll. Вообщем скачал их.
Как заставить программу использовать \system32\shell32.dll, а не \путь к проге\Interop.Shell32.dll
Это неудобно для Portable программы..
Достать иконки из Shell32.dll
Подскажите как достать иконки из Shell32.dll для того, чтобы запихнуть их в ImageList! И как.
Пункт 1
Kholmirzaev, мне сложно работать в программе «Photoshop», т.к. я этой программой не пользуюсь — мне потребуется обучаться, что займёт много времени. Я такое не смогу сделать.
Пункт 2
Можно делать скриншоты экрана и вырезать значки (иконки), но я предполагаю, что у таких значков (иконок) будет плохое качество. Я, например, из-за плохого качества не хочу использовать значки (иконки), которые можно взять с помощью VBA-команды «SavePicture».
Пункт 3
Я читал в интернете, что в интернете можно скачивать значки (иконки). Хотелось бы узнать алгоритм поиска нужного значка в интернете.
Пункт 4
Возник такой вопрос: извлечение значков (иконок) из dll и exe-файлов, использование этих значков (иконок) не является нарушением авторских или каких-то других прав?
Вообще, работа со значками (иконками) есть. Например, в Windows можно назначать значок (иконку) папке. Т.е. манипулировать значками (иконками) можно.
Windows 10 icons. Where are they located? In which files and folders?
Whether you want to change the default icon of a certain folder or the icon of a shortcut you have created, you might wonder where you could find new icons. While there are lots of websites that offer custom made icon sets, you might, however, prefer to use icons that are already found on your Windows 10 computer or device. In this article, we show you where the icons are stored in Windows 10. If you want to find all the default Windows 10 icon files, read on:
How are Windows 10 icons stored?
Icons are usually stored inside ICO files. However, ICO files have a big disadvantage: they can hold only one icon. Windows 10 has lots of applications, folders, files, and shortcuts, and many of them have their unique icons. If Windows had an ICO file for each icon it uses, that would make for a considerable number of icon files.
To resolve this problem, instead of using ICO files to store icons, Windows uses DLL files. The main advantage of a DLL file is the fact that it can hold multiple icons inside. As a matter of fact, you could compare an icon DLL file with a library of icons. When you want to change the icon of a particular file, folder or shortcut, you can just set its icon location to point to a specific DLL file, and a specific icon from it.
Most icons from Windows 10 are stored inside DLL files. In the next section, we show you where these DLLs with icons are found in Windows 10.
Where are Windows 10’s default icons located?
We tried to organize our list of default Windows 10 icons, both by their DLL files location and by taking into consideration the primary purpose of the icons found inside the DLL files. Next, you can see our list of locations from Windows 10 where you find .DLL files containing icons:
The imageres.dll file contains many icons, used almost everywhere in Windows 10. It has icons for different types of folders, hardware devices, peripherals, actions, and so on.
The shell32.dll file also has lots of icons used in various parts of Windows 10. Together with imageres.dll, shell32.dll hosts one of the largest icon collections. Inside it, you can find icons for internet, devices, networks, peripherals, folders and so on.
Pifmgr.dll contains some old-style icons that were found in older versions of Windows, like Windows 95 and Windows 98. In it, you can find funny icons that depict things such as a window, a trumpet, a ball, a wizard hat, and others. 🙂
Explorer.exe has a few icons used by File Explorer and its older versions. The first icon is the default icon used by File Explorer, but the next ones were used in older Windows versions for things like printers, folders, actions, messenger apps, mail, and others.
Accessibilitycpl.dll has a set of icons that are used mainly for the accessibility features in Windows 10. It has icons with people, mouse cursors, a magnifying glass, a mouse and a keyboard, and so on.
Ddores.dll contains icons for hardware devices and resources, such as speakers, headphones, screens, computers, remotes, and gaming pads, mice and keyboards, cameras, printers and so on.
Moricons.dll is another file that contains old-style icons, used by Microsoft in old Windows versions. Most of the icons here are about MS-DOS programs, but you also have icons for old programming languages such as Turbo Pascal or FoxPro.
Mmcndmgr.dll is yet another file with vintage icons, which we believe were designed mainly for computer management related settings. Among others, it includes icons for networks, folders, authentication, time, computers, and servers.
Mmres.dll has a few icons with various audio resources, like speakers, headphones, microphones, and a webcam.
Netcenter.dll has a few icons for network related settings and features.
Netshell.dll contains icons for all kinds of network connections and associated hardware or technologies.
For instance, inside it, you can find icons for Bluetooth, wireless routers, and network connections.
Networkexplorer.dll another .dll file with a few peripherals such as phone, router, a printer or a fax machine, and some network-related icons.
Pnidui.dll has icons for network related settings (Ethernet or wireless status, network locations, etc.). Most of the icons here are transparent white, so you have to select them to see what they look like.
Sensorscpl.dll has a few icons for different kinds of sensors. While most of them look similar, their details indicate things like temperature, power, wind etc.
Setupapi.dll has icons used for the setup wizards of various hardware devices. It has screens, peripherals, hardware components, connectors and plugs, gaming pads, and others.
Wmploc.dll contains multimedia icons used for media devices, music and video files, folders, CD and DVD discs, and so on.
Wpdshext.dll has icons for some portable devices such as cameras, phones or mp3 players, and a few battery indicators.
Comstui.dll includes various classic icons from older versions of Windows.
It has icons with light bulbs, mail, printers, documents, telephones, fax machines and so on.
Ieframe.dll contains the icons used by Internet Explorer for its shortcuts, buttons and menus.
Dmdskres.dll contains icons only used for disk management.
Dsuiext.dll includes icons for network services. It has icons with servers, people, printers, office buildings, authentication services and so on.
Mstscax.dll stores just a few icons used for remote desktop connections, with computers, notifications, and security certificates.
Wiashext.dll has a few icons for various imaging hardware devices, like scanners, cameras, photo and video cameras, and a few similar icons.
Comres.dll contains a few icons that depict a user, a folder, a pencil, and some actions.
Mstsc.exe holds a few other network related icons but also includes other icons like a speaker, a microphone, and a Windows 8 logo.
26. actioncentercpl.dll, aclui.dll, autoplay.dll, comctl32.dll, xwizards.dll, ncpa.cpl, url.dll (all in %systemroot%\system32)
All these files contain icons; however, many have only one icon inside or just a few, so we decided to mention them all together. They have icons used in Windows 10’s Action Center, some error and info icons, an autoplay icon, some user icons, and websites icons.
How to use the icons stored inside a .DLL file
Icons stored inside .DLL files cannot be copied and saved elsewhere, at least not unless you use a special app that can extract icons from .DLL files. However, you can use any icon stored inside such a file, to set it as the icon used by a folder, a library or a shortcut. If you need guidance on how to change the icons associated with your shortcuts, this tutorial helps: How to change the icon of any shortcut in Windows. Just copy and paste the path we provided for the DLL that interests you, in the field named “Look for icons in this file.”
If you are not satisfied with the icons found in Windows 10, then you might want to look at other places to find icons: 7 sites where you can download free desktop icons for Windows 10.
Do you know any other DLL files with icons from Windows 10?
As you have seen, Windows 10 has lots of icon sets that are built-in. Depending on what kind of icon you need, it is a good chance that you’ll find it inside one of the DLL files that we have listed. Do you know other built-in icon locations from Windows 10? If you do, do not hesitate to share them with us, and we promise to update this article as soon as possible.
How do you get the icons out of shell32.dll?
I’d like to get the Tree icon to use for a homegrown app. Does anyone know how to extract the images out as .icon files? I’d like both the 16×16 and 32×32, or I’d just do a screen capture.
10 Answers 10
In Visual Studio, choose «File Open. » then «File. «. Then pick the Shell32.dll. A folder tree should be opened, and you will find the icons in the «Icon» folder.
To save an Icon, you can right-click on the icon in the folder tree and choose «Export».
If anyone is seeking an easy way, just use 7zip to unzip the shell32.dll and look for the folder .src/ICON/
Another option is to use a tool such as ResourceHacker. It handles way more than just icons as well. Cheers!
I needed to extract icon #238 from shell32.dll and didn’t want to download Visual Studio or Resourcehacker, so I found a couple of PowerShell scripts from Technet (thanks John Grenfell and to #https://social.technet.microsoft.com/Forums/windowsserver/en-US/16444c7a-ad61-44a7-8c6f-b8d619381a27/using-icons-in-powershell-scripts?forum=winserverpowershell) that did something similar and created a new script (below) to suit my needs.
The parameters I entered were (the source DLL path, target icon file name and the icon index within the DLL file):
I discovered the icon index that I needed was #238 by trial and error by temporarily creating a new shortcut (right-click on your desktop and select New —> Shortcut and type in calc and press Enter twice). Then right-click the new shortcut and select Properties then click ‘Change Icon’ button in the Shortcut tab. Paste in path C:\Windows\System32\shell32.dll and click OK. Find the icon you wish to use and work out its index. NB: Index #2 is beneath #1 and not to its right. Icon index #5 was at the top of column two on my Windows 7 x64 machine.
If anyone has a better method that works similarly but obtains higher quality icons then I’d be interested to hear about it. Thanks, Shaun.
Shell_NotifyIconA function (shellapi.h)
Sends a message to the taskbar’s status area.
Syntax
Parameters
A value that specifies the action to be taken by this function. It can have one of the following values:
NIM_ADD (0x00000000)
0x00000000. Adds an icon to the status area. The icon is given an identifier in the NOTIFYICONDATA structure pointed to by lpdata—either through its uID or guidItem member. This identifier is used in subsequent calls to Shell_NotifyIcon to perform later actions on the icon.
NIM_MODIFY (0x00000001)
0x00000001. Modifies an icon in the status area. NOTIFYICONDATA structure pointed to by lpdata uses the ID originally assigned to the icon when it was added to the notification area (NIM_ADD) to identify the icon to be modified.
NIM_DELETE (0x00000002)
0x00000002. Deletes an icon from the status area. NOTIFYICONDATA structure pointed to by lpdata uses the ID originally assigned to the icon when it was added to the notification area (NIM_ADD) to identify the icon to be deleted.
NIM_SETFOCUS (0x00000003)
0x00000003. Shell32.dll version 5.0 and later only. Returns focus to the taskbar notification area. Notification area icons should use this message when they have completed their UI operation. For example, if the icon displays a shortcut menu, but the user presses ESC to cancel it, use NIM_SETFOCUS to return focus to the notification area.
NIM_SETVERSION (0x00000004)
0x00000004. Shell32.dll version 5.0 and later only. Instructs the notification area to behave according to the version number specified in the uVersion member of the structure pointed to by lpdata. The version number specifies which members are recognized.
NIM_SETVERSION must be called every time a notification area icon is added (NIM_ADD). It does not need to be called with NIM_MOFIDY. The version setting is not persisted once a user logs off.
For details, see the Remarks section.
A pointer to a NOTIFYICONDATA structure. The content of the structure depends on the value of dwMessage. It can define an icon to add to the notification area, cause that icon to display a notification, or identify an icon to modify or delete.
Return value
Returns TRUE if successful, or FALSE otherwise. If dwMessage is set to NIM_SETVERSION, the function returns TRUE if the version was successfully changed, or FALSE if the requested version is not supported.
Remarks
As of WindowsВ 2000 (Shell32.dll version 5.0), if you set the uVersion member of the NOTIFYICONDATA structure pointed to by lpdata to NOTIFYICON_VERSION_4 or higher, Shell_NotifyIcon mouse and keyboard events are handled differently than in earlier versions of Windows. The differences include the following:
- If a user selects a notify icon’s shortcut menu with the keyboard, the Shell now sends the associated application a WM_CONTEXTMENU message. Earlier versions send WM_RBUTTONDOWN and WM_RBUTTONUP messages.
- If a user selects a notify icon with the keyboard and activates it with the SPACEBAR or ENTER key, the version 5.0 Shell sends the associated application an NIN_KEYSELECT notification. Earlier versions send WM_RBUTTONDOWN and WM_RBUTTONUP messages.
- If a user selects a notify icon with the mouse and activates it with the ENTER key, the Shell now sends the associated application an NIN_SELECT notification. Earlier versions send WM_RBUTTONDOWN and WM_RBUTTONUP messages.
As of WindowsВ XP (Shell32.dll version 6.0), if a user passes the mouse pointer over an icon with which a balloon notification is associated, the Shell sends the following messages:
- NIN_BALLOONSHOW. Sent when the balloon is shown (balloons are queued).
- NIN_BALLOONHIDE. Sent when the balloon disappears. For example, when the icon is deleted. This message is not sent if the balloon is dismissed because of a timeout or if the user clicks the mouse.
As of WindowsВ 7, NIN_BALLOONHIDE is also sent when a notification with the NIIF_RESPECT_QUIET_TIME flag set attempts to display during quiet time (a user’s first hour on a new computer). In that case, the balloon is never displayed at all.
- NIN_BALLOONTIMEOUT. Sent when the balloon is dismissed because of a timeout.
- NIN_BALLOONUSERCLICK. Sent when the balloon is dismissed because the user clicked the mouse.
In addition to those messages, as of WindowsВ Vista (Shell32.dll version 6.0.6), if a user passes the mouse pointer over an icon with which a balloon notification is associated, the WindowsВ Vista Shell also adds the following messages:
- NIN_POPUPOPEN. Sent when the user hovers the cursor over an icon to indicate that the richer pop-up UI should be used in place of a standard textual tooltip.
- NIN_POPUPCLOSE. Sent when a cursor no longer hovers over an icon to indicate that the rich pop-up UI should be closed.
Regardless of the operating system version, you can select which way the Shell should behave by calling Shell_NotifyIcon with dwMessage set to NIM_SETVERSION. Set the uVersion member of the NOTIFYICONDATA structure pointed to by lpdata to indicate whether you want WindowsВ 2000, WindowsВ Vista, or pre-version 5.0 (WindowsВ 95) behavior.
The shellapi.h header defines Shell_NotifyIcon as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.