Process.Start Метод

Определение

Запускает ресурс процесса и связывает его с компонентом Process.

Перегрузки

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

Запускает ресурс процесса путем указания имени приложения, набора аргументов командной строки, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.

Start(String, String, SecureString, String)

Запускает ресурс процесса путем указания имени приложения, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.

Start(String, String)

Запускает ресурс процесса путем указания имени приложения и набора аргументов командной строки и связывает ресурс с новым компонентом Process.

Start()

Запускает (или повторно использует) ресурс процесса, определенный свойством StartInfo этого компонента Process, и связывает его с компонентом.

Start(String)

Запускает ресурс процесса путем указания имени документа или файла приложения и связывает ресурс с новым компонентом Process.

Start(ProcessStartInfo)

Запускает ресурс процесса, определенный параметром, содержащим стартовую информацию процесса (например, имя файла запускаемого процесса), и связывает ресурс с новым компонентом Process.

Start(String, IEnumerable<String>)

Запускает ресурс процесса путем указания имени приложения и набора аргументов командной строки.

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

Важно!

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

Запускает ресурс процесса путем указания имени приложения, набора аргументов командной строки, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.

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)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
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

Имя файла приложения для запуска в процессе.

arguments
String

Аргументы командной строки для передачи при запуске процесса.

userName
String

Имя пользователя, используемое при запуске процесса.

password
SecureString

Объект SecureString, содержащий пароль для использования при запуске процесса.

domain
String

Домен, используемый при запуске процесса.

Возвращаемое значение

Process

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.

Атрибуты

Исключения

Не указано имя файла.

Возникла ошибка при открытии связанного файла.

-или-

Не удалось найти файл, указанный в fileName.

-или- Сумма длины аргументов и длины полного пути к соответствующему файлу превышает 2080. Сообщение об ошибке, связанной с этим исключением, может иметь следующую формулировку: "Область данных, переданная системному вызову, слишком мала" или "Отказано в доступе".

Объект процесса уже удален.

Этот элемент не поддерживается в Linux или macOS (только в .NET Core).

Комментарии

Используйте эту перегрузку для создания нового процесса и его основного потока, указав его имя файла, аргументы командной строки, имя пользователя, пароль и домен. Затем новый процесс запускает указанный исполняемый файл в контексте безопасности указанных учетных данных (пользователя, домена и пароля).

Примечание

Если исполняемый файл находится на удаленном диске, необходимо определить сетевую папку с помощью универсального идентификатора ресурса (URI), а не связанного диска.

Примечание

Если адрес запускаемого исполняемого файла является URL-адресом, процесс не запускается и null возвращается.

Эта перегрузка позволяет запустить процесс без первого создания нового Process экземпляра. Перегрузка является альтернативой явным действиям по созданию нового Process экземпляра, настройке FileName, UserNameArgumentsPasswordи Domain свойствам StartInfo свойства свойства, а также вызову Start экземпляраProcess.

Аналогичным образом диалоговое окно "Запуск" может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe является необязательным в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот". fileName Если параметр представляет исполняемый файл, arguments параметр может представлять файл для выполнения действий, например текстовый файл в Notepad.exe myfile.txt.

Примечание

Имя файла должно представлять исполняемый файл в Start перегрузках, имеющих userNameи password``domain параметры.

Каждый раз, когда вы используете для Start запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт, используя его HasExited свойство.

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

Start(String, String, SecureString, String)

Важно!

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

Запускает ресурс процесса путем указания имени приложения, имени пользователя, пароля и домена и связывает ресурс с новым компонентом Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
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

Имя файла приложения для запуска в процессе.

userName
String

Имя пользователя, используемое при запуске процесса.

password
SecureString

Объект SecureString, содержащий пароль для использования при запуске процесса.

domain
String

Домен, используемый при запуске процесса.

Возвращаемое значение

Process

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.

Атрибуты

Исключения

Не указано имя файла.

