I agree with you with nothing more annoying than an application popping up out of nowhere, but here this is done in case there is already an instance of the application running and the user starting a second instance of that application. In such a case, I want to the first instance to be shown to the user and the second instance closed. In this particular case, I think it's completely fine to go against the default Windows' behaviour.
Otherwise, about "I know what is good for my user"... well, though my application is going to be used by many people, I will also happen to be one of those people. So, it's not, here, a matter of the programmer not being a user and, yet, thinking s/he knows better than the user. Also, I have done the above in the previous version of my application (which is written in Delphi and therefore only runs on Windows, hence my switching to Qt to have it cross-platform).
Bookmarks