Now this is pretty simple (and really short) but when I was doing this, I never paid attention to the things that I could pass to Process.start (and boy did I feel stupid after I figured this out)

Anycase this was something I was doing for a rom launcher for the pokemon games.

Code:
 Process.Start("emulator\vba\VisualBoyAdvance.exe", "roms\gb\yellow\Pokemonyellow.zip")
Basically the first part needs the location of the program to open, in this case it's in the same folder of the application so I can just use a relative path rather then absolute. The second part works the same way and when the button is pressed it will open VBA with PokemonYellow already opened in the emulator.