Process.StartInfo Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
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 свойства. Эти свойства используются только для инициализации связанного процесса.