Process.Start Метод

Определение

Запускает ресурс процесса и связывает его с компонентом Process.Starts a process resource and associates it with a Process component.

Перегрузки

Start()

Запускает (или повторно использует) ресурс процесса, определенный свойством StartInfo этого компонента Process, и связывает его с компонентом.Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.

Start(ProcessStartInfo)

Запускает ресурс процесса, определенный параметром, содержащим стартовую информацию процесса (например, имя файла запускаемого процесса), и связывает ресурс с новым компонентом Process.Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new Process component.

Start(String)

Запускает ресурс процесса путем указания имени документа или файла приложения и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

Start(String, String)

Запускает ресурс процесса путем указания имени приложения и набора аргументов командной строки и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new Process component.

Start(String, String, SecureString, String)

Запускает ресурс процесса путем указания имени приложения, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new Process component.

Start(String, String, String, SecureString, String)

Запускает ресурс процесса путем указания имени приложения, набора аргументов командной строки, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new Process component.

Start()

Запускает (или повторно использует) ресурс процесса, определенный свойством StartInfo этого компонента Process, и связывает его с компонентом.Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.

public:
 bool Start();
public bool Start ();
member this.Start : unit -> bool
Public Function Start () As Boolean

Возвраты

Значение true, если ресурс процесса запущен; значение false, если новый ресурс процесса не был запущен (например, при повторном использовании существующего процесса).true if a process resource is started; false if no new process resource is started (for example, if an existing process is reused).

Исключения

Имя файла не было указано в свойстве StartInfo компонента Process.No file name was specified in the Process component's StartInfo. - или- Член UseShellExecute свойства StartInfo имеет значение true, тогда как RedirectStandardInput, RedirectStandardOutput или RedirectStandardError имеет значение true.-or- The UseShellExecute member of the StartInfo property is true while RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError is true.

Произошла ошибка при открытии связанного файла.There was an error in opening the associated file.

Объект процесса уже удален.The process object has already been disposed.

Метод не поддерживается в операционных системах без поддержки оболочки, таких как Nano Server (только в .NET Core).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

Примеры

В следующем примере для запуска процесса используется экземпляр класса Process.The following example uses an instance of the Process class to start a process.

#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 is 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 is 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 is 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

Комментарии

Используйте эту перегрузку для запуска ресурса процесса и связывания его с текущим компонентом Process.Use this overload to start a process resource and associate it with the current Process component. Возвращаемое значение true указывающее, что был запущен новый ресурс процесса.The return value true indicates that a new process resource was started. Если ресурс процесса, указанный членом FileName свойства StartInfo, уже выполняется на компьютере, дополнительный ресурс процесса не запускается.If the process resource specified by the FileName member of the StartInfo property is already running on the computer, no additional process resource is started. Вместо этого выполняется повторное использование ресурса выполняющегося процесса и возвращается false.Instead, the running process resource is reused and false is returned.

Приложение ClickOnce можно запустить, указав расположение (например, веб-адрес), из которого изначально было установлено приложение.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. Не запускайте приложение ClickOnce, указав его расположение на жестком диске.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Примечание

Если вы используете Visual Studio, эта перегрузка метода Start вставляется в код после перетаскивания компонента Process на конструктор.If you are using Visual Studio, this overload of the Start method is the one that you insert into your code after you drag a Process component onto the designer. Используйте окно Properties, чтобы развернуть категорию StartInfo и записать соответствующее значение в свойство FileName.Use the Properties window to expand the StartInfo category and write the appropriate value into the FileName property. Изменения будут отображаться в InitializeComponentной процедуре формы.Your changes will appear in the form's InitializeComponent procedure.

Эта перегрузка Start не является методом static.This overload of Start is not a static method. Его необходимо вызвать из экземпляра класса Process.You must call it from an instance of the Process class. Перед вызовом Startнеобходимо сначала указать StartInfo сведения о свойствах для этого экземпляра Process, так как эти сведения используются для определения запускаемого ресурса процесса.Before calling Start, you must first specify StartInfo property information for this Process instance, because that information is used to determine the process resource to start.

Другие перегрузки метода Start являются static членами.The other overloads of the Start method are static members. Не нужно создавать экземпляр компонента Process перед вызовом этих перегрузок метода.You do not need to create an instance of the Process component before you call those overloads of the method. Вместо этого можно вызвать Start для самого класса Process и создать новый компонент Process, если процесс был запущен.Instead, you can call Start for the Process class itself, and a new Process component is created if the process was started. Или, если процесс был использован повторно, возвращается null.Or, null is returned if a process was reused. Ресурс процесса автоматически связывается с новым компонентом Process, который возвращается методом Start.The process resource is automatically associated with the new Process component that is returned by the Start method.

