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:
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:
Not only that, but the windows for different profiles stay ungrouped and I am free to separate them from each other:
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
:
To put it short: What magic is this?
Best Answer
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:
Switch person
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.
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:
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).
/profile=1
or any other unique parameter for this program