…a simple and often used application for this example is Windows Media Player. when one instance of Windows media player is running, you can *NOT* open the second instance. If you try to open, it pops up the first windows itself and overwrites your old song with new song you selected.
You can get rid of this behavior and enjoy the remix of two songs with Windows Media player with multi-instancing the wmplayer.exe process.
Solution for Multiple instances:
- Open one instance of wmplayer.exe and start a song.
- Open processExplorer and Kill the wmplayer.exe handle(BaseNamedObjectsMicrosoft_WMP_70_CheckForOtherInstanceMutex)
- Open another instance of wmplayer.exe, play another song, and enjoy.
The another application would be Outlook if you have multiple e-mail account profiles, you know how frustrating it is to have Outlook restrict you to a single running instance of Outlook per interactive login. For those of you not familiar with this "feature", here’s the scoop: if you have one instance of Outlook running and then launch another instance, a new Outlook window is created in the context of the original instance, but you don’t have the option to load another e-mail account profile. This is a pain because it requires you to close and restart Outlook each time you want to check a different e-mail account (assuming you have a separate profile for each account).
During Outlook’s initialization, it checks to see if a window named "Microsoft Outlook" with class name "mspim_wnd32" exists, and if so, it assumes that another instance is already running. To test this, I set the return value of FindWindowA(…) from the call above to NULL, and Outlook opened a full second instance of itself in a separate process, and allowed me to use a different account profile.
Reference: http://malwareanalysis.com/CommunityServer/blogs/geffner/archive/2007/08/10/234.aspx