Windows allways starts a new instance of a program to handle this, so you have to check if an instance of your app is all ready running.
If it is, then you need to talk to it and pass the arguments over.
You can find and switch control to an existing instance quite easily:
A simple way to ensure only one instance is running.[
^] will show you how.
Passing your parameters over is a bit harder...
Pipes are probably the easiest way:
Inter-Process Communication in .NET Using Named Pipes, Part 1[
^] It may seem a litle overkill, but the sample is pretty simple.