Произошла ошибка при открытии связанного файла.

-или-

Не удалось найти файл, указанный в fileName.

Объект процесса уже удален.

Этот элемент не поддерживается в Linux или macOS (только в .NET Core).

Примеры

В следующем примере кода показано использование этой перегрузки для запуска исполняемого файла, а также демонстрирует исключение Win32Exception при попытке запустить приложение, связанное с неисключимым файлом.

// 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

Комментарии

Используйте эту перегрузку для создания нового процесса и его основного потока, указав его имя файла, имя пользователя, пароль и домен. Затем новый процесс запускает указанный исполняемый файл в контексте безопасности указанных учетных данных (пользователя, домена и пароля).

Примечание

Если исполняемый файл находится на удаленном диске, необходимо определить сетевую папку с помощью универсального идентификатора ресурса (URI), а не связанного диска.

Примечание

Если адрес запускаемого исполняемого файла является URL-адресом, процесс не запускается и null возвращается.

Эта перегрузка позволяет запустить процесс без первого создания нового Process экземпляра. Перегрузка является альтернативой явным действиям по созданию нового Process экземпляра, настройке UserNameFileNameDomain Passwordи свойствам StartInfo свойства свойства и вызову Start экземпляра.Process

Аналогичным образом диалоговое окно "Запуск" может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe является необязательным в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот". fileName Если параметр представляет исполняемый файл, arguments параметр может представлять файл для выполнения действий, например текстовый файл в Notepad.exe myfile.txt.

Примечание

Имя файла должно представлять исполняемый файл в Start перегрузках, имеющих userNameи password``domain параметры.

Каждый раз, когда вы используете для Start запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт, используя его HasExited свойство.

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

Start(String, String)

Запускает ресурс процесса путем указания имени приложения и набора аргументов командной строки и связывает ресурс с новым компонентом Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process

Параметры

fileName
String

Имя файла приложения для запуска в процессе.

arguments
String

Аргументы командной строки для передачи при запуске процесса.

Возвращаемое значение

Process

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.

Атрибуты

Исключения

Значение параметра fileName или параметра argumentsnull.

Возникла ошибка при открытии связанного файла.

-или-

Не удалось найти файл, указанный в fileName.

-или- Сумма длины аргументов и длины полного пути к процессу превышает 2080. Сообщение об ошибке, связанной с этим исключением, может иметь следующую формулировку: "Область данных, переданная системному вызову, слишком мала" или "Отказано в доступе".

Объект процесса уже удален.

Переменная среды PATH содержит строку с кавычками.

Примеры

В следующем примере сначала создается экземпляр Internet Explorer и отображается содержимое папки "Избранное" в браузере. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты. Наконец, откроется Internet Explorer с свернутым окном при переходе на определенный сайт.

