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.

 Process.Start("emulator\vba\VisualBoyAdvance.exe", "roms\gb\yellow\")
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.