In this question, you are mixing two different aspects: command line parameters, and single-instance application.
There are different methods of preventing multiple application instances from running (second instance is started for short time, detects the first instance and terminates itself immediately), but I developed a very compact, simple and robust mechanism where the same technique is used for detection of the previous instance and sending information on the command line. Please see my past answers:
http://www.codeproject.com/Answers/556737/Enterplusmultiplepluscommandsplustoplusonlyplusone#answer1[
^],
http://www.codeproject.com/Answers/593594/CustomplusWindowsplusright-clickpluscommandpluslau#answer1[
^].
As to the processing of a command line, I would recommend my own library which is very easy to use and flexible enough; I explain it in my CodeProject article:
Enumeration-based Command Line Utility[
^].
In this article, I also recommend another, more complex solution, which is also published in CodeProject.
—SA