#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()
{
    // URLs 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()
            ' URLs 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

Комментарии

Используйте эту перегрузку для запуска ресурса процесса, указав имя файла и аргументы командной строки. Перегрузка связывает ресурс с новым Process объектом.

Примечание

Если адрес запускаемого исполняемого файла является URL-адресом, процесс не запускается и null возвращается.

Эта перегрузка позволяет запускать процесс без предварительного создания нового Process экземпляра. Перегрузка является альтернативой явным шагам создания нового Process экземпляра, задания FileName и Arguments членов StartInfo свойства и вызова Start экземпляра Process .

Запуск процесса путем указания имени файла и аргументов аналогичен вводу имени файла и аргументов командной строки в Run диалоговом окне меню WindowsStart. Поэтому имя файла не обязательно представляет исполняемый файл. Он может иметь любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, имя файла может иметь расширение .txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или у него может быть .doc, если вы связали .doc файлы с инструментом обработки слов, например Microsoft Word. Точно так же, как Run диалоговое окно может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe является необязательным в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот". fileName Если параметр представляет исполняемый файл, arguments параметр может представлять файл для выполнения действий, например текстовый файл в Notepad.exe myfile.txt. fileName Если параметр представляет файл команды (CMD), параметр должен содержать аргумент "/c" или "/k", чтобы указать, arguments выходит ли командное окно или остается после завершения.

В отличие от других перегрузок перегрузка Start , которая не имеет параметров, не static является членом. Используйте эту перегрузку, если вы уже создали Process экземпляр и указали сведения о запуске (включая имя файла), и вы хотите запустить ресурс процесса и связать его с существующим Process экземпляром. Используйте одну из static перегрузок, если вы хотите создать новый Process компонент, а не запустить процесс для существующего компонента. Эта перегрузка и перегрузка без параметров позволяют указать имя файла ресурса процесса для запуска и аргументов командной строки для передачи.

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути. В противном случае система не найдет этот путь. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.

Примечание

ASP.NET веб-страница и код серверного элемента управления выполняется в контексте рабочего процесса ASP.NET на веб-сервере. Если вы используете Start метод на веб-странице ASP.NET или серверном элементе управления, новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.

Каждый раз, когда вы используете для Start запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт, используя его HasExited свойство.

Здесь необходима заметка о состояниях квартир в управляемых потоках. Если UseShellExecute он находится true в свойстве компонента StartInfo процесса, убедитесь, что в приложении настроена модель потоков, задав атрибут [STAThread] для main() метода. В противном случае управляемый unknown поток может находиться в состоянии или помещать его в MTA состояние, последняя из которых конфликтует с UseShellExecute тем, что .true Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, при обнаружении такого метода приложение по умолчанию MTAимеет значение , и после установки состояние квартиры невозможно изменить. MTA Однако вызывает исключение, возникающее при управлении потоком оболочкой операционной системы.

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

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

Start()

Запускает (или повторно использует) ресурс процесса, определенный свойством StartInfo этого компонента Process, и связывает его с компонентом.

public:
 bool Start();
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public bool Start ();
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Start : unit -> bool
Public Function Start () As Boolean

Возвращаемое значение

Boolean

Значение true, если ресурс процесса запущен; значение false, если новый ресурс процесса не был запущен (например, при повторном использовании существующего процесса).

Атрибуты

Исключения

Имя файла не было указано в свойстве StartInfo компонента Process.

-или-

Член UseShellExecute свойства StartInfo имеет значение true , тогда как RedirectStandardInput, RedirectStandardOutputили RedirectStandardError имеет значение true.

Произошла ошибка при открытии связанного файла.

Объект процесса уже удален.

Метод не поддерживается в операционных системах без поддержки оболочки, таких как Nano Server (только в .NET Core).

Примеры

В следующем примере для запуска процесса используется экземпляр класса 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 it is started without a window so you cannot terminate it 
        // on the desktop, it must terminate itself or you can do it programmatically
        // from this application using the Kill method.
    }
    catch ( Exception^ e ) 
    {
        Console::WriteLine( e->Message );
    }
}
using System;
using System.Diagnostics;
using System.ComponentModel;

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

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

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

Комментарии

Используйте эту перегрузку, чтобы запустить ресурс процесса и связать его с текущим Process компонентом. Возвращаемое значение true указывает, что был запущен новый ресурс процесса. Если ресурс процесса, указанный FileName StartInfo членом свойства, уже запущен на компьютере, дополнительный ресурс процесса не запускается. Вместо этого ресурс запущенного процесса используется повторно и false возвращается.

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

Примечание

Если вы используете Visual Studio, эта перегрузка Start метода является той, которую вы вставляете в код после перетаскивания Process компонента в конструктор. Properties Используйте окно, чтобы развернуть категорию StartInfo и записать соответствующее значение в FileName свойство. Изменения будут отображаться в процедуре формы InitializeComponent .

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

