Поделиться через


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;
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);
            }
        }
    }
}
open System.Diagnostics

try
    use 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() |> ignore
// 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.
with e ->
    printfn $"{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.PasswordProcessStartInfo.UserName набором свойств вызывается неуправляемая CreateProcessWithLogonW функция, которая запускает процесс в новом окне, даже если CreateNoWindow значение свойства имеет true значение или WindowStyle значение Hiddenсвойства.

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

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

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

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