Запуск приложения (.EXE) из C #? - PullRequest
148 голосов
/ 27 октября 2008

Как я могу запустить приложение, используя C #?

Требования: Должен работать на Windows XP и Windows Vista .

Я видел образец сэмплера DinnerNow.net, который работает только в Windows Vista.

Ответы [ 10 ]

216 голосов
/ 27 октября 2008

Вот фрагмент полезного кода:

using System.Diagnostics;

// Prepare the process to run
ProcessStartInfo start = new ProcessStartInfo();
// Enter in the command line arguments, everything you would enter after the executable name itself
start.Arguments = arguments; 
// Enter the executable to run, including the complete path
start.FileName = ExeName;
// Do you want to show a console window?
start.WindowStyle = ProcessWindowStyle.Hidden;
start.CreateNoWindow = true;
int exitCode;


// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
     proc.WaitForExit();

     // Retrieve the app's exit code
     exitCode = proc.ExitCode;
}

С этими объектами можно сделать гораздо больше, вам следует прочитать документацию: ProcessStartInfo , Процесс .

155 голосов
/ 27 октября 2008

Использование System.Diagnostics.Process.Start() метод.

Ознакомьтесь с этой статьей о том, как ее использовать.

55 голосов
/ 27 октября 2008
System.Diagnostics.Process.Start("PathToExe.exe");
17 голосов
/ 13 октября 2009
System.Diagnostics.Process.Start( @"C:\Windows\System32\Notepad.exe" );
13 голосов
/ 04 июня 2014

Если у вас есть проблемы с использованием System.Diagnostics, как у меня, используйте следующий простой код, который будет работать без него:

Process notePad = new Process();
notePad.StartInfo.FileName   = "notepad.exe";
notePad.StartInfo.Arguments = "mytextfile.txt";
notePad.Start();
8 голосов
/ 27 октября 2008

Кроме того, вы можете использовать переменные среды для ваших путей, если это возможно: http://en.wikipedia.org/wiki/Environment_variable#Default_Values_on_Microsoft_Windows

Е.Г.

  • % WINDIR% = Каталог Windows
  • % APPDATA% = Данные приложения - Варьируется между Vista и XP.

Есть много других, посмотрите ссылку для более длинного списка.

5 голосов
/ 01 декабря 2017

Адам Кейн

System.Diagnostics.Process.Start(@"C:\Windows\System32\Notepad.exe");

это отлично сработало !!!!!

1 голос
/ 07 июня 2016

Попробуйте это:

Process.Start("Location Of File.exe");

(Убедитесь, что вы используете библиотеку System.Diagnostics)

1 голос
/ 15 апреля 2016

Просто поместите файл file.exe в папку \ bin \ Debug и используйте:

Process.Start("File.exe");
0 голосов
/ 27 августа 2015

Используйте Process.Start , чтобы запустить процесс.

using System.Diagnostics;
class Program
{
    static void Main()
    {
    //
    // your code
    //
    Process.Start("C:\\process.exe");
    }
} 
...