Другие перегрузки Start метода являются static членами. Перед вызовом этих перегрузок метода не нужно создавать экземпляр Process компонента. Вместо этого можно вызвать Start Process сам класс и создать новый Process компонент, если процесс был запущен. Или возвращается, null если процесс использовался повторно. Ресурс процесса автоматически связывается с новым Process компонентом, возвращаемым методом Start .

Элементы StartInfo можно использовать для дублирования функциональных возможностей диалогового Run Start окна Windows меню. Все, что можно ввести в командную строку, можно запустить, задав соответствующие значения в свойстве StartInfo . Единственным StartInfo свойством FileName , которое необходимо задать, является свойство. Свойство FileName не обязательно должно быть исполняемым файлом. Он может иметь любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, FileName свойство может иметь расширение .txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или оно может иметь расширение .doc, если вы связали .doc файлы с средством обработки слов, например Microsoft Word.

В командной строке можно указать действия, выполняемые для определенных типов файлов. Например, можно печатать документы или редактировать текстовые файлы. Укажите эти действия с помощью Verb элемента StartInfo свойства. Для других типов файлов можно указать аргументы командной строки при запуске файла из диалогового Run окна. Например, можно передать URL-адрес в качестве аргумента, если в качестве браузера указано значение FileName. Эти аргументы можно указать в элементе StartInfo Arguments свойства.

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути. В противном случае система не найдет этот путь. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.

Примечание

ASP.NET веб-страница и код серверного элемента управления выполняется в контексте рабочего процесса ASP.NET на веб-сервере. Если вы используете Start метод на веб-странице ASP.NET или серверном элементе управления, новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.

Каждый раз, когда вы используете для Start запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт, используя его HasExited свойство.

Здесь необходима заметка о состояниях квартир в управляемых потоках. Если UseShellExecute он находится true в свойстве компонента StartInfo процесса, убедитесь, что в приложении настроена модель потоков, задав атрибут [STAThread] для main() метода. В противном случае управляемый unknown поток может находиться в состоянии или помещать его в MTA состояние, последняя из которых конфликтует с UseShellExecute тем, что .true Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, при обнаружении такого метода приложение по умолчанию MTAимеет значение , и после установки состояние квартиры невозможно изменить. MTA Однако вызывает исключение, возникающее при управлении потоком оболочкой операционной системы.

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

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

Start(String)

Запускает ресурс процесса путем указания имени документа или файла приложения и связывает ресурс с новым компонентом Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Параметры

fileName
String

Имя документа или файла приложения для запуска в процессе.

Возвращаемое значение

Process

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.

Атрибуты

Исключения

Возникла ошибка при открытии связанного файла.

-или-

Не удалось найти файл, указанный в fileName.

Объект процесса уже удален.

Переменная среды PATH содержит строку с кавычками.

Примеры

В следующем примере сначала создается экземпляр Internet Explorer и отображается содержимое папки "Избранное" в браузере. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты. Наконец, запустится Internet Explorer с свернутым окном при переходе на определенный сайт.

