Process.Start Metoda

Definicja

Uruchamia zasób procesu i kojarzy go ze Process składnikiem.Starts a process resource and associates it with a Process component.

Przeciążenia

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

Uruchamia zasób procesu, określając nazwę aplikacji, zestaw argumentów wiersza polecenia, nazwę użytkownika, hasło i domenę i kojarzy zasób z nowym Process składnikiem.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(String, String, SecureString, String)

Uruchamia zasób procesu, określając nazwę aplikacji, nazwę użytkownika, hasło i domenę i kojarzy zasób z nowym Process składnikiem.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)

Uruchamia zasób procesu przez określenie nazwy aplikacji i zestawu argumentów wiersza polecenia i skojarzenie zasobu z nowym Process składnikiem.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()

Uruchamia (lub ponownie używa) zasób procesu, który jest określony przez StartInfo Właściwość tego Process składnika i kojarzy go ze składnikiem.Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.

Start(String)

Uruchamia zasób procesu, określając nazwę dokumentu lub pliku aplikacji i kojarzy zasób z nowym Process składnikiem.Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

Start(ProcessStartInfo)

Uruchamia zasób procesu, który jest określony przez parametr zawierający informacje o uruchomieniu procesu (na przykład nazwę pliku procesu do uruchomienia) i kojarzy zasób z nowym Process składnikiem.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, IEnumerable<String>)