Члены StartInfo можно использовать для дублирования функциональных возможностей диалогового окна Run меню Start Windows.The StartInfo members can be used to duplicate the functionality of the Run dialog box of the Windows Start menu. Все, что можно ввести в командную строку, можно запустить, задав соответствующие значения в свойстве StartInfo.Anything that can be typed into a command line can be started by setting the appropriate values in the StartInfo property. Единственным свойством StartInfo, которое необходимо задать, является свойство FileName.The only StartInfo property that must be set is the FileName property. Свойство FileName не обязательно должно быть исполняемым файлом.The FileName property does not have to be an executable file. Это может быть любой тип файлов, для которого расширение было связано с приложением, установленным в системе.It can be of any file type for which the extension has been associated with an application that is installed on the system. Например, свойство FileName может иметь расширение txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или иметь расширение DOC, если у вас есть связанные DOC-файлы с инструментом обработки текста, например Microsoft Word.For example, the FileName property can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc extension if you have associated.doc files with a word processing tool, such as Microsoft Word.

В командной строке можно указать действия, выполняемые для определенных типов файлов.In the command line, you can specify actions to take for certain types of files. Например, можно печатать документы или редактировать текстовые файлы.For example, you can print documents or edit text files. Укажите эти действия с помощью элемента Verb свойства StartInfo.Specify these actions using the Verb member of the StartInfo property. Для других типов файлов можно указать аргументы командной строки при запуске файла из диалогового окна Run.For other types of files, you can specify command-line arguments when you start the file from the Run dialog box. Например, можно передать URL-адрес в качестве аргумента, если в качестве FileNameуказан браузер.For example, you can pass a URL as an argument if you specify your browser as the FileName. Эти аргументы можно указать в элементе Arguments StartInfo свойства.These arguments can be specified in the StartInfo property's Arguments member.

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. В противном случае система не найдет этот путь.Otherwise, the system will not find the path. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Примечание

Код веб-страницы и серверного элемента управления ASP.NET выполняется в контексте рабочего процесса ASP.NET на веб-сервере.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. При использовании метода Start на веб-странице ASP.NET или серверном элементе управления новый процесс выполняется на веб-сервере с ограниченными разрешениями.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.The process does not start in the same context as the client browser, and does not have access to the user desktop.

При использовании Start для запуска процесса может потребоваться закрыть его или вы рискуете потерять системные ресурсы.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Закройте процессы с помощью CloseMainWindow или Kill.Close processes using CloseMainWindow or Kill. Вы можете проверить, был ли уже закрыт процесс, используя его свойство HasExited.You can check whether a process has already been closed by using its HasExited property.

Примечание о состояниях апартамента в управляемых потоках необходимо здесь.A note about apartment states in managed threads is necessary here. Если UseShellExecute true в свойстве StartInfo компонента Process, убедитесь, что для приложения установлен потоковая модель, установив атрибут [STAThread] в методе main().When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. В противном случае управляемый поток может находиться в unknown состоянии или поставляться в MTAном состоянии, второе из которых конфликтует с UseShellExecute true.Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Для некоторых методов требуется, чтобы состояние апартамента не было unknown.Some methods require that the apartment state not be unknown. Если состояние не задано явно, то, когда приложение встречает такой метод, по умолчанию используется MTA, и после установки состояние апартамента не может быть изменено.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Однако MTA вызывает исключение, если оболочка операционной системы управляет потоком.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Безопасность

LinkDemand
Полный уровень доверия для непосредственного вызывающего.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

Дополнительно

Start(ProcessStartInfo)

