"After some research I have found out that to pass command line arguments to a program that needs to have an entry in the registry which then specifies the behaviour of the program given certain arguments."
Since when?
ProcessStartInfo psi = new ProcessStartInfo("MyApp", "My Arguments list /p");
Process.Start(psi);
The program needs to be installed, yes. Otherwise Windows doesn't know where to find it.