I have an EXE file reference in my C# project. How do I invoke that EXE file from my code?
5 Answers
using System.Diagnostics;
class Program
{
static void Main()
{
Process.Start("C:\\");
}
}
If your application needs cmd arguments, use something like this:
using System.Diagnostics;
class Program
{
static void Main()
{
LaunchCommandLineApp();
}
/// <summary>
/// Launch the application with some options set.
/// </summary>
static void LaunchCommandLineApp()
{
// For the example
const string ex1 = "C:\\";
const string ex2 = "C:\\Dir";
// Use ProcessStartInfo class
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "dcm2jpg.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "-f j -o \"" + ex1 + "\" -z 1.0 -s y " + ex2;
try
{
// Start the process with the info we specified.
// Call WaitForExit and then the using statement will close.
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
}
catch
{
// Log error.
}
}
}
2 Comments
RisingHerc
startInfo.UseShellExecute = false was an awesome thing...It worked for me like a charm! Thank you! :)Dragon
@logganB.lehman process hangs forever on exeProcess.WaitForExit(); any idea?
Example:
System.Diagnostics.Process.Start("mspaint.exe");
Compiling the Code
Copy the code and paste it into the Main method of a console application. Replace "mspaint.exe" with the path to the application you want to run.
3 Comments
default
How does this provide more value than the already created answers? The accepted answer also shows the usage of
Process.Start()DukeDidntNukeEm
SO - it's OK to help a beginner with simplified, step by step examples with many details stripped away. Also ok to use caps :P
Sushant Poojary
I just needed a quick way to execute the exe and this was really helpful. Thank you :)
Look at Process.Start and Process.StartInfo
1 Comment
Peter Mortensen
Can you make your answer more comprehensive? And/or point to a duplicate?