Запускает ресурс процесса, определенный параметром, содержащим стартовую информацию процесса (например, имя файла запускаемого процесса), и связывает ресурс с новым компонентом Process.Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process Start (System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process

Параметры

startInfo
ProcessStartInfo

Объект ProcessStartInfo, который содержит информацию, использующуюся для запуска процесса, включая имя файла и все аргументы командной строки.The ProcessStartInfo that contains the information that is used to start the process, including the file name and any command-line arguments.

Возвраты

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен.A new Process that is associated with the process resource, or null if no process resource is started. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true.In addition, Start may return a non-null Process with its HasExited property already set to true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.In this case, the started process may have activated an existing instance of itself and then exited.

Исключения

Имя файла не было указано в свойстве FileName параметра startInfo.No file name was specified in the startInfo parameter's FileName property.

- или --or- Свойство UseShellExecute параметраstartInfo имеет значение true и RedirectStandardInput, RedirectStandardOutput или свойство RedirectStandardError также имеет значение true.The UseShellExecute property of the startInfo parameter is true and the RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError property is also true.

- или --or- Свойство UseShellExecute параметра startInfo имеет значение true, и свойство UserName не равно null или не является пустым или свойство Password не равно null.The UseShellExecute property of the startInfo parameter is true and the UserName property is not null or empty or the Password property is not null.

Параметр startInfo имеет значение null.The startInfo parameter is null.

Объект процесса уже удален.The process object has already been disposed.

Возникла ошибка при открытии связанного файла.An error occurred when opening the associated file.

- или --or- Файл, указанный в свойстве FileName параметра startInfo, не найден.The file specified in the startInfo parameter's FileName property could not be found.

- или --or- Сумма длины аргументов и длины полного пути к процессу превышает 2080.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. Сообщение об ошибке, связанной с этим исключением, может иметь следующую формулировку: "Область данных, переданная системному вызову, слишком мала".The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." или "Отказано в доступе".or "Access is denied."

Метод не поддерживается в операционных системах без поддержки оболочки, таких как Nano Server (только в .NET Core).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

Примеры

Следующий пример сначала порождает экземпляр Internet Explorer и отображает содержимое папки «Избранное» в браузере.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Наконец, запускается Internet Explorer с окном, которое свернется при переходе на конкретный сайт.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

Дополнительные примеры других способов использования этого метода см. в отдельных свойствах класса ProcessStartInfo.For additional examples of other uses of this method, refer to the individual properties of the ProcessStartInfo class.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens urls and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' url's are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Комментарии

Используйте эту перегрузку для запуска ресурса процесса путем указания экземпляра ProcessStartInfo.Use this overload to start a process resource by specifying a ProcessStartInfo instance. Перегрузка связывает ресурс с новым объектом Process.The overload associates the resource with a new Process object.

Примечание

Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и возвращается null.If the address of the executable file to start is a URL, the process is not started and null is returned.

Эта перегрузка позволяет запустить процесс без предварительного создания нового Process экземпляра.This overload lets you start a process without first creating a new Process instance. Использование этой перегрузки с параметром ProcessStartInfo является альтернативой явным шагам при создании нового экземпляра Process, установке его свойств StartInfo и вызове Start для экземпляра Process.Using this overload with a ProcessStartInfo parameter is an alternative to the explicit steps of creating a new Process instance, setting its StartInfo properties, and calling Start for the Process instance.

Использование экземпляра ProcessStartInfo в качестве параметра позволяет вызвать Start с наибольшим контролем над тем, что передается в вызов для запуска процесса.Using a ProcessStartInfo instance as the parameter lets you call Start with the most control over what is passed into the call to start the process. Если необходимо передать только имя файла или имя файла и аргументы, не нужно создавать новый экземпляр ProcessStartInfo, хотя это параметр.If you need to pass only a file name or a file name and arguments, it is not necessary to create a new ProcessStartInfo instance, although that is an option. Единственным свойством Process.StartInfo, которое необходимо задать, является свойство FileName.The only Process.StartInfo property that must be set is the FileName property. Свойству FileName не требуется представлять исполняемый файл.The FileName property does not need to represent an executable file. Это может быть любой тип файлов, для которого расширение было связано с приложением, установленным в системе.It can be of any file type for which the extension has been associated with an application that is installed on the system. Например, свойство FileName может иметь расширение txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или иметь расширение DOC, если у вас есть связанные DOC-файлы с инструментом обработки текста, например Microsoft Word.For example, the FileName property can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc extension if you have associated.doc files with a word processing tool, such as Microsoft Word.

Приложение ClickOnce можно запустить, указав расположение (например, веб-адрес), из которого изначально было установлено приложение.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. Не запускайте приложение ClickOnce, указав его расположение на жестком диске.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Если заданы свойства ProcessStartInfo.UserName и ProcessStartInfo.Password экземпляра StartInfo, вызывается неуправляемая функция CreateProcessWithLogonW, которая запускает процесс в новом окне, даже если значение свойства ProcessStartInfo.CreateNoWindow равно true или значение свойства ProcessStartInfo.WindowStyle равно ProcessWindowStyle.Hidden.If the ProcessStartInfo.UserName and ProcessStartInfo.Password properties of the StartInfo instance are set, the unmanaged CreateProcessWithLogonW function is called, which starts the process in a new window even if the ProcessStartInfo.CreateNoWindow property value is true or the ProcessStartInfo.WindowStyle property value is ProcessWindowStyle.Hidden. Если свойство ProcessStartInfo.Domain имеет значение null, свойство ProcessStartInfo.UserName должно иметь формат UPN, пользователь@DNS_domain_name.If the ProcessStartInfo.Domain property is null, the ProcessStartInfo.UserName property must be in UPN format, user@DNS_domain_name.

В отличие от других перегрузок, перегрузка Start, не имеющая параметров, не является static членом.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Используйте эту перегрузку, если вы уже создали экземпляр Process, указали начальную информацию (включая имя файла) и хотите запустить ресурс процесса и связать его с существующим экземпляром Process.Use that overload when you have already created a Process instance, specified start information (including the file name), and want to start a process resource and associate it with the existing Process instance. Используйте один из static перегрузок, если нужно создать новый Process компонент, а не запускать процесс для существующего компонента.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Как эта перегрузка, так и перегрузка, не имеющая параметров, позволяют указать начальную информацию для ресурса процесса с помощью экземпляра ProcessStartInfo.Both this overload and the overload that has no parameters allow you to specify the start information for the process resource by using a ProcessStartInfo instance.

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. В противном случае система не найдет этот путь.Otherwise, the system will not find the path. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Примечание

Код веб-страницы и серверного элемента управления ASP.NET выполняется в контексте рабочего процесса ASP.NET на веб-сервере.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. При использовании метода Start на веб-странице ASP.NET или серверном элементе управления новый процесс выполняется на веб-сервере с ограниченными разрешениями.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.The process does not start in the same context as the client browser, and does not have access to the user desktop.

При использовании Start для запуска процесса может потребоваться закрыть его или вы рискуете потерять системные ресурсы.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Закройте процессы с помощью CloseMainWindow или Kill.Close processes using CloseMainWindow or Kill. Вы можете проверить, был ли уже закрыт процесс, используя его свойство HasExited.You can check whether a process has already been closed by using its HasExited property.

Примечание о состояниях апартамента в управляемых потоках необходимо здесь.A note about apartment states in managed threads is necessary here. Если UseShellExecute true в параметре startInfo, убедитесь, что для приложения задана потоковая модель, установив атрибут [STAThread] в методе main().When UseShellExecute is true on the startInfo parameter, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. В противном случае управляемый поток может находиться в unknown состоянии или поставляться в MTAном состоянии, второе из которых конфликтует с UseShellExecute true.Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Для некоторых методов требуется, чтобы состояние апартамента не было unknown.Some methods require that the apartment state not be unknown. Если состояние не задано явно, то, когда приложение встречает такой метод, по умолчанию используется MTA, и после установки состояние апартамента не может быть изменено.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Однако MTA вызывает исключение, если оболочка операционной системы управляет потоком.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Безопасность

LinkDemand
Полный уровень доверия для непосредственного вызывающего.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

Дополнительно

Start(String)

Запускает ресурс процесса путем указания имени документа или файла приложения и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Параметры

fileName
String

Имя документа или файла приложения для запуска в процессе.The name of a document or application file to run in the process.

Возвраты

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен.A new Process that is associated with the process resource, or null if no process resource is started. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true.In addition, Start may return a non-null Process with its HasExited property already set to true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.In this case, the started process may have activated an existing instance of itself and then exited.

Исключения

Возникла ошибка при открытии связанного файла.An error occurred when opening the associated file.

- или --or-

Не удалось найти файл, указанный в fileName.The file specified in the fileName could not be found.

Объект процесса уже удален.The process object has already been disposed.

Переменная среды PATH содержит строку с кавычками.The PATH environment variable has a string containing quotes.

Примеры

Следующий пример сначала порождает экземпляр Internet Explorer и отображает содержимое папки «Избранное» в браузере.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Наконец, запускается Internet Explorer с окном, которое свернется при переходе на конкретный сайт.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens urls and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' url's are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Комментарии

Используйте эту перегрузку для запуска ресурса процесса путем указания его имени файла.Use this overload to start a process resource by specifying its file name. Перегрузка связывает ресурс с новым объектом Process.The overload associates the resource with a new Process object.

Примечание

Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и возвращается null.If the address of the executable file to start is a URL, the process is not started and null is returned.

Эта перегрузка позволяет запустить процесс без предварительного создания нового Process экземпляра.This overload lets you start a process without first creating a new Process instance. Перегрузка является альтернативой явным шагам создания нового экземпляра Process, установки FileName элемента свойства StartInfo и вызова Start для экземпляра Process.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName member of the StartInfo property, and calling Start for the Process instance.

Приложение ClickOnce можно запустить, присвоив параметру fileName расположение (например, веб-адрес), из которого изначально было установлено приложение.You can start a ClickOnce application by setting the fileName parameter to the location (for example, a Web address) from which you originally installed the application. Не запускайте приложение ClickOnce, указав его расположение на жестком диске.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Запуск процесса путем указания имени файла аналогичен вводу сведений в диалоговом окне Run меню Start Windows.Starting a process by specifying its file name is similar to typing the information in the Run dialog box of the Windows Start menu. Таким образом, имя файла не должно представлять исполняемый файл.Therefore, the file name does not need to represent an executable file. Это может быть любой тип файлов, для которого расширение было связано с приложением, установленным в системе.It can be of any file type for which the extension has been associated with an application installed on the system. Например, имя файла может иметь расширение txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или файл. doc, если у вас есть связанные DOC-файлы с инструментом обработки текста, например Microsoft Word.For example the file name can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc if you have associated.doc files with a word processing tool, such as Microsoft Word. Аналогично, так же, как диалоговое окно Run может принимать имя исполняемого файла с расширением exe или без него, расширение EXE является необязательным в параметре fileName.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Например, можно задать для параметра fileName значение «Notepad. exe» или «Notepad».For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad".

Эта перегрузка не позволяет использовать аргументы командной строки для процесса.This overload does not allow command-line arguments for the process. Если необходимо указать один или несколько аргументов командной строки для процесса, используйте перегрузки Process.Start(ProcessStartInfo) или Process.Start(String, String).If you need to specify one or more command-line arguments for the process, use the Process.Start(ProcessStartInfo) or Process.Start(String, String) overloads.

В отличие от других перегрузок, перегрузка Start, не имеющая параметров, не является static членом.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Используйте эту перегрузку, если вы уже создали экземпляр Process, указали начальную информацию (включая имя файла) и хотите запустить ресурс процесса и связать его с существующим экземпляром Process.Use that overload when you have already created a Process instance, specified start information (including the file name), and want to start a process resource and associate it with the existing Process instance. Используйте один из static перегрузок, если нужно создать новый Process компонент, а не запускать процесс для существующего компонента.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Как эта перегрузка, так и перегрузка, не имеющая параметров, позволяют указать имя файла запускаемого ресурса процесса.Both this overload and the overload that has no parameters allow you to specify the file name of the process resource to start.

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. В противном случае система не найдет этот путь.Otherwise, the system will not find the path. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Примечание

Код веб-страницы и серверного элемента управления ASP.NET выполняется в контексте рабочего процесса ASP.NET на веб-сервере.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. При использовании метода Start на веб-странице ASP.NET или серверном элементе управления новый процесс выполняется на веб-сервере с ограниченными разрешениями.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.The process does not start in the same context as the client browser, and does not have access to the user desktop.

При использовании Start для запуска процесса может потребоваться закрыть его или вы рискуете потерять системные ресурсы.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Закройте процессы с помощью CloseMainWindow или Kill.Close processes using CloseMainWindow or Kill. Вы можете проверить, был ли уже закрыт процесс, используя его свойство HasExited.You can check whether a process has already been closed by using its HasExited property.

Примечание о состояниях апартамента в управляемых потоках необходимо здесь.A note about apartment states in managed threads is necessary here. Если UseShellExecute true в свойстве StartInfo компонента Process, убедитесь, что для приложения установлен потоковая модель, установив атрибут [STAThread] в методе main().When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. В противном случае управляемый поток может находиться в unknown состоянии или поставляться в MTAном состоянии, второе из которых конфликтует с UseShellExecute true.Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Для некоторых методов требуется, чтобы состояние апартамента не было unknown.Some methods require that the apartment state not be unknown. Если состояние не задано явно, то, когда приложение встречает такой метод, по умолчанию используется MTA, и после установки состояние апартамента не может быть изменено.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Однако MTA вызывает исключение, если оболочка операционной системы управляет потоком.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Безопасность

LinkDemand
Полный уровень доверия для непосредственного вызывающего.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

Дополнительно

Start(String, String)

Запускает ресурс процесса путем указания имени приложения и набора аргументов командной строки и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process

Параметры

fileName
String

Имя файла приложения для запуска в процессе.The name of an application file to run in the process.

arguments
String

Аргументы командной строки для передачи при запуске процесса.Command-line arguments to pass when starting the process.

Возвраты

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен.A new Process that is associated with the process resource, or null if no process resource is started. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true.In addition, Start may return a non-null Process with its HasExited property already set to true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.In this case, the started process may have activated an existing instance of itself and then exited.

Исключения

Значение параметра fileName или параметра argumentsnull.The fileName or arguments parameter is null.

Возникла ошибка при открытии связанного файла.An error occurred when opening the associated file.

- или --or-

Не удалось найти файл, указанный в fileName.The file specified in the fileName could not be found.

- или --or- Сумма длины аргументов и длины полного пути к процессу превышает 2080.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. Сообщение об ошибке, связанной с этим исключением, может иметь следующую формулировку: "Область данных, переданная системному вызову, слишком мала".The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." или "Отказано в доступе".or "Access is denied."

Объект процесса уже удален.The process object has already been disposed.

Переменная среды PATH содержит строку с кавычками.The PATH environment variable has a string containing quotes.

Примеры

Следующий пример сначала порождает экземпляр Internet Explorer и отображает содержимое папки «Избранное» в браузере.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Наконец, запускается Internet Explorer с окном, которое свернется при переходе на конкретный сайт.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens urls and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' url's are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Комментарии

Используйте эту перегрузку для запуска ресурса процесса путем указания его имени файла и аргументов командной строки.Use this overload to start a process resource by specifying its file name and command-line arguments. Перегрузка связывает ресурс с новым объектом Process.The overload associates the resource with a new Process object.

Примечание

Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и возвращается null.If the address of the executable file to start is a URL, the process is not started and null is returned.

Эта перегрузка позволяет запустить процесс без предварительного создания нового Process экземпляра.This overload lets you start a process without first creating a new Process instance. Перегрузка является альтернативой явным шагам создания нового экземпляра Process, установки FileName и Arguments элементов свойства StartInfo, а также вызова Start для экземпляра Process.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName and Arguments members of the StartInfo property, and calling Start for the Process instance.

Запуск процесса путем указания имени файла и аргументов аналогичен вводу имени файла и аргументов командной строки в диалоговом окне Run меню Start Windows.Starting a process by specifying its file name and arguments is similar to typing the file name and command-line arguments in the Run dialog box of the Windows Start menu. Таким образом, имя файла не должно представлять исполняемый файл.Therefore, the file name does not need to represent an executable file. Это может быть любой тип файлов, для которого расширение было связано с приложением, установленным в системе.It can be of any file type for which the extension has been associated with an application installed on the system. Например, имя файла может иметь расширение txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или файл. doc, если у вас есть связанные DOC-файлы с инструментом обработки текста, например Microsoft Word.For example the file name can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc if you have associated.doc files with a word processing tool, such as Microsoft Word. Аналогично, так же, как диалоговое окно Run может принимать имя исполняемого файла с расширением exe или без него, расширение EXE является необязательным в параметре fileName.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Например, можно задать для параметра fileName значение «Notepad. exe» или «Notepad».For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Если параметр fileName представляет исполняемый файл, параметр arguments может представлять файл для работы, например текстовый файл в Notepad.exe myfile.txt.If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt. Если параметр fileName представляет файл команды (cmd), параметр arguments должен включать аргумент "/c" или "/k", чтобы указать, что окно команд завершает работу или остается после завершения.If the fileName parameter represents a command (.cmd) file, the arguments parameter must include either a "/c" or "/k" argument to specify whether the command window exits or remains after completion.

В отличие от других перегрузок, перегрузка Start, не имеющая параметров, не является static членом.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Используйте эту перегрузку, если вы уже создали экземпляр Process, указали начальную информацию (включая имя файла) и хотите запустить ресурс процесса и связать его с существующим экземпляром Process.Use that overload when you have already created a Process instance, specified start information (including the file name), and want to start a process resource and associate it with the existing Process instance. Используйте один из static перегрузок, если нужно создать новый Process компонент, а не запускать процесс для существующего компонента.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Как эта перегрузка, так и перегрузка, не имеющая параметров, позволяют указать имя файла запускаемого ресурса процесса и аргументы командной строки для передачи.Both this overload and the overload that has no parameters allow you to specify the file name of the process resource to start and command-line arguments to pass.

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. В противном случае система не найдет этот путь.Otherwise, the system will not find the path. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

Примечание

Код веб-страницы и серверного элемента управления ASP.NET выполняется в контексте рабочего процесса ASP.NET на веб-сервере.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. При использовании метода Start на веб-странице ASP.NET или серверном элементе управления новый процесс выполняется на веб-сервере с ограниченными разрешениями.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.The process does not start in the same context as the client browser, and does not have access to the user desktop.

При использовании Start для запуска процесса может потребоваться закрыть его или вы рискуете потерять системные ресурсы.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Закройте процессы с помощью CloseMainWindow или Kill.Close processes using CloseMainWindow or Kill. Вы можете проверить, был ли уже закрыт процесс, используя его свойство HasExited.You can check whether a process has already been closed by using its HasExited property.

Примечание о состояниях апартамента в управляемых потоках необходимо здесь.A note about apartment states in managed threads is necessary here. Если UseShellExecute true в свойстве StartInfo компонента Process, убедитесь, что для приложения установлен потоковая модель, установив атрибут [STAThread] в методе main().When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. В противном случае управляемый поток может находиться в unknown состоянии или поставляться в MTAном состоянии, второе из которых конфликтует с UseShellExecute true.Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. Для некоторых методов требуется, чтобы состояние апартамента не было unknown.Some methods require that the apartment state not be unknown. Если состояние не задано явно, то, когда приложение встречает такой метод, по умолчанию используется MTA, и после установки состояние апартамента не может быть изменено.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. Однако MTA вызывает исключение, если оболочка операционной системы управляет потоком.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Безопасность

LinkDemand
Полный уровень доверия для непосредственного вызывающего.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

Дополнительно

Start(String, String, SecureString, String)

Важно!

Этот API несовместим с CLS.

Запускает ресурс процесса путем указания имени приложения, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, userName As String, password As SecureString, domain As String) As Process