Uruchamia zasób procesu przez określenie nazwy aplikacji i zestawu argumentów wiersza polecenia.Starts a process resource by specifying the name of an application and a set of command line arguments.

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

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Uruchamia zasób procesu, określając nazwę aplikacji, zestaw argumentów wiersza polecenia, nazwę użytkownika, hasło i domenę i kojarzy zasób z nowym Process składnikiem.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)]
[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
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
Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process

Parametry

fileName
String

Nazwa pliku aplikacji do uruchomienia w procesie.The name of an application file to run in the process.

arguments
String

Argumenty wiersza polecenia do przekazania podczas uruchamiania procesu.Command-line arguments to pass when starting the process.

userName
String

Nazwa użytkownika, która ma być używana podczas uruchamiania procesu.The user name to use when starting the process.

password
SecureString

Zawierający SecureString hasło, które ma być używane podczas uruchamiania procesu.A SecureString that contains the password to use when starting the process.

domain
String

Domena, która ma być używana podczas uruchamiania procesu.The domain to use when starting the process.

Zwraca

Process

Nowy, Process który jest skojarzony z zasobem procesu lub null nie został uruchomiony żaden zasób procesu.A new Process that is associated with the process resource, or null if no process resource is started. Należy zauważyć, że nowy proces, który jest uruchamiany wraz z już uruchomionymi wystąpieniami tego samego procesu, będzie niezależny od innych.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z HasExited właściwością już ustawioną na true .In addition, Start may return a non-null Process with its HasExited property already set to true. W takim przypadku uruchomiony proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończył działanie.In this case, the started process may have activated an existing instance of itself and then exited.

Atrybuty

Wyjątki

Nie określono nazwy pliku.No file name was specified.

Wystąpił błąd podczas otwierania skojarzonego pliku.An error occurred when opening the associated file.

-lub--or-

Nie można znaleźć pliku określonego w elemencie fileName .The file specified in the fileName could not be found.

-lub--or- Suma długości argumentów i długość pełnej ścieżki do skojarzonego pliku przekracza 2080.The sum of the length of the arguments and the length of the full path to the associated file exceeds 2080. Komunikat o błędzie skojarzony z tym wyjątkiem może być jednym z następujących: "obszar danych przesłany do wywołania systemowego jest za mały".The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." lub "odmowa dostępu".or "Access is denied."

Obiekt procesu został już usunięty.The process object has already been disposed.

Ten element członkowski nie jest obsługiwany w systemie Linux lub macOS (tylko platforma .NET Core).This member is not supported on Linux or macOS (.NET Core only).

Uwagi

Użyj tego przeciążenia, aby utworzyć nowy proces i jego wątek podstawowy przez określenie jego nazwy pliku, argumentów wiersza polecenia, nazwy użytkownika, hasła i domeny.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. Nowy proces uruchamia następnie określony plik wykonywalny w kontekście zabezpieczeń określonych poświadczeń (użytkownika, domeny i hasła).The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

Uwaga

Gdy plik wykonywalny znajduje się na dysku zdalnym, należy zidentyfikować udział sieciowy przy użyciu identyfikatora URI (Uniform Resource Identifier), a nie litery dysku połączonego.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.

Uwaga

Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null jest zwracany.If the address of the executable file to start is a URL, the process is not started and null is returned.

To Przeciążenie pozwala uruchomić proces bez wcześniejszego utworzenia nowego Process wystąpienia.This overload lets you start a process without first creating a new Process instance. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania FileName właściwości właściwości,,, Arguments , UserName Password i Domain StartInfo wywoływania Start dla tego Process wystąpienia.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.

Podobnie w taki sam sposób, w jaki okno dialogowe uruchamiania może akceptować nazwę pliku wykonywalnego z rozszerzeniem. exe lub bez niego, rozszerzenie. exe jest opcjonalne w fileName parametrze.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. Na przykład można ustawić fileName parametr na "Notepad.exe" lub "Notepad".For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Jeśli fileName Parametr reprezentuje plik wykonywalny, arguments parametr może reprezentować plik do działania, na przykład plik tekstowy w 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.

Uwaga

Nazwa pliku musi reprezentować plik wykonywalny w Start przeciążeniach, które mają userName password Parametry, i domain .The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

Za każdym razem Start , gdy używasz do uruchamiania procesu, może być konieczne jego zamknięcie lub ryzyko utraty zasobów systemowych.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Zamknij procesy przy użyciu CloseMainWindow lub Kill .Close processes using CloseMainWindow or Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jego HasExited właściwości.You can check whether a process has already been closed by using its HasExited property.

Dotyczy

Start(String, String, SecureString, String)

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Uruchamia zasób procesu, określając nazwę aplikacji, nazwę użytkownika, hasło i domenę i kojarzy zasób z nowym Process składnikiem.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)]
[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
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
Public Shared Function Start (fileName As String, userName As String, password As SecureString, domain As String) As Process

Parametry

fileName
String

Nazwa pliku aplikacji do uruchomienia w procesie.The name of an application file to run in the process.

userName
String

Nazwa użytkownika, która ma być używana podczas uruchamiania procesu.The user name to use when starting the process.

password
SecureString

Zawierający SecureString hasło, które ma być używane podczas uruchamiania procesu.A SecureString that contains the password to use when starting the process.

domain
String

Domena, która ma być używana podczas uruchamiania procesu.The domain to use when starting the process.

Zwraca

Process

Nowy, Process który jest skojarzony z zasobem procesu lub null nie został uruchomiony żaden zasób procesu.A new Process that is associated with the process resource, or null if no process resource is started. Należy zauważyć, że nowy proces, który jest uruchamiany wraz z już uruchomionymi wystąpieniami tego samego procesu, będzie niezależny od innych.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z HasExited właściwością już ustawioną na true .In addition, Start may return a non-null Process with its HasExited property already set to true. W takim przypadku uruchomiony proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończył działanie.In this case, the started process may have activated an existing instance of itself and then exited.

Atrybuty

Wyjątki

Nie określono nazwy pliku.No file name was specified.

Wystąpił błąd podczas otwierania skojarzonego pliku.There was an error in opening the associated file.

-lub--or-

Nie można znaleźć pliku określonego w elemencie fileName .The file specified in the fileName could not be found.

Obiekt procesu został już usunięty.The process object has already been disposed.

Ten element członkowski nie jest obsługiwany w systemie Linux lub macOS (tylko platforma .NET Core).This member is not supported on Linux or macOS (.NET Core only).

Przykłady

Poniższy przykład kodu pokazuje użycie tego przeciążenia do uruchomienia pliku wykonywalnego, a także demonstruje wyrzucanie Win32Exception podczas próby uruchomienia aplikacji skojarzonej z plikiem niewykonywalnym.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

Uwagi

Użyj tego przeciążenia, aby utworzyć nowy proces i jego wątek podstawowy przez określenie jego nazwy pliku, nazwy użytkownika, hasła i domeny.Use this overload to create a new process and its primary thread by specifying its file name, user name, password, and domain. Nowy proces uruchamia następnie określony plik wykonywalny w kontekście zabezpieczeń określonych poświadczeń (użytkownika, domeny i hasła).The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

Uwaga

Gdy plik wykonywalny znajduje się na dysku zdalnym, należy zidentyfikować udział sieciowy przy użyciu identyfikatora URI (Uniform Resource Identifier), a nie litery dysku połączonego.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.

Uwaga

Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null jest zwracany.If the address of the executable file to start is a URL, the process is not started and null is returned.

To Przeciążenie pozwala uruchomić proces bez wcześniejszego utworzenia nowego Process wystąpienia.This overload lets you start a process without first creating a new Process instance. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania właściwości właściwości,, FileName UserName Password , i Domain StartInfo wywoływania Start dla tego Process wystąpienia.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.

Podobnie w taki sam sposób, w jaki okno dialogowe uruchamiania może akceptować nazwę pliku wykonywalnego z rozszerzeniem. exe lub bez niego, rozszerzenie. exe jest opcjonalne w fileName parametrze.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. Na przykład można ustawić fileName parametr na "Notepad.exe" lub "Notepad".For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Jeśli fileName Parametr reprezentuje plik wykonywalny, arguments parametr może reprezentować plik do działania, na przykład plik tekstowy w 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.

Uwaga

Nazwa pliku musi reprezentować plik wykonywalny w Start przeciążeniach, które mają userName password Parametry, i domain .The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

Za każdym razem Start , gdy używasz do uruchamiania procesu, może być konieczne jego zamknięcie lub ryzyko utraty zasobów systemowych.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Zamknij procesy przy użyciu CloseMainWindow lub Kill .Close processes using CloseMainWindow or Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jego HasExited właściwości.You can check whether a process has already been closed by using its HasExited property.

Dotyczy

Start(String, String)

Uruchamia zasób procesu przez określenie nazwy aplikacji i zestawu argumentów wiersza polecenia i skojarzenie zasobu z nowym Process składnikiem.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

Parametry

fileName
String

Nazwa pliku aplikacji do uruchomienia w procesie.The name of an application file to run in the process.

arguments
String

Argumenty wiersza polecenia do przekazania podczas uruchamiania procesu.Command-line arguments to pass when starting the process.

Zwraca

Process

Nowy, Process który jest skojarzony z zasobem procesu lub null nie został uruchomiony żaden zasób procesu.A new Process that is associated with the process resource, or null if no process resource is started. Należy zauważyć, że nowy proces, który jest uruchamiany wraz z już uruchomionymi wystąpieniami tego samego procesu, będzie niezależny od innych.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z HasExited właściwością już ustawioną na true .In addition, Start may return a non-null Process with its HasExited property already set to true. W takim przypadku uruchomiony proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończył działanie.In this case, the started process may have activated an existing instance of itself and then exited.

Wyjątki

fileNameParametr lub arguments jest null .The fileName or arguments parameter is null.

Wystąpił błąd podczas otwierania skojarzonego pliku.An error occurred when opening the associated file.

-lub--or-

Nie można znaleźć pliku określonego w elemencie fileName .The file specified in the fileName could not be found.

-lub--or- Suma długości argumentów i długość pełnej ścieżki do procesu przekracza 2080.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. Komunikat o błędzie skojarzony z tym wyjątkiem może być jednym z następujących: "obszar danych przesłany do wywołania systemowego jest za mały".The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." lub "odmowa dostępu".or "Access is denied."

Obiekt procesu został już usunięty.The process object has already been disposed.

Zmienna środowiskowa PATH ma ciąg zawierający cudzysłowy.The PATH environment variable has a string containing quotes.

Przykłady

Poniższy przykład najpierw duplikuje wystąpienie programu Internet Explorer i wyświetli zawartość folderu Ulubione w przeglądarce.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Następnie uruchamia inne wystąpienia programu Internet Explorer i wyświetla określone strony lub witryny.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Na koniec program Internet Explorer zostanie uruchomiony z zminimalizowanym oknem podczas nawigowania do określonej lokacji.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()
{
    // 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

Uwagi

Użyj tego przeciążenia, aby uruchomić zasób procesu przez określenie jego nazwy pliku i argumentów wiersza polecenia.Use this overload to start a process resource by specifying its file name and command-line arguments. Przeciążenie kojarzy zasób z nowym Process obiektem.The overload associates the resource with a new Process object.

Uwaga

Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null jest zwracany.If the address of the executable file to start is a URL, the process is not started and null is returned.

To Przeciążenie pozwala uruchomić proces bez wcześniejszego utworzenia nowego Process wystąpienia.This overload lets you start a process without first creating a new Process instance. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania FileName Arguments elementów członkowskich StartInfo właściwości i wywoływania Start dla tego Process wystąpienia.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.

Uruchamianie procesu przez określenie jego nazwy pliku i argumentów jest podobne do wpisywania nazwy pliku i argumentów wiersza polecenia w oknie Run dialogowym menu systemu Windows Start .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. W związku z tym nazwa pliku nie musi reprezentować pliku wykonywalnego.Therefore, the file name does not need to represent an executable file. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją zainstalowaną w systemie.It can be of any file type for which the extension has been associated with an application installed on the system. Na przykład nazwa pliku może mieć rozszerzenie txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub jeśli masz skojarzone pliki doc za pomocą narzędzia do przetwarzania słów, takiego jak 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. Podobnie w taki sam sposób, w jaki okno Run dialogowe może akceptować nazwę pliku wykonywalnego z rozszerzeniem. exe lub bez niego, rozszerzenie. exe jest opcjonalne w fileName parametrze.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. Na przykład można ustawić fileName parametr na "Notepad.exe" lub "Notepad".For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". Jeśli fileName Parametr reprezentuje plik wykonywalny, arguments parametr może reprezentować plik do działania, na przykład plik tekstowy w 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. Jeśli fileName Parametr reprezentuje plik polecenia (. cmd), arguments parametr musi zawierać /c argument "" lub " /k ", aby określić, czy okno polecenia zostanie zakończone, czy pozostanie po zakończeniu.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.

W przeciwieństwie do innych przeciążeń, Przeciążenie, Start które nie ma parametrów, nie jest static elementem członkowskim.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Użyj tego przeciążenia, gdy zostało już utworzone Process wystąpienie i określone informacje o uruchomieniu (w tym nazwa pliku) i chcesz uruchomić zasób procesu i skojarzyć go z istniejącym Process wystąpieniem.Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. Użyj jednego z static przeciążeń, jeśli chcesz utworzyć nowy Process składnik zamiast uruchamiać proces dla istniejącego składnika.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Zarówno to Przeciążenie, jak i Przeciążenie, które nie ma parametrów, umożliwiają określenie nazwy pliku zasobu procesu do uruchomienia i argumentów wiersza polecenia do przekazania.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.

Jeśli masz zmienną PATH zadeklarowaną w systemie przy użyciu cudzysłowów, musisz w pełni zakwalifikować tę ścieżkę podczas uruchamiania dowolnego procesu znajdującego się w tej lokalizacji.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. W przeciwnym razie system nie znajdzie ścieżki.Otherwise, the system will not find the path. Na przykład jeśli c:\mypath nie znajduje się w ścieżce i dodasz ją przy użyciu cudzysłowu: path = %path%;"c:\mypath" , należy w pełni zakwalifikować każdy proces c:\mypath podczas jego uruchamiania.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.

Uwaga

ASP.NET stronę sieci Web i kod sterujący serwera wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Jeśli używasz Start metody na stronie sieci web ASP.NET lub kontrolce serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami.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. Ten proces nie jest uruchamiany w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Za każdym razem Start , gdy używasz do uruchamiania procesu, może być konieczne jego zamknięcie lub ryzyko utraty zasobów systemowych.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Zamknij procesy przy użyciu CloseMainWindow lub Kill .Close processes using CloseMainWindow or Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jego HasExited właściwości.You can check whether a process has already been closed by using its HasExited property.

W tym miejscu należy zauważyć, że w zarządzanych wątkach są wymagane informacje o Stanach Apartment.A note about apartment states in managed threads is necessary here. Gdy UseShellExecute znajduje się true we właściwości składnika procesu StartInfo , upewnij się, że ustawiono model wątkowości w aplikacji przez ustawienie atrybutu [STAThread] w main() metodzie.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. W przeciwnym razie wątek zarządzany może być w stanie lub znajdować się unknown w MTA stanie, w którym wystąpił konflikt z 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. Niektóre metody wymagają, aby stan apartamentu nie był unknown .Some methods require that the apartment state not be unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie jest to MTA , a po ustawieniu nie można zmienić stanu apartamentu.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. Jednak MTA powoduje, że wyjątek jest zgłaszany, gdy powłoka systemu operacyjnego zarządza wątkiem.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Zobacz też

Dotyczy

Start()

Uruchamia (lub ponownie używa) zasób procesu, który jest określony przez StartInfo Właściwość tego Process składnika i kojarzy go ze składnikiem.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

Zwraca

Boolean

true Jeśli zasób procesu został uruchomiony; false Jeśli nowy zasób procesu nie zostanie uruchomiony (na przykład jeśli istniejący proces jest ponownie używany).true if a process resource is started; false if no new process resource is started (for example, if an existing process is reused).

Wyjątki

W składniku nie określono nazwy pliku Process StartInfo .No file name was specified in the Process component's StartInfo.

-lub--or-

UseShellExecuteSkładowa StartInfo właściwości jest true while RedirectStandardInput , RedirectStandardOutput , lub RedirectStandardError jest true .The UseShellExecute member of the StartInfo property is true while RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError is true.

Wystąpił błąd podczas otwierania skojarzonego pliku.There was an error in opening the associated file.

Obiekt procesu został już usunięty.The process object has already been disposed.

Metoda nie jest obsługiwana w systemach operacyjnych bez obsługi powłoki, takiej jak nano Server (tylko platforma .NET Core).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

Przykłady

W poniższym przykładzie zastosowano wystąpienie Process klasy do uruchomienia procesu.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

Uwagi

Użyj tego przeciążenia, aby uruchomić zasób procesu i skojarzyć go z bieżącym Process składnikiem.Use this overload to start a process resource and associate it with the current Process component. Wartość zwracana true wskazuje, że nowy zasób procesu został uruchomiony.The return value true indicates that a new process resource was started. Jeśli zasób procesu określony przez FileName element członkowski StartInfo właściwości jest już uruchomiony na komputerze, żaden dodatkowy zasób procesu nie zostanie uruchomiony.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. Zamiast tego zasób uruchomionego procesu jest ponownie używany i false zwracany.Instead, the running process resource is reused and false is returned.

Aplikację ClickOnce można uruchomić, określając lokalizację (na przykład adres sieci Web), z której pierwotnie zainstalowano aplikację.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. Nie uruchamiaj aplikacji ClickOnce przez określenie jej zainstalowanej lokalizacji na dysku twardym.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Uwaga

Jeśli używasz programu Visual Studio, to Przeciążenie Start metody jest to, która jest wstawiana do kodu po przeciągnięciu Process składnika do projektanta.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. Za pomocą Properties okna rozwiń StartInfo kategorię i Zapisz odpowiednią wartość we FileName właściwości.Use the Properties window to expand the StartInfo category and write the appropriate value into the FileName property. Zmiany zostaną wyświetlone w InitializeComponent procedurze formularza.Your changes will appear in the form's InitializeComponent procedure.

To Przeciążenie Start nie jest static metodą.This overload of Start is not a static method. Należy wywołać go z wystąpienia Process klasy.You must call it from an instance of the Process class. Przed wywołaniem Start należy najpierw określić StartInfo Informacje o właściwościach dla tego Process wystąpienia, ponieważ te informacje są używane do określenia zasobu procesu do uruchomienia.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.

Inne przeciążenia Start metody są static elementami członkowskimi.The other overloads of the Start method are static members. Nie trzeba tworzyć wystąpienia Process składnika przed wywołaniem tych przeciążeń metody.You do not need to create an instance of the Process component before you call those overloads of the method. Zamiast tego można wywołać Start dla Process samej klasy i Process utworzyć nowy składnik, jeśli proces został uruchomiony.Instead, you can call Start for the Process class itself, and a new Process component is created if the process was started. Lub, null jest zwracany, jeśli proces został ponownie użyty.Or, null is returned if a process was reused. Zasób procesu jest automatycznie kojarzony z nowym Process składnikiem zwracanym przez Start metodę.The process resource is automatically associated with the new Process component that is returned by the Start method.

StartInfoElementy członkowskie mogą służyć do duplikowania funkcjonalności okna Run dialogowego menu systemu Windows Start .The StartInfo members can be used to duplicate the functionality of the Run dialog box of the Windows Start menu. Wszystkie elementy, które można wpisać w wierszu polecenia, można uruchomić, ustawiając odpowiednie wartości we StartInfo właściwości.Anything that can be typed into a command line can be started by setting the appropriate values in the StartInfo property. Jedyną StartInfo właściwością, która musi być ustawiona, jest FileName Właściwość.The only StartInfo property that must be set is the FileName property. FileNameWłaściwość nie musi być plikiem wykonywalnym.The FileName property does not have to be an executable file. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją, która jest zainstalowana w systemie.It can be of any file type for which the extension has been associated with an application that is installed on the system. Na przykład FileName Właściwość może mieć rozszerzenie txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub jeśli masz skojarzone pliki doc za pomocą narzędzia do przetwarzania słów, takiego jak Microsoft Word, może być ono rozszerzeniem. doc.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.

W wierszu polecenia można określić akcje do wykonania dla niektórych typów plików.In the command line, you can specify actions to take for certain types of files. Na przykład można wydrukować dokumenty lub edytować pliki tekstowe.For example, you can print documents or edit text files. Określ te akcje przy użyciu Verb elementu członkowskiego StartInfo właściwości.Specify these actions using the Verb member of the StartInfo property. W przypadku innych typów plików można określić argumenty wiersza polecenia podczas uruchamiania pliku z Run okna dialogowego.For other types of files, you can specify command-line arguments when you start the file from the Run dialog box. Na przykład, można przekazać adres URL jako argument, jeśli określisz przeglądarkę jako FileName .For example, you can pass a URL as an argument if you specify your browser as the FileName. Te argumenty można określić w StartInfo Arguments składowej właściwości.These arguments can be specified in the StartInfo property's Arguments member.

Jeśli masz zmienną PATH zadeklarowaną w systemie przy użyciu cudzysłowów, musisz w pełni zakwalifikować tę ścieżkę podczas uruchamiania dowolnego procesu znajdującego się w tej lokalizacji.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. W przeciwnym razie system nie znajdzie ścieżki.Otherwise, the system will not find the path. Na przykład jeśli c:\mypath nie znajduje się w ścieżce i dodasz ją przy użyciu cudzysłowu: path = %path%;"c:\mypath" , należy w pełni zakwalifikować każdy proces c:\mypath podczas jego uruchamiania.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.

Uwaga

ASP.NET stronę sieci Web i kod sterujący serwera wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Jeśli używasz Start metody na stronie sieci web ASP.NET lub kontrolce serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami.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. Ten proces nie jest uruchamiany w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Za każdym razem Start , gdy używasz do uruchamiania procesu, może być konieczne jego zamknięcie lub ryzyko utraty zasobów systemowych.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Zamknij procesy przy użyciu CloseMainWindow lub Kill .Close processes using CloseMainWindow or Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jego HasExited właściwości.You can check whether a process has already been closed by using its HasExited property.

W tym miejscu należy zauważyć, że w zarządzanych wątkach są wymagane informacje o Stanach Apartment.A note about apartment states in managed threads is necessary here. Gdy UseShellExecute znajduje się true we właściwości składnika procesu StartInfo , upewnij się, że ustawiono model wątkowości w aplikacji przez ustawienie atrybutu [STAThread] w main() metodzie.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. W przeciwnym razie wątek zarządzany może być w stanie lub znajdować się unknown w MTA stanie, w którym wystąpił konflikt z 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. Niektóre metody wymagają, aby stan apartamentu nie był unknown .Some methods require that the apartment state not be unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie jest to MTA , a po ustawieniu nie można zmienić stanu apartamentu.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. Jednak MTA powoduje, że wyjątek jest zgłaszany, gdy powłoka systemu operacyjnego zarządza wątkiem.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Zobacz też

Dotyczy

Start(String)

Uruchamia zasób procesu, określając nazwę dokumentu lub pliku aplikacji i kojarzy zasób z nowym Process składnikiem.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

Parametry

fileName
String

Nazwa dokumentu lub pliku aplikacji do uruchomienia w procesie.The name of a document or application file to run in the process.

Zwraca

Process

Nowy, Process który jest skojarzony z zasobem procesu lub null nie został uruchomiony żaden zasób procesu.A new Process that is associated with the process resource, or null if no process resource is started. Należy zauważyć, że nowy proces, który jest uruchamiany wraz z już uruchomionymi wystąpieniami tego samego procesu, będzie niezależny od innych.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z HasExited właściwością już ustawioną na true .In addition, Start may return a non-null Process with its HasExited property already set to true. W takim przypadku uruchomiony proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończył działanie.In this case, the started process may have activated an existing instance of itself and then exited.

Wyjątki

Wystąpił błąd podczas otwierania skojarzonego pliku.An error occurred when opening the associated file.

-lub--or-

Nie można znaleźć pliku określonego w elemencie fileName .The file specified in the fileName could not be found.

Obiekt procesu został już usunięty.The process object has already been disposed.

Zmienna środowiskowa PATH ma ciąg zawierający cudzysłowy.The PATH environment variable has a string containing quotes.

Przykłady

Poniższy przykład najpierw duplikuje wystąpienie programu Internet Explorer i wyświetli zawartość folderu Ulubione w przeglądarce.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Następnie uruchamia inne wystąpienia programu Internet Explorer i wyświetla określone strony lub witryny.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Na koniec program Internet Explorer zostanie uruchomiony z zminimalizowanym oknem podczas nawigowania do określonej lokacji.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()
{
    // 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

Uwagi

Użyj tego przeciążenia, aby uruchomić zasób procesu, określając jego nazwę pliku.Use this overload to start a process resource by specifying its file name. Przeciążenie kojarzy zasób z nowym Process obiektem.The overload associates the resource with a new Process object.

Uwaga

Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null jest zwracany.If the address of the executable file to start is a URL, the process is not started and null is returned.

To Przeciążenie pozwala uruchomić proces bez wcześniejszego utworzenia nowego Process wystąpienia.This overload lets you start a process without first creating a new Process instance. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania FileName elementu członkowskiego StartInfo właściwości i wywoływania Start dla tego Process wystąpienia.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.

Aplikację ClickOnce można uruchomić przez ustawienie fileName parametru na lokalizację (na przykład adres sieci Web), z której pierwotnie zainstalowano aplikację.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. Nie uruchamiaj aplikacji ClickOnce przez określenie jej zainstalowanej lokalizacji na dysku twardym.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Uruchamianie procesu przez określenie jego nazwy pliku jest podobne do wpisywania informacji w Run oknie dialogowym menu systemu Windows Start .Starting a process by specifying its file name is similar to typing the information in the Run dialog box of the Windows Start menu. W związku z tym nazwa pliku nie musi reprezentować pliku wykonywalnego.Therefore, the file name does not need to represent an executable file. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją zainstalowaną w systemie.It can be of any file type for which the extension has been associated with an application installed on the system. Na przykład nazwa pliku może mieć rozszerzenie txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub jeśli masz skojarzone pliki doc za pomocą narzędzia do przetwarzania słów, takiego jak 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. Podobnie w taki sam sposób, w jaki okno Run dialogowe może akceptować nazwę pliku wykonywalnego z rozszerzeniem. exe lub bez niego, rozszerzenie. exe jest opcjonalne w fileName parametrze.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. Na przykład można ustawić fileName parametr na "Notepad.exe" lub "Notepad".For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad".

To Przeciążenie nie zezwala na używanie argumentów wiersza polecenia dla procesu.This overload does not allow command-line arguments for the process. Jeśli musisz określić jeden lub więcej argumentów wiersza polecenia dla procesu, użyj Process.Start(ProcessStartInfo) lub Process.Start(String, String) overloads.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.

W przeciwieństwie do innych przeciążeń, Przeciążenie, Start które nie ma parametrów, nie jest static elementem członkowskim.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Użyj tego przeciążenia, gdy zostało już utworzone Process wystąpienie i określone informacje o uruchomieniu (w tym nazwa pliku) i chcesz uruchomić zasób procesu i skojarzyć go z istniejącym Process wystąpieniem.Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. Użyj jednego z static przeciążeń, jeśli chcesz utworzyć nowy Process składnik zamiast uruchamiać proces dla istniejącego składnika.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Zarówno to Przeciążenie, jak i Przeciążenie, które nie ma parametrów, umożliwiają określenie nazwy pliku zasobu procesu do uruchomienia.Both this overload and the overload that has no parameters allow you to specify the file name of the process resource to start.

Jeśli masz zmienną PATH zadeklarowaną w systemie przy użyciu cudzysłowów, musisz w pełni zakwalifikować tę ścieżkę podczas uruchamiania dowolnego procesu znajdującego się w tej lokalizacji.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. W przeciwnym razie system nie znajdzie ścieżki.Otherwise, the system will not find the path. Na przykład jeśli c:\mypath nie znajduje się w ścieżce i dodasz ją przy użyciu cudzysłowu: path = %path%;"c:\mypath" , należy w pełni zakwalifikować każdy proces c:\mypath podczas jego uruchamiania.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.

Uwaga

ASP.NET stronę sieci Web i kod sterujący serwera wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Jeśli używasz Start metody na stronie sieci web ASP.NET lub kontrolce serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami.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. Ten proces nie jest uruchamiany w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Za każdym razem Start , gdy używasz do uruchamiania procesu, może być konieczne jego zamknięcie lub ryzyko utraty zasobów systemowych.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Zamknij procesy przy użyciu CloseMainWindow lub Kill .Close processes using CloseMainWindow or Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jego HasExited właściwości.You can check whether a process has already been closed by using its HasExited property.

W tym miejscu należy zauważyć, że w zarządzanych wątkach są wymagane informacje o Stanach Apartment.A note about apartment states in managed threads is necessary here. Gdy UseShellExecute znajduje się true we właściwości składnika procesu StartInfo , upewnij się, że ustawiono model wątkowości w aplikacji przez ustawienie atrybutu [STAThread] w main() metodzie.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. W przeciwnym razie wątek zarządzany może być w stanie lub znajdować się unknown w MTA stanie, w którym wystąpił konflikt z 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. Niektóre metody wymagają, aby stan apartamentu nie był unknown .Some methods require that the apartment state not be unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie jest to MTA , a po ustawieniu nie można zmienić stanu apartamentu.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. Jednak MTA powoduje, że wyjątek jest zgłaszany, gdy powłoka systemu operacyjnego zarządza wątkiem.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Zobacz też

Dotyczy

Start(ProcessStartInfo)

Uruchamia zasób procesu, który jest określony przez parametr zawierający informacje o uruchomieniu procesu (na przykład nazwę pliku procesu do uruchomienia) i kojarzy zasób z nowym Process składnikiem.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);
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

Parametry

startInfo
ProcessStartInfo

ProcessStartInfoZawiera informacje, które są używane do uruchamiania procesu, łącznie z nazwą pliku i wszystkimi argumentami wiersza polecenia.The ProcessStartInfo that contains the information that is used to start the process, including the file name and any command-line arguments.

Zwraca

Process

Nowy, Process który jest skojarzony z zasobem procesu lub null nie został uruchomiony żaden zasób procesu.A new Process that is associated with the process resource, or null if no process resource is started. Należy zauważyć, że nowy proces, który jest uruchamiany wraz z już uruchomionymi wystąpieniami tego samego procesu, będzie niezależny od innych.Note that a new process that's started alongside already running instances of the same process will be independent from the others. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z HasExited właściwością już ustawioną na true .In addition, Start may return a non-null Process with its HasExited property already set to true. W takim przypadku uruchomiony proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończył działanie.In this case, the started process may have activated an existing instance of itself and then exited.

Wyjątki

W właściwości parametru nie określono nazwy pliku startInfo FileName .No file name was specified in the startInfo parameter's FileName property.

-lub--or- UseShellExecuteWłaściwość startInfo parametru ma true również właściwość RedirectStandardInput , RedirectStandardOutput , lub RedirectStandardError true .The UseShellExecute property of the startInfo parameter is true and the RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError property is also true.

-lub--or- Właściwość UseShellExecute startInfo parametru ma wartość true , a UserName Właściwość nie jest null pusta lub Password Właściwość nie jest 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.

startInfoParametr ma wartość null .The startInfo parameter is null.

Obiekt procesu został już usunięty.The process object has already been disposed.

Wystąpił błąd podczas otwierania skojarzonego pliku.An error occurred when opening the associated file.

-lub--or- Nie można znaleźć pliku określonego we startInfo FileName Właściwości parametru.The file specified in the startInfo parameter's FileName property could not be found.

-lub--or- Suma długości argumentów i długość pełnej ścieżki do procesu przekracza 2080.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. Komunikat o błędzie skojarzony z tym wyjątkiem może być jednym z następujących: "obszar danych przesłany do wywołania systemowego jest za mały".The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." lub "odmowa dostępu".or "Access is denied."

Metoda nie jest obsługiwana w systemach operacyjnych bez obsługi powłoki, takiej jak nano Server (tylko platforma .NET Core).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

Przykłady

Poniższy przykład najpierw duplikuje wystąpienie programu Internet Explorer i wyświetli zawartość folderu Ulubione w przeglądarce.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. Następnie uruchamia inne wystąpienia programu Internet Explorer i wyświetla określone strony lub witryny.It then starts some other instances of Internet Explorer and displays some specific pages or sites. Na koniec program Internet Explorer zostanie uruchomiony z zminimalizowanym oknem podczas nawigowania do określonej lokacji.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

Aby uzyskać dodatkowe przykłady innych zastosowań tej metody, zobacz poszczególne właściwości ProcessStartInfo klasy.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()
{
    // 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

Uwagi

Użyj tego przeciążenia, aby uruchomić zasób procesu przez określenie ProcessStartInfo wystąpienia.Use this overload to start a process resource by specifying a ProcessStartInfo instance. Przeciążenie kojarzy zasób z nowym Process obiektem.The overload associates the resource with a new Process object.

Uwaga

Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null jest zwracany.If the address of the executable file to start is a URL, the process is not started and null is returned.

To Przeciążenie pozwala uruchomić proces bez wcześniejszego utworzenia nowego Process wystąpienia.This overload lets you start a process without first creating a new Process instance. Użycie tego przeciążenia z ProcessStartInfo parametrem jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania jego StartInfo właściwości i wywoływania Start dla tego Process wystąpienia.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.

Użycie ProcessStartInfo wystąpienia jako parametru umożliwia wywoływanie Start z największą kontrolę nad tym, co jest przesyłane do wywołania w celu uruchomienia procesu.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. Jeśli konieczne jest przekazanie tylko nazwy pliku lub nazwy pliku i argumentów, nie trzeba tworzyć nowego ProcessStartInfo wystąpienia, chociaż jest to opcja.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. Jedyną Process.StartInfo właściwością, która musi być ustawiona, jest FileName Właściwość.The only Process.StartInfo property that must be set is the FileName property. FileNameWłaściwość nie musi reprezentować pliku wykonywalnego.The FileName property does not need to represent an executable file. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją, która jest zainstalowana w systemie.It can be of any file type for which the extension has been associated with an application that is installed on the system. Na przykład FileName Właściwość może mieć rozszerzenie txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub jeśli masz skojarzone pliki doc za pomocą narzędzia do przetwarzania słów, takiego jak Microsoft Word, może być ono rozszerzeniem. doc.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.

Aplikację ClickOnce można uruchomić, określając lokalizację (na przykład adres sieci Web), z której pierwotnie zainstalowano aplikację.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. Nie uruchamiaj aplikacji ClickOnce przez określenie jej zainstalowanej lokalizacji na dysku twardym.Do not start a ClickOnce application by specifying its installed location on your hard drive.

Jeśli ProcessStartInfo.UserName właściwości i ProcessStartInfo.Password StartInfo wystąpienia są ustawione, CreateProcessWithLogonW wywoływana jest funkcja niezarządzana, która uruchamia proces w nowym oknie, nawet jeśli ProcessStartInfo.CreateNoWindow wartość właściwości jest true lub ProcessStartInfo.WindowStyle wartość właściwości jest 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. Jeśli ProcessStartInfo.Domain Właściwość ma wartość null , ProcessStartInfo.UserName Właściwość musi mieć format nazwy UPN, DNS_domain_name użytkownika @ .If the ProcessStartInfo.Domain property is null, the ProcessStartInfo.UserName property must be in UPN format, user@DNS_domain_name.

W przeciwieństwie do innych przeciążeń, Przeciążenie, Start które nie ma parametrów, nie jest static elementem członkowskim.Unlike the other overloads, the overload of Start that has no parameters is not a static member. Użyj tego przeciążenia, gdy zostało już utworzone Process wystąpienie i określone informacje o uruchomieniu (w tym nazwa pliku) i chcesz uruchomić zasób procesu i skojarzyć go z istniejącym Process wystąpieniem.Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. Użyj jednego z static przeciążeń, jeśli chcesz utworzyć nowy Process składnik zamiast uruchamiać proces dla istniejącego składnika.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. Zarówno to Przeciążenie, jak i Przeciążenie, które nie ma parametrów, umożliwiają określenie informacji startowych dla zasobu procesu za pomocą ProcessStartInfo wystąpienia.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.

Jeśli masz zmienną PATH zadeklarowaną w systemie przy użyciu cudzysłowów, musisz w pełni zakwalifikować tę ścieżkę podczas uruchamiania dowolnego procesu znajdującego się w tej lokalizacji.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. W przeciwnym razie system nie znajdzie ścieżki.Otherwise, the system will not find the path. Na przykład jeśli c:\mypath nie znajduje się w ścieżce i dodasz ją przy użyciu cudzysłowu: path = %path%;"c:\mypath" , należy w pełni zakwalifikować każdy proces c:\mypath podczas jego uruchamiania.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.

Uwaga

ASP.NET stronę sieci Web i kod sterujący serwera wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. Jeśli używasz Start metody na stronie sieci web ASP.NET lub kontrolce serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami.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. Ten proces nie jest uruchamiany w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.The process does not start in the same context as the client browser, and does not have access to the user desktop.

Za każdym razem Start , gdy używasz do uruchamiania procesu, może być konieczne jego zamknięcie lub ryzyko utraty zasobów systemowych.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. Zamknij procesy przy użyciu CloseMainWindow lub Kill .Close processes using CloseMainWindow or Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jego HasExited właściwości.You can check whether a process has already been closed by using its HasExited property.

W tym miejscu należy zauważyć, że w zarządzanych wątkach są wymagane informacje o Stanach Apartment.A note about apartment states in managed threads is necessary here. Gdy UseShellExecute znajduje się true na startInfo parametrze, upewnij się, że ustawiono model wątkowości w aplikacji przez ustawienie atrybutu [STAThread] w main() metodzie.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. W przeciwnym razie wątek zarządzany może być w stanie lub znajdować się unknown w MTA stanie, w którym wystąpił konflikt z 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. Niektóre metody wymagają, aby stan apartamentu nie był unknown .Some methods require that the apartment state not be unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie jest to MTA , a po ustawieniu nie można zmienić stanu apartamentu.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. Jednak MTA powoduje, że wyjątek jest zgłaszany, gdy powłoka systemu operacyjnego zarządza wątkiem.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

Zobacz też

Dotyczy

Start(String, IEnumerable<String>)

Uruchamia zasób procesu przez określenie nazwy aplikacji i zestawu argumentów wiersza polecenia.Starts a process resource by specifying the name of an application and a set of command line arguments.

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);
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process

Parametry

fileName
String

Nazwa dokumentu lub pliku aplikacji do uruchomienia w procesie.The name of a document or application file to run in the process.

arguments
IEnumerable<String>

Argumenty wiersza polecenia do przekazania podczas uruchamiania procesu.The command-line arguments to pass when starting the process.

Zwraca

Process

Nowy, Process który jest skojarzony z zasobem procesu lub null nie został uruchomiony żaden zasób procesu.A new Process that is associated with the process resource, or null if no process resource is started.

Uwagi

Każdy argument zostanie automatycznie zmieniony w razie potrzeby.Each argument will be escaped automatically if required.

Dotyczy