I've got an windows mobile 6.5 application I'm developing and am having trouble with one icon. At the top right hand of the screen there is an icon that, when clicked, will display a list of programs running the background with the option to close them.
When my program is in this list, it's icon does not show up as the others do.
I'm my exe I've got an .ico for 16x16, 22x22, 32x32, 36x36, 44x44, 45x45, 60x60, and 64x64, with the optional 90x90 png and registry setting in my cab.
What am I missing?
I'm just guessing here, but is this an HTC phone? Stock Windows Mobile does not have a "task list" icon in the system tray, so this task list is provided by the OEM. You would need to find out how they are obtaining the icon.
Chances are they are not obtaining it from the cab, but are actually getting it from your top level app window. You should check you're specifying the right icon in your WNDCLASS structure when calling RegisterClass. It is pretty common in WM to forget this because normally this icon is not visible.
Windows Embedded Handheld (Windows Mobile) 6.5/6.5.3 Appications use the exe embedded ico files only if there is no icon via registry available. In those cases the icon also look very ugly in the start menu. So you will have to add a registry entry to an icon file.
[HKEY_LOCAL_MACHINE\Security\Shell\StartInfo\Start\MyApp.lnk]
"Icon"="\Windows\myapp.png"
See also: https://blogs.windows.com/windowsexperience/2009/08/11/using-custom-icons-in-windows-mobile-6-5/
Related
I have written a Firemonkey app and it saves its files with extension ".qrmx".
In both Explorer (Windows) and Finder (Mac), its thumbnail looks like a blank sheet of paper with the top right corner curled over. This is, I think, the generic thumbnail. How can I introduce a thumbnail specific to my app?
It finally dawned on me that I needed to associate my program files with my program. For Windows, I was able to do this within the Inno Setup installer by defining Registry settings. For OS X, I was able to do it with settings in the info.plist file. Both operating systems then used the appropriate icons from my app.
I am trying to find the event type associated with windows taskbar icon of my application. In Windows 8.1 user can close, minimize and restore the application from this icon.
Google is only showing the results for taskbar tray icons, which is a whole different thing. So far I've tried these:
wx.EVT_CLOSE # This event is not generated for taskbar closing
wx.EVT_RESTORE # This event is not generated either
Yet, it does close the application and it also manages to restore an iconized application. I made two separate handlers to check this. They are working when I use the titlebar buttons (close and min/maximize buttons), but not when done from the taskbar.
Using LoadImage I changed the icon of all the windows in a group. However the group icon does not change. How can I get the corresponding group to a window and set its icon?
The group icon comes from the EXE file itself (in the case of multiple EXEs contributing to the same group, I imagine the taskbar has some algorithm to decide which EXE to pull the icon from). There is no official API to change the group icon. You would have to manipulate the Taskbar directly, which is not impossible but not trivial either.
Update: I just came across the following answer, maybe it will help you:
https://stackoverflow.com/a/219128/65863
Update: Apparently the Registry value in the above link only applies if the app is pinned to the Taskbar.
Your issue is this: The icon does infact take the icon of the first WINDOW, not exe. HOWEVER, after setting the icons, you have to right click on the icon in the taskbar, then pin it, then unpin it. On unpin the taskbar icon now takes the first windows icon.
I don't know how to programatically do this to maybe #RemyLebeau knows. Maybe setClassLongPtr? Not sure.
Now when it's pinned you want to make it use the same icon, so set the registry value like #RemyLebeau suggested.
Also I don't know how to explain this, but after unpinning, and the icon takes, if you open the jump list, the icon reverts back to the exe's icon. This may be fixed with the registry setting for pinned icon, I'm not sure.
Wow so Win7 taskbar is so tweakish.
Edit: I tried setting my registry values and the icon didnt work. It might have to do something with: the registry entires that i found for TaskbarGroupIcon all had a data value ending with a comma and a number (ex: ,-4 in %SystemRoot%\System32\imageres.dll,-4)
I have a normal MFC Application with an embedded icon. If I start the application, the icon is shown inside the windows-7 taskbar.
But when I change the icon inside the resources, rebuild the application and start it, the taskbar doesn't show the current icon, but the icon from the first run.
There is no special code inside the application that does something specific with the windows-7 taskbar.
Is there a way, (in C++) to tell the windows-7 taskbar to show the current icon?
Did you empty/delete the shell icon cache?
I believe that if you rebuild an application, but it's still called by the same name, then explorer doesn't think it should reload the icon, even though the new icon is the only one in the app.
If you were to release the program, no-one else would have this problem since the first version of the app would have the new icon, but for your own purposes you can call SHChangeNotify(); from shell32.dll to refresh your own view of the icon.
did your remove the previous icon from resource....and assign the new icon to the file..too after putting in the resource...might that would work....
Control Panel items are normally registered under HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace, however a lot of the built-in panels aren't listed there, such as the Automatic Updates item.
I'm trying to find out where the icon used for the Automatic Updates item is. If you open the Control Panel in Tiles mode (48x48 icons) you'll see the icon is being scaled up, yet all of the icon resources in all of the Windows Update files have 48x48 subimages, so I can't figure this one out.
It's a similar story with the NVidia control panel item: the icon is black and seemingly downscaled from a subimage larger than 48x48, yet the actual nvidia control panel files don't contain this black icon (instead they have the silver version). When I create a Shortcut to the control panel item and inspect its binary bits there is no path to the icon specified, just to the cpl file itself (with the totally different icon). I've checked the registry and there aren't any clues in there either.
Any ideas?
Control Panel applets can be registered in several different ways, or not at all (if they reside in the %system% folder):
Registering Control Panel Items
If an applet does not register its icon information in the Registry, then the applet has to provide the icon information when requested by the Control Panel via the CPL_INQUIRE and/or CPL_NEWINQUIRE messages to its CPLApplet() entry point, in which case the applet has no idea what size icon to return. It sounds like maybe you are running into that scenario.