Параметры

fileName
String

Имя файла приложения для запуска в процессе.The name of an application file to run in the process.

userName
String

Имя пользователя, используемое при запуске процесса.The user name to use when starting the process.

password
SecureString

Объект SecureString, содержащий пароль для использования при запуске процесса.A SecureString that contains the password to use when starting the process.

domain
String

Домен, используемый при запуске процесса.The domain to use when starting the process.

Возвраты

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен.A new Process that is associated with the process resource, or null if no process resource is started. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true.In addition, Start may return a non-null Process with its HasExited property already set to true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.In this case, the started process may have activated an existing instance of itself and then exited.

Атрибуты

Исключения

Не указано имя файла.No file name was specified.

Произошла ошибка при открытии связанного файла.There was an error in opening the associated file.

- или --or-

Не удалось найти файл, указанный в fileName.The file specified in the fileName could not be found.

Объект процесса уже удален.The process object has already been disposed.

Этот элемент не поддерживается в Linux или macOS (только в .NET Core).This member is not supported on Linux or macOS (.NET Core only).

Примеры

В следующем примере кода показано использование этой перегрузки для запуска исполняемого файла, а также демонстрируется создание Win32Exception при попытке запустить приложение, связанное с неисполняемым файлом.The following code example shows the use of this overload to start an executable file and also demonstrates the throwing of a Win32Exception when an attempt is made to start an application associated with a nonexecutable file.