#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()
{
    // URLs 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()
            ' URLs 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

Комментарии

Используйте эту перегрузку для запуска ресурса процесса, указав его имя файла. Перегрузка связывает ресурс с новым Process объектом.

Примечание

Если адрес запускаемого исполняемого файла является URL-адресом, процесс не запускается и null возвращается.

Эта перегрузка позволяет запускать процесс без предварительного создания нового Process экземпляра. Перегрузка является альтернативой явным шагам создания нового Process экземпляра, задания FileName члена StartInfo свойства и вызова Start экземпляра Process .

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

Запуск процесса путем указания имени файла аналогичен вводу сведений в Run диалоговом окне меню WindowsStart. Поэтому имя файла не обязательно представляет исполняемый файл. Он может иметь любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, имя файла может иметь расширение .txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или у него может быть .doc, если вы связали .doc файлы с текстовым средством обработки, например Microsoft Word. Аналогичным образом, так же, как Run диалоговое окно может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe является необязательным в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот".

Эта перегрузка не разрешает аргументы командной строки для процесса. Если необходимо указать один или несколько аргументов командной строки для процесса, используйте Process.Start(ProcessStartInfo) или Process.Start(String, String) перегрузки.

В отличие от других перегрузок, перегрузка Start без параметров не static является членом. Используйте эту перегрузку, если вы уже создали Process экземпляр и указали сведения о запуске (включая имя файла), и вы хотите запустить ресурс процесса и связать его с существующим Process экземпляром. Используйте одну из static перегрузок, если вы хотите создать новый Process компонент, а не запустить процесс для существующего компонента. Эта перегрузка и перегрузка без параметров позволяют указать имя файла ресурса процесса для запуска.

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути. В противном случае система не найдет этот путь. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.

Примечание

ASP.NET веб-страница и код серверного элемента управления выполняется в контексте рабочего процесса ASP.NET на веб-сервере. При использовании Start метода на веб-странице ASP.NET или серверном элементе управления новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и клиентский браузер, и не имеет доступа к рабочему столу пользователя.

Каждый раз, когда вы используете для Start запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.

Здесь требуется примечание о состояниях квартир в управляемых потоках. При UseShellExecute использовании true свойства компонента StartInfo процесса убедитесь, что в приложении задана потоковая модель, задав атрибут [STAThread] в методе main() . В противном случае управляемый unknown поток может находиться в состоянии или помещать в MTA состояние, последнее из которых конфликтует с UseShellExecute состоянием true. Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, когда приложение обнаруживает такой метод, по умолчанию MTAустанавливается и после установки состояние квартиры нельзя изменить. Однако вызывает исключение, возникающее при MTA управлении потоком оболочкой операционной системы.

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

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

Start(ProcessStartInfo)

Запускает ресурс процесса, определенный параметром, содержащим стартовую информацию процесса (например, имя файла запускаемого процесса), и связывает ресурс с новым компонентом Process.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
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
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process

Параметры

startInfo
ProcessStartInfo

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

Возвращаемое значение

Process

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный наряду с уже выполняющимися экземплярами того же процесса, будет независимым от других. Кроме того, метод Start может вернуть ненулевой тип Process, свойство HasExited которого равно true. В этом случае запущенный процесс может активировать существующий экземпляр самого себя, а затем завершить работу.

Атрибуты

Исключения

Имя файла не было указано в свойстве FileName параметра startInfo.

-или- Свойство UseShellExecute параметраstartInfo имеет значение true и RedirectStandardInput, RedirectStandardOutput или свойство RedirectStandardError также имеет значение true.

-или- Свойство UseShellExecute параметра startInfo имеет значение true, и свойство UserName не равно null или не является пустым или свойство Password не равно null.

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

Объект процесса уже удален.

Возникла ошибка при открытии связанного файла.

-или- Файл, указанный в свойстве FileName параметра startInfo, не найден.

-или- Сумма длины аргументов и длины полного пути к процессу превышает 2080. Сообщение об ошибке, связанной с этим исключением, может иметь следующую формулировку: "Область данных, переданная системному вызову, слишком мала" или "Отказано в доступе".

Метод не поддерживается в операционных системах без поддержки оболочки, таких как Nano Server (только в .NET Core).

Примеры

В следующем примере сначала создается экземпляр Internet Explorer и отображается содержимое папки "Избранное" в браузере. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты. Наконец, запустится Internet Explorer с свернутым окном при переходе на определенный сайт.

Дополнительные примеры других применений этого метода см. в отдельных свойствах ProcessStartInfo класса.

#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()
{
    // URLs 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()
            ' URLs 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 экземпляр. Перегрузка связывает ресурс с новым Process объектом.

Примечание

Если адрес запускаемого исполняемого файла является URL-адресом, процесс не запускается и null возвращается.

Эта перегрузка позволяет запустить процесс без первого создания нового Process экземпляра. Использование этой перегрузки с параметром ProcessStartInfo является альтернативой явным действиям по созданию нового Process экземпляра, настройке его StartInfo свойств и вызову Start экземпляра Process .

Использование экземпляра ProcessStartInfo в качестве параметра позволяет вызывать Start с наибольшим контролем над тем, что передается в вызов для запуска процесса. Если необходимо передать только имя файла или имя файла и аргументы, не нужно создавать новый ProcessStartInfo экземпляр, хотя это параметр. Единственным Process.StartInfo свойством FileName , которое необходимо задать, является свойство. Свойство FileName не обязательно представляет исполняемый файл. Он может иметь любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, FileName свойство может иметь расширение .txt, если у вас есть связанные текстовые файлы с редактором, например Блокнот, или оно может иметь расширение .doc, если вы связали .doc файлы с средством обработки слов, например Microsoft Word.

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

ProcessStartInfo.UserName Если заданы свойства ProcessStartInfo.Password экземпляраStartInfo, вызывается неуправляемая CreateProcessWithLogonW функция, которая запускает процесс в новом окне, даже если ProcessStartInfo.CreateNoWindow значение свойства равно true или ProcessStartInfo.WindowStyle значение ProcessWindowStyle.Hiddenсвойства. ProcessStartInfo.Domain Если свойство имеет значениеnull, ProcessStartInfo.UserName свойство должно быть в формате имени участника-пользователя@ DNS_domain_name.

В отличие от других перегрузок перегрузка Start , которая не имеет параметров, не static является членом. Используйте эту перегрузку, если вы уже создали Process экземпляр и указали сведения о запуске (включая имя файла), и вы хотите запустить ресурс процесса и связать его с существующим Process экземпляром. Используйте одну из static перегрузок, если вы хотите создать новый Process компонент, а не запустить процесс для существующего компонента. Эта перегрузка и перегрузка, не имеющие параметров, позволяют указать сведения о запуске ресурса процесса с помощью экземпляра ProcessStartInfo .

Если в системе объявлен заключенный в кавычки путь в переменной path, при запуске любого процесса из этого расположения необходимо указание полного пути. В противном случае система не найдет этот путь. Например, если в переменной path нет пути c:\mypath и он добавляется к ней с использованием кавычек (path = %path%;"c:\mypath"), при запуске любого процесса из c:\mypath необходимо полностью указывать путь к файлу.

Примечание

ASP.NET веб-страница и код серверного элемента управления выполняется в контексте рабочего процесса ASP.NET на веб-сервере. При использовании Start метода на веб-странице ASP.NET или серверном элементе управления новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и клиентский браузер, и не имеет доступа к рабочему столу пользователя.

Каждый раз, когда вы используете для Start запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.

Здесь требуется примечание о состояниях квартир в управляемых потоках. Если UseShellExecute параметр включен true startInfo , убедитесь, что в приложении задана потоковая модель, задав атрибут [STAThread] в методе main() . В противном случае управляемый unknown поток может находиться в состоянии или помещать в MTA состояние, последнее из которых конфликтует с UseShellExecute состоянием true. Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, когда приложение обнаруживает такой метод, по умолчанию MTAустанавливается и после установки состояние квартиры нельзя изменить. Однако вызывает исключение, возникающее при MTA управлении потоком оболочкой операционной системы.

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

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

Start(String, IEnumerable<String>)

Запускает ресурс процесса путем указания имени приложения и набора аргументов командной строки.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process

Параметры

fileName
String

Имя документа или файла приложения для запуска в процессе.

arguments
IEnumerable<String>

Аргументы командной строки для передачи при запуске процесса.

Возвращаемое значение

Process

Новый процесс Process, связанный с ресурсом процесса, или null, если ресурс процесса не запущен.

Атрибуты

Комментарии

При необходимости каждый аргумент будет экранирован автоматически.

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