How did I pin Chrome to my Win7 TaskBar multiple times?

I have seen many many questions, including Pin same app multiple times in Windows 7, but they are all asking how to do something I have already done. I certainly did not use one of the solutions in the answers to the many questions I have examined, and I have no idea how I did this - that's what I am asking here. Trust me, this is a very different question.

Normally, you can't pin the same application to your TaskBar multiple times in Windows 7, which is the whole point of the other questions. But let's take a look at my TaskBar:

My Win7 TaskBar

Huh, that's interesting - I have two Chrome shortcuts pinned and each one has a subicon corresponding to the icon of the user profile. It gets weirder.

For most of the shortcuts, when I right click, right click again -> properties -> General tab, the location of the shortcut is in:

  • C:\Users\Nicholas\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

But for the Chrome shortcuts, their locations are different:

  • C:\Users\Nicholas\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\ImplicitAppShortcuts\225bb61db2f318c1 (the one with my face)
  • C:\Users\Nicholas\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\ImplicitAppShortcuts\69639df789022856 (the one with my avatar)

The targets of the shortcuts:

  • "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 3" (the one with my face)
  • "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 1" (the one with my avatar)

Notice that the targets refer to the same executable, and only their arguments are different. A majority of the answers to other questions involve symlinking the executable so that the shortcuts would refer to different ones (completely ignoring applications that check their executable name, but I digress). These are not symlinks - they're the real deal.

The icons are different too:

  • %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Profile 3\Google Profile.ico (the one with my face)
  • %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Profile 1\Google Profile.ico (the one with my avatar)

Also, these shortcuts seem to be 'official' as they have their own independent jump lists when I right click on them:

Face JumplistAvatar Jumplist

Not only that, but the windows for different profiles stay ungrouped and I am free to separate them from each other:

enter image description here

This is amazing, and very useful, but I don't have any idea how I accomplished it. It is very weird because many questions have been asked here on SO/SU and elsewhere on the web, and none of the solutions work like this. How did this happen, and can it be done with other applications too? I don't want to break whatever magic is making this work, so experimenting on my own computer is out of the question.

This is the tree view of C:\Users\Nicholas\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned:

enter image description here

To put it short: What magic is this?


For Chrome you have the ability to create an extra individual shortcut to Chrome with your other profile on the taskbar. You can open Chrome (default icon) and switch to another profile. When doing so Chrome creates another instance, separate from the default one. You can pin that separate instance to the taskbar as a second icon. That icon is the shortcut to Chrome for that profile.

Steps to reproduce:

  • Open Chrome on the taskbar
  • Click your profile-name at the upper-right (left from the close/minimize-buttons)
  • Choose Switch person
  • Login with a different Google-account
  • Now Chrome had created a second icon on the taskbar
  • Right-click that icon and choose Pin this program to taskbar

The second shortcut is located in the ImplicitAppShortcuts-folder of the User pinned-folder.

(extra tip and off-topic: When clicking the orb (Windows-start) you can type shell: user pinned followed by enter to be taken directly to the correct folder. Here is a list of other interesting shell-shortcuts.)

Edit:
Of course these are not the only location where data is stored for the pinned application.

%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu 
%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\ImplicitAppShortcuts

For example the ordering is not in these folders. The order of the pinned applications (and jump-list/right-click) is in the registry here:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband\Favorites
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband\FavoritesResolve

However this is a REG_BINARY value so changing the order or adding one isn't easily done in regedit.

(Some info here)

I haven't (yet) found a simple api to do this all.

Edit #2
Wow, it's actually quite easy to do with any program (without Windows API).

  • Create a shortcut to a program and edit the target to include something like /profile=1 or any other unique parameter for this program
  • It doesn't matter where you place the shortcut (it can be on the desktop) because it's temporary
  • Start the program via the shortcut. Because it has a unique start-target it gets a new icon in the taskbar.
  • Right-click the new icon and pin it to the taskbar
  • You can delete the icon from the desktop