// NOTE: This example requires a text.txt file file in your Documents folder
using System;
using System.Diagnostics;
using System.Security;
using System.ComponentModel;

class Example
{
    static void Main()
    {
        Console.Write("Enter your domain: ");
        string domain = Console.ReadLine();
        Console.Write("Enter you user name: ");
        string uname = Console.ReadLine();
        Console.Write("Enter your password: ");
        SecureString password = new SecureString();
        ConsoleKeyInfo key;
        do
        {
            key = Console.ReadKey(true);

            // Ignore any key out of range.
            if (((int)key.Key) >= 33 && ((int)key.Key <= 90) && key.Key != ConsoleKey.Enter)
            {
                // Append the character to the password.
                password.AppendChar(key.KeyChar);
                Console.Write("*");
            }
            // Exit if Enter key is pressed.
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();

        try
        {
            Console.WriteLine("\nTrying to launch NotePad using your login information...");
            Process.Start("notepad.exe", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\";

        try
        {
            // The following call to Start succeeds if test.txt exists.
            Console.WriteLine("\nTrying to launch 'text.txt'...");
            Process.Start(path + "text.txt");
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        try
        {
            // Attempting to start in a shell using this Start overload fails. This causes
            // the following exception, which is picked up in the catch block below:
            // The specified executable is not a valid application for this OS platform.
            Console.WriteLine("\nTrying to launch 'text.txt' with your login information...");
            Process.Start(path + "text.txt", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            password.Dispose();
        }
    }
}
' This sample requires a text.txt file file in your documents folder.
' You'll also need to set the startup object in the project to Sub Main.
Imports System.Diagnostics
Imports System.Security
Imports System.ComponentModel

Module Program
    Sub Main()
        Console.Write("Enter your domain: ")
        Dim domain As String = Console.ReadLine()
        Console.Write("Enter you user name: ")
        Dim uname As String = Console.ReadLine()
        Console.Write("Enter your password: ")
        Dim password As New SecureString()
        Dim key As ConsoleKeyInfo
        Do
            key = Console.ReadKey(True)

            ' Ignore any key out of range.
            If key.Key >= 33 AndAlso key.Key <= 90 AndAlso key.Key <> ConsoleKey.Enter Then
                ' Append the character to the password.
                password.AppendChar(key.KeyChar)
                Console.Write("*")
            End If
            ' Exit if Enter key is pressed.
        Loop While key.Key <> ConsoleKey.Enter
        Console.WriteLine()

        Try
            Console.WriteLine(vbCrLf + "Trying to launch NotePad using your login information...")
            Process.Start("notepad.exe", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\"

        Try
            ' The following call to Start succeeds if test.txt exists.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt'...")
            Process.Start(path + "Text.txt")
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Try
            ' Attempting to start in a shell using this Start overload fails. This causes
            ' the following exception, which is picked up in the catch block below:
            ' The specified executable is not a valid application for this OS platform.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt' with your login information...")
            Process.Start(path + "Text.txt", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        Finally
            password.Dispose()
        End Try
    End Sub
End Module

Комментарии

Используйте эту перегрузку для создания нового процесса и его основного потока путем указания имени файла, имени пользователя, пароля и домена.Use this overload to create a new process and its primary thread by specifying its file name, user name, password, and domain. Затем новый процесс запускает указанный исполняемый файл в контексте безопасности указанных учетных данных (пользователя, домена и пароля).The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

Примечание

Если исполняемый файл находится на удаленном диске, необходимо задать общую сетевую папку, используя универсальный код ресурса (URI), а не букву связанного диска.When the executable file is located on a remote drive, you must identify the network share by using a uniform resource identifier (URI), not a linked drive letter.

Примечание

Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и возвращается null.If the address of the executable file to start is a URL, the process is not started and null is returned.

Эта перегрузка позволяет запустить процесс без предварительного создания нового Process экземпляра.This overload lets you start a process without first creating a new Process instance. Перегрузка является альтернативой явным шагам создания нового экземпляра Process, установки свойств FileName, UserName, Passwordи Domain свойства StartInfo, а также вызова Start для экземпляра Process.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName, UserName, Password, and Domain properties of the StartInfo property, and calling Start for the Process instance.

Аналогично, так же, как диалоговое окно Run (запуск ) может принимать имя исполняемого файла с расширением exe или без него, расширение EXE является необязательным в параметре fileName.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Например, можно задать для параметра fileName значение «Notepad. exe» или «Notepad».For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Если параметр fileName представляет исполняемый файл, параметр arguments может представлять файл для работы, например текстовый файл в Notepad.exe myfile.txt.If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt.

Примечание

Имя файла должно представлять исполняемый файл в Start перегрузок, имеющих параметры userName, passwordи domain.The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

При использовании Start для запуска процесса может потребоваться закрыть его или вы рискуете потерять системные ресурсы.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Закройте процессы с помощью CloseMainWindow или Kill.Close processes using CloseMainWindow or Kill. Вы можете проверить, был ли уже закрыт процесс, используя его свойство HasExited.You can check whether a process has already been closed by using its HasExited property.

Безопасность

LinkDemand
Полный уровень доверия для непосредственного вызывающего.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

Start(String, String, String, SecureString, String)

Важно!

Этот API несовместим с CLS.

Запускает ресурс процесса путем указания имени приложения, набора аргументов командной строки, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process

Параметры

fileName
String

Имя файла приложения для запуска в процессе.The name of an application file to run in the process.

arguments
String

Аргументы командной строки для передачи при запуске процесса.Command-line arguments to pass when starting the process.

userName
String

Имя пользователя, используемое при запуске процесса.The user name to use when starting the process.

password
SecureString

Объект SecureString, содержащий пароль для использования при запуске процесса.A SecureString that contains the password to use when starting the process.

domain
String

Домен, используемый при запуске процесса.The domain to use when starting the process.

Возвраты

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен.A new Process that is associated with the process resource, or null if no process resource is started. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true.In addition, Start may return a non-null Process with its HasExited property already set to true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.In this case, the started process may have activated an existing instance of itself and then exited.

Атрибуты

Исключения

Не указано имя файла.No file name was specified.

Возникла ошибка при открытии связанного файла.An error occurred when opening the associated file.

- или --or-

Не удалось найти файл, указанный в fileName.The file specified in the fileName could not be found.

- или --or- Сумма длины аргументов и длины полного пути к соответствующему файлу превышает 2080.The sum of the length of the arguments and the length of the full path to the associated file exceeds 2080. Сообщение об ошибке, связанной с этим исключением, может иметь следующую формулировку: "Область данных, переданная системному вызову, слишком мала".The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." или "Отказано в доступе".or "Access is denied."

Объект процесса уже удален.The process object has already been disposed.

Этот элемент не поддерживается в Linux или macOS (только в .NET Core).This member is not supported on Linux or macOS (.NET Core only).

Комментарии

Используйте эту перегрузку для создания нового процесса и его основного потока путем указания имени файла, аргументов командной строки, имени пользователя, пароля и домена.Use this overload to create a new process and its primary thread by specifying its file name, command-line arguments, user name, password, and domain. Затем новый процесс запускает указанный исполняемый файл в контексте безопасности указанных учетных данных (пользователя, домена и пароля).The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

Примечание

Если исполняемый файл находится на удаленном диске, необходимо задать общую сетевую папку, используя универсальный код ресурса (URI), а не букву связанного диска.When the executable file is located on a remote drive, you must identify the network share by using a uniform resource identifier (URI), not a linked drive letter.

Примечание

Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и возвращается null.If the address of the executable file to start is a URL, the process is not started and null is returned.

Эта перегрузка позволяет запустить процесс без предварительного создания нового Process экземпляра.This overload lets you start a process without first creating a new Process instance. Перегрузка является альтернативой явным шагам создания нового экземпляра Process, установки свойств FileName, Arguments, UserName, Passwordи Domain свойства StartInfo, а также вызова Start для экземпляра Process.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName, Arguments, UserName, Password, and Domain properties of the StartInfo property, and calling Start for the Process instance.

Аналогично, так же, как диалоговое окно Run (запуск ) может принимать имя исполняемого файла с расширением exe или без него, расширение EXE является необязательным в параметре fileName.Similarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. Например, можно задать для параметра fileName значение «Notepad. exe» или «Notepad».For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Если параметр fileName представляет исполняемый файл, параметр arguments может представлять файл для работы, например текстовый файл в Notepad.exe myfile.txt.If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt.

Примечание

Имя файла должно представлять исполняемый файл в Start перегрузок, имеющих параметры userName, passwordи domain.The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

При использовании Start для запуска процесса может потребоваться закрыть его или вы рискуете потерять системные ресурсы.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Закройте процессы с помощью CloseMainWindow или Kill.Close processes using CloseMainWindow or Kill. Вы можете проверить, был ли уже закрыт процесс, используя его свойство HasExited.You can check whether a process has already been closed by using its HasExited property.

Безопасность

LinkDemand
Полный уровень доверия для непосредственного вызывающего.for full trust for the immediate caller. Этот член не может быть использован частично доверенным кодом.This member cannot be used by partially trusted code.

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