Process.StartInfo Свойство

Определение

Получает или задает свойства для передачи их методу Start() объекта Process.

public:
 property System::Diagnostics::ProcessStartInfo ^ StartInfo { System::Diagnostics::ProcessStartInfo ^ get(); void set(System::Diagnostics::ProcessStartInfo ^ value); };
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
[System.ComponentModel.Browsable(false)]
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
[<System.ComponentModel.Browsable(false)>]
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
Public Property StartInfo As ProcessStartInfo

Значение свойства

Класс ProcessStartInfo, который представляет данные для запуска процесса. Эти аргументы включают имя исполняемого файла или документа, использованного для запуска процесса.

Атрибуты

Исключения

Значение, указывающее StartInfo, равняется null.

Только .NET Core и .NET 5+: метод Start() не использовался для запуска процесса.

Примеры

В следующем примере заполняется StartInfo файлом для выполнения, действием, выполненным над ним, и указывает, должен ли он отображать пользовательский интерфейс. Дополнительные примеры см. на страницах ссылок для свойств ProcessStartInfo класса .

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

int main()
{
    Process^ myProcess = gcnew Process;

    try
    {
        myProcess->StartInfo->UseShellExecute = false;
        // You can start any process, HelloWorld is a do-nothing example.
        myProcess->StartInfo->FileName = "C:\\HelloWorld.exe";
        myProcess->StartInfo->CreateNoWindow = true;
        myProcess->Start();
        // This code assumes the process you are starting will terminate itself. 
        // Given that it is started without a window so you cannot terminate it 
        // on the desktop, it must terminate itself or you can do it programmatically
        // from this application using the Kill method.
    }
    catch ( Exception^ e ) 
    {
        Console::WriteLine( e->Message );
    }
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.UseShellExecute = false;
                    // You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
                    myProcess.StartInfo.CreateNoWindow = true;
                    myProcess.Start();
                    // This code assumes the process you are starting will terminate itself.
                    // Given that it is started without a window so you cannot terminate it
                    // on the desktop, it must terminate itself or you can do it programmatically
                    // from this application using the Kill method.
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Public Shared Sub Main()
            Try
                Using myProcess As New Process()

                    myProcess.StartInfo.UseShellExecute = False
                    ' You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
                    myProcess.StartInfo.CreateNoWindow = True
                    myProcess.Start()
                    ' This code assumes the process you are starting will terminate itself. 
                    ' Given that it is started without a window so you cannot terminate it 
                    ' on the desktop, it must terminate itself or you can do it programmatically
                    ' from this application using the Kill method.
                End Using
            Catch e As Exception
                Console.WriteLine((e.Message))
            End Try
        End Sub
    End Class
End Namespace

Комментарии

StartInfo представляет набор параметров, используемых для запуска процесса. При Start вызове StartInfo используется для указания запуска процесса. Единственным необходимым StartInfo элементом, который необходимо задать, FileName является свойство . Запуск процесса с указанием FileName свойства аналогичен вводу сведений в диалоговом окне Запуск меню "Пуск" Windows. Таким образом FileName , свойство не обязательно представлять исполняемый файл. Он может иметь любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, FileName может иметь расширение .txt, если вы связали текстовые файлы с редактором, например Блокнот, или .doc, если вы связали .doc файлы с текстовым инструментом, таким как Microsoft Word. Точно так же, как диалоговое окно Запуск может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe является необязательным в элементе FileName . Например, можно задать FileName для свойства значение "Notepad.exe" или "Блокнот".

Вы можете запустить приложение ClickOnce, задав FileName для свойства расположение (например, веб-адрес), с которого вы изначально установили приложение. Не запускайте приложение ClickOnce, указав его установленное расположение на жестком диске.

Если имя файла включает неисполняемый файл, например файл .doc, можно включить команду, указывающую, какое действие следует выполнить с файлом. Например, можно задать для Verb параметра значение "Печать" для файла, заканчивающегося расширением .doc. Имя файла, указанное в свойстве FileName , не требует расширения, если вы вручную введете Verb значение свойства . Однако если вы используете Verbs свойство для определения доступных команд, необходимо включить расширение.

Параметры, указанные в свойстве StartInfo , можно изменить до момента вызова Start метода в процессе. После запуска процесса изменение значений StartInfo не повлияет на связанный процесс или не перезапустит его. При вызове Start(ProcessStartInfo) метода с заданными ProcessStartInfo.UserName свойствами и ProcessStartInfo.Password вызывается неуправляемая CreateProcessWithLogonW функция, которая запускает процесс в новом окне, даже если CreateNoWindow значение свойства равно true или WindowStyle значение свойства равно Hidden.

Доступ к свойству StartInfo следует получить только для объекта, Process возвращаемого методом Start . Например, не следует обращаться к свойству StartInfo объекта, возвращаемого ProcessGetProcesses. В противном случае в .NET Core StartInfo свойство вызовет объект , InvalidOperationException а в платформа .NET Framework возвращает фиктивный ProcessStartInfo объект.

При запуске процесса имя файла — это файл, который заполняет свойство (только для чтения). MainModule Если вы хотите получить исполняемый файл, связанный с процессом после его запуска, используйте MainModule свойство . Если вы хотите задать исполняемый файл экземпляра Process , для которого не был запущен связанный процесс, используйте StartInfo элемент свойства FileName . Поскольку члены StartInfo свойства являются аргументами, которые передаются методу Start процесса, изменение FileName свойства после запуска связанного процесса не приведет к сбросу MainModule свойства. Эти свойства используются только для инициализации связанного процесса.

Применяется к

См. также раздел