Process.Start Metoda

Definice

Spustí prostředek procesu a přidruží ho ke komponentě Process .

Přetížení

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

Spustí prostředek procesu zadáním názvu aplikace, sady argumentů příkazového řádku, uživatelského jména, hesla a domény a přidruží prostředek k nové Process komponentě.

Start(String, String, SecureString, String)

Spustí prostředek procesu zadáním názvu aplikace, uživatelského jména, hesla a domény a přidruží prostředek k nové Process komponentě.

Start(String, String)

Spustí prostředek procesu zadáním názvu aplikace a sady argumentů příkazového řádku a přidruží prostředek k nové Process komponentě.

Start(String)

Spustí prostředek procesu zadáním názvu dokumentu nebo souboru aplikace a přidruží prostředek k nové Process komponentě.

Start(ProcessStartInfo)

Spustí prostředek procesu určený parametrem obsahujícím informace o zahájení procesu (například název souboru procesu, který se má spustit), a přidruží prostředek k nové Process komponentě.

Start()

Spustí (nebo znovu použije) prostředek procesu určený StartInfo vlastností této Process komponenty a přidruží ho k komponentě.

Start(String, IEnumerable<String>)

Spustí prostředek procesu zadáním názvu aplikace a sady argumentů příkazového řádku.

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

Zdroj:
Process.Unix.cs
Zdroj:
Process.Unix.cs
Zdroj:
Process.Unix.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Spustí prostředek procesu zadáním názvu aplikace, sady argumentů příkazového řádku, uživatelského jména, hesla a domény a přidruží prostředek k nové Process komponentě.

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

Parametry

fileName
String

Název souboru aplikace, který se má spustit v procesu.

arguments
String

Argumenty příkazového řádku předané při spuštění procesu.

userName
String

Uživatelské jméno, které se má použít při spuštění procesu.

password
SecureString

A SecureString obsahující heslo, které se má použít při spuštění procesu.

domain
String

Doména, která se má použít při spuštění procesu.

Návraty

Nový Process , který je přidružený k prostředku procesu, nebo null pokud není spuštěn žádný prostředek procesu. Všimněte si, že nový proces, který je zahájen společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho může spustit vrátit proces, který není null a jeho HasExited vlastnost je již nastavena na true. V takovém případě mohl spuštěný proces aktivovat existující instanci sebe sama a pak ho ukončit.

Atributy

Výjimky

Nebyl zadán žádný název souboru.

Při otevírání přidruženého souboru došlo k chybě.

-nebo-

Soubor zadaný v souboru fileName nebyl nalezen.

-nebo-

Součet délky argumentů a délky celé cesty k přidruženému souboru přesahuje 2080. Chybová zpráva přidružená k této výjimce může být jedna z následujících: "Datová oblast předaná systémovému volání je příliš malá." nebo "Přístup byl odepřen.".

Objekt procesu již byl odstraněn.

Tento člen není podporovaný v Linuxu nebo macOS (jenom .NET Core).

Poznámky

Toto přetížení použijte k vytvoření nového procesu a jeho primárního vlákna zadáním názvu souboru, argumentů příkazového řádku, uživatelského jména, hesla a domény. Nový proces pak spustí zadaný spustitelný soubor v kontextu zabezpečení zadaných přihlašovacích údajů (uživatele, domény a hesla).

Důležité

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Tuto metodu volejte pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Poznámka

Pokud je spustitelný soubor umístěn na vzdálené jednotce, musíte síťovou sdílenou složku identifikovat pomocí identifikátoru URI (Uniform Resource Identifier), nikoli písmene propojené jednotky.

Poznámka

Pokud je adresa spustitelného souboru adresa URL, proces se nespustí a null vrátí se.

Toto přetížení umožňuje spustit proces, aniž byste nejprve vytvořili novou Process instanci. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileNamevlastností StartInfo vlastnosti , UserNameArguments, Passworda Domain a volání StartProcess instance.

Podobně jako dialogové okno Spustit může přijmout název spustitelného souboru s příponou .exe nebo bez přípony, je rozšíření .exe v parametru fileName volitelné. Parametr můžete například nastavit fileName na "Notepad.exe" nebo "Poznámkový blok". fileName Pokud parametr představuje spustitelný soubor, arguments může parametr představovat soubor, se kterými se má pracovat, například textový soubor v Notepad.exe myfile.txtsouboru .

Poznámka

Název souboru musí představovat spustitelný soubor v Start přetíženích, která mají userNameparametry , passworda domain .

Kdykoli použijete Start ke spuštění procesu, možná ho budete muset zavřít nebo riskujete ztrátu systémových prostředků. Ukončete procesy pomocí nebo CloseMainWindowKill. Pomocí jeho HasExited vlastnosti můžete zkontrolovat, jestli už byl proces zavřený.

Platí pro

Start(String, String, SecureString, String)

Zdroj:
Process.Unix.cs
Zdroj:
Process.Unix.cs
Zdroj:
Process.Unix.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Spustí prostředek procesu zadáním názvu aplikace, uživatelského jména, hesla a domény a přidruží prostředek k nové Process komponentě.

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

Parametry

fileName
String

Název souboru aplikace, který se má spustit v procesu.

userName
String

Uživatelské jméno, které se má použít při spuštění procesu.

password
SecureString

A SecureString obsahující heslo, které se má použít při spuštění procesu.

domain
String

Doména, která se má použít při spuštění procesu.

Návraty

Nový Process , který je přidružený k prostředku procesu, nebo null pokud není spuštěn žádný prostředek procesu. Všimněte si, že nový proces, který je zahájen společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho může spustit vrátit proces, který není null a jeho HasExited vlastnost je již nastavena na true. V takovém případě mohl spuštěný proces aktivovat existující instanci sebe sama a pak ho ukončit.

Atributy

Výjimky

Nebyl zadán žádný název souboru.

Při otevírání přidruženého souboru došlo k chybě.

-nebo-

Soubor zadaný v souboru fileName nebyl nalezen.

Objekt procesu již byl odstraněn.

Tento člen není podporovaný v Linuxu nebo macOS (jenom .NET Core).

Příklady

Následující příklad kódu ukazuje použití tohoto přetížení ke spuštění spustitelného Win32Exception souboru a také demonstruje vyvolání při pokusu o spuštění aplikace přidružené k nevýkonného souboru.

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

Poznámky

Toto přetížení použijte k vytvoření nového procesu a jeho primárního vlákna zadáním názvu souboru, uživatelského jména, hesla a domény. Nový proces pak spustí zadaný spustitelný soubor v kontextu zabezpečení zadaných přihlašovacích údajů (uživatele, domény a hesla).

Důležité

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Tuto metodu volejte pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Poznámka

Pokud je spustitelný soubor umístěn na vzdálené jednotce, musíte síťovou sdílenou složku identifikovat pomocí identifikátoru URI (Uniform Resource Identifier), nikoli písmene propojené jednotky.

Poznámka

Pokud je adresa spustitelného souboru adresa URL, proces se nespustí a null vrátí se.

Toto přetížení umožňuje spustit proces, aniž byste nejprve vytvořili novou Process instanci. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileNamevlastností StartInfo , PasswordUserName, a a Domain volání StartProcess instance.

Podobně jako dialogové okno Spustit může přijmout název spustitelného souboru s příponou .exe nebo bez přípony, je rozšíření .exe v parametru fileName volitelné. Parametr můžete například nastavit fileName na "Notepad.exe" nebo "Poznámkový blok". fileName Pokud parametr představuje spustitelný soubor, arguments může parametr představovat soubor, se kterými se má pracovat, například textový soubor v Notepad.exe myfile.txtsouboru .

Poznámka

Název souboru musí představovat spustitelný soubor v Start přetíženích, která mají userNameparametry , passworda domain .

Kdykoli použijete Start ke spuštění procesu, možná ho budete muset zavřít nebo riskujete ztrátu systémových prostředků. Ukončete procesy pomocí nebo CloseMainWindowKill. Pomocí jeho HasExited vlastnosti můžete zkontrolovat, jestli už byl proces zavřený.

Platí pro

Start(String, String)

Zdroj:
Process.cs
Zdroj:
Process.cs
Zdroj:
Process.cs

Spustí prostředek procesu zadáním názvu aplikace a sady argumentů příkazového řádku a přidruží prostředek k nové Process komponentě.

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

Parametry

fileName
String

Název souboru aplikace, který se má spustit v procesu.

arguments
String

Argumenty příkazového řádku předané při spuštění procesu.

Návraty

Nový Process , který je přidružený k prostředku procesu, nebo null pokud není spuštěn žádný prostředek procesu. Všimněte si, že nový proces, který je zahájen společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho může spustit vrátit proces, který není null a jeho HasExited vlastnost je již nastavena na true. V takovém případě mohl spuštěný proces aktivovat existující instanci sebe sama a pak ho ukončit.

Atributy

Výjimky

Parametr fileName nebo arguments je null.

Při otevírání přidruženého souboru došlo k chybě.

-nebo-

Soubor zadaný v souboru fileName nebyl nalezen.

-nebo-

Součet délky argumentů a délky celé cesty k procesu přesahuje 2080. Chybová zpráva přidružená k této výjimce může být jedna z následujících: "Datová oblast předaná systémovému volání je příliš malá." nebo "Přístup byl odepřen.".

Objekt procesu již byl odstraněn.

Proměnná prostředí PATH obsahuje řetězec obsahující uvozovky.

Příklady

Následující příklad nejprve vytvoří instanci Internet Exploreru a zobrazí obsah složky Oblíbené položky v prohlížeči. Pak spustí některé další instance Internet Exploreru a zobrazí některé konkrétní stránky nebo weby. Nakonec spustí Internet Explorer s minimalizovaným oknem při přechodu na konkrétní web.

#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

Poznámky

Toto přetížení slouží ke spuštění prostředku procesu zadáním názvu souboru a argumentů příkazového řádku. Přetížení přidruží prostředek k novému Process objektu.

Důležité

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Tuto metodu volejte pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Poznámka

Pokud je adresa spustitelného souboru adresa URL, proces se nespustí a null vrátí se.

Toto přetížení umožňuje spustit proces, aniž byste nejprve vytvořili novou Process instanci. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileName a členů StartInfo vlastnosti a Arguments volání Start instanceProcess.

Spuštění procesu zadáním názvu souboru a argumentů je podobné zadání názvu souboru a argumentů příkazového řádku v Run dialogovém okně nabídky Windows Start . Proto název souboru nemusí představovat spustitelný soubor. Může být libovolného typu souboru, pro který je přípona přidružena k aplikaci nainstalované v systému. Název souboru může mít například příponu .txt, pokud jste přidružovali textové soubory k editoru, jako je Poznámkový blok, nebo může mít .doc, pokud jste .doc soubory přidružovali k nástroji pro zpracování textu, jako je například Microsoft Word. Podobně, jako Run dialogové okno může přijmout název spustitelného souboru s příponou .exe nebo bez, je rozšíření .exe v parametru fileName volitelné. Parametr můžete například nastavit fileName na "Notepad.exe" nebo "Poznámkový blok". fileName Pokud parametr představuje spustitelný soubor, arguments může parametr představovat soubor, se kterými se má pracovat, například textový soubor v Notepad.exe myfile.txtsouboru . fileName Pokud parametr představuje soubor příkazu (.cmd), musí parametr obsahovat argument "/c" nebo "/k", arguments aby bylo možné určit, zda se příkazové okno ukončí nebo zůstane po dokončení.

Na rozdíl od ostatních přetížení není přetížení Start , které nemá žádné parametry, static členem. Toto přetížení použijte, pokud jste již vytvořili Process instanci a zadané informace o spuštění (včetně názvu souboru) a chcete spustit prostředek procesu a přidružit ho k existující Process instanci. Pokud chcete vytvořit novou Process komponentu místo zahájení procesu pro existující komponentustatic, použijte jedno z přetížení. Toto přetížení i přetížení, které nemá žádné parametry, umožňují zadat název souboru prostředku procesu, který se má spustit, a argumenty příkazového řádku, které se mají předat.

Pokud máte v systému deklarovanou proměnnou cesty pomocí uvozovek, musíte tuto cestu plně kvalifikovat při spuštění jakéhokoli procesu nalezeného v tomto umístění. V opačném případě systém nenajde cestu. Pokud c:\mypath například není v cestě a přidáte ji pomocí uvozovek: path = %path%;"c:\mypath", musíte při jeho spuštění plně kvalifikovat jakýkoli proces.c:\mypath

Poznámka

ASP.NET ovládací kód webové stránky a serveru se spustí v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ovládacím prvku webové stránky ASP.NET nebo serveru, spustí se nový proces na webovém serveru s omezenými oprávněními. Proces se nespustí ve stejném kontextu jako klientský prohlížeč a nemá přístup k uživatelské ploše.

Kdykoli použijete Start ke spuštění procesu, možná ho budete muset zavřít nebo riskujete ztrátu systémových prostředků. Ukončete procesy pomocí nebo CloseMainWindowKill. Pomocí jeho HasExited vlastnosti můžete zkontrolovat, jestli už byl proces zavřený.

Tady je potřeba uvést poznámku o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true ve vlastnosti komponenty StartInfo procesu, ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] v main() metodě. V opačném případě může být spravované vlákno ve unknown stavu nebo ve stavu, jehož druhé vlákno je v MTA konfliktu se stavem trueUseShellExecute . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastaven, když aplikace na takovou metodu narazí, ve výchozím nastavení se nastaví na MTAa po nastavení nelze změnit stav apartmánu. MTA Způsobí však výjimku, když prostředí operačního systému spravuje vlákno.

Viz také

Platí pro

Start(String)

Zdroj:
Process.cs
Zdroj:
Process.cs
Zdroj:
Process.cs

Spustí prostředek procesu zadáním názvu dokumentu nebo souboru aplikace a přidruží prostředek k nové Process komponentě.

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

Parametry

fileName
String

Název dokumentu nebo souboru aplikace, který se má v procesu spustit.

Návraty

Nový Process , který je přidružený k prostředku procesu, nebo null pokud není spuštěn žádný prostředek procesu. Všimněte si, že nový proces, který je zahájen společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho může spustit vrátit proces, který není null a jeho HasExited vlastnost je již nastavena na true. V takovém případě mohl spuštěný proces aktivovat existující instanci sebe sama a pak ho ukončit.

Atributy

Výjimky

Při otevírání přidruženého souboru došlo k chybě.

-nebo-

Soubor zadaný v souboru fileName nebyl nalezen.

Objekt procesu již byl odstraněn.

Proměnná prostředí PATH obsahuje řetězec obsahující uvozovky.

Příklady

Následující příklad nejprve vytvoří instanci Internet Exploreru a zobrazí obsah složky Oblíbené položky v prohlížeči. Pak spustí některé další instance Internet Exploreru a zobrazí některé konkrétní stránky nebo weby. Nakonec spustí Internet Explorer s minimalizovaným oknem při přechodu na konkrétní web.

#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

Poznámky

Toto přetížení použijte ke spuštění prostředku procesu zadáním jeho názvu souboru. Přetížení přidruží prostředek k novému Process objektu.

Důležité

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Tuto metodu volejte pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Poznámka

Pokud je adresa spustitelného souboru adresa URL, proces se nespustí a null vrátí se.

Toto přetížení umožňuje spustit proces, aniž byste nejprve vytvořili novou Process instanci. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileName člena StartInfo vlastnosti a volání StartProcess instance.

Aplikaci ClickOnce můžete spustit nastavením parametru fileName na umístění (například webovou adresu), ze kterého jste aplikaci původně nainstalovali. Nespoutejte aplikaci ClickOnce zadáním jejího umístění nainstalovaného na pevném disku.

Spuštění procesu zadáním názvu souboru se podobá zadání informací v Run dialogovém okně nabídky Windows Start . Proto název souboru nemusí představovat spustitelný soubor. Může být libovolného typu souboru, pro který je přípona přidružena k aplikaci nainstalované v systému. Název souboru může mít například příponu .txt, pokud jste přidružovali textové soubory k editoru, jako je Poznámkový blok, nebo může mít .doc, pokud jste .doc soubory přidružovali k nástroji pro zpracování textu, jako je například Microsoft Word. Podobně, jako Run dialogové okno může přijmout název spustitelného souboru s příponou .exe nebo bez, je rozšíření .exe v parametru fileName volitelné. Parametr můžete například nastavit fileName na "Notepad.exe" nebo "Poznámkový blok".

Toto přetížení neumožňuje argumenty příkazového řádku pro proces. Pokud potřebujete zadat jeden nebo více argumentů příkazového řádku pro proces, použijte Process.Start(ProcessStartInfo) přetížení nebo Process.Start(String, String) .

Na rozdíl od ostatních přetížení není přetížení Start , které nemá žádné parametry, static členem. Toto přetížení použijte, pokud jste již vytvořili Process instanci a zadané informace o spuštění (včetně názvu souboru) a chcete spustit prostředek procesu a přidružit ho k existující Process instanci. Pokud chcete vytvořit novou Process komponentu místo zahájení procesu pro existující komponentustatic, použijte jedno z přetížení. Toto přetížení i přetížení, které nemá žádné parametry, umožňují zadat název souboru prostředku procesu, který se má spustit.

Pokud máte v systému deklarovanou proměnnou cesty pomocí uvozovek, musíte tuto cestu plně kvalifikovat při spuštění jakéhokoli procesu nalezeného v tomto umístění. V opačném případě systém nenajde cestu. Pokud c:\mypath například není v cestě a přidáte ji pomocí uvozovek: path = %path%;"c:\mypath", musíte při jeho spuštění plně kvalifikovat jakýkoli proces.c:\mypath

Poznámka

ASP.NET ovládací kód webové stránky a serveru se spustí v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ovládacím prvku webové stránky ASP.NET nebo serveru, spustí se nový proces na webovém serveru s omezenými oprávněními. Proces se nespustí ve stejném kontextu jako klientský prohlížeč a nemá přístup k uživatelské ploše.

Kdykoli použijete Start ke spuštění procesu, možná ho budete muset zavřít nebo riskujete ztrátu systémových prostředků. Ukončete procesy pomocí nebo CloseMainWindowKill. Pomocí jeho HasExited vlastnosti můžete zkontrolovat, jestli už byl proces zavřený.

Tady je potřeba uvést poznámku o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true ve vlastnosti komponenty StartInfo procesu, ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] v main() metodě. V opačném případě může být spravované vlákno ve unknown stavu nebo ve stavu, jehož druhé vlákno je v MTA konfliktu se stavem trueUseShellExecute . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastaven, když aplikace na takovou metodu narazí, ve výchozím nastavení se nastaví na MTAa po nastavení nelze změnit stav apartmánu. MTA Způsobí však výjimku, když prostředí operačního systému spravuje vlákno.

Viz také

Platí pro

Start(ProcessStartInfo)

Zdroj:
Process.cs
Zdroj:
Process.cs
Zdroj:
Process.cs

Spustí prostředek procesu určený parametrem obsahujícím informace o zahájení procesu (například název souboru procesu, který se má spustit), a přidruží prostředek k nové Process komponentě.

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

Parametry

startInfo
ProcessStartInfo

Obsahuje ProcessStartInfo informace, které se používají ke spuštění procesu, včetně názvu souboru a všech argumentů příkazového řádku.

Návraty

Nový Process , který je přidružený k prostředku procesu, nebo null pokud není spuštěn žádný prostředek procesu. Všimněte si, že nový proces, který je zahájen společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho může spustit vrátit proces, který není null a jeho HasExited vlastnost je již nastavena na true. V takovém případě mohl spuštěný proces aktivovat existující instanci sebe sama a pak ho ukončit.

Atributy

Výjimky

Ve vlastnosti parametru startInfoFileName nebyl zadán žádný název souboru.

-nebo-

Vlastnost UseShellExecute parametru startInfo je true a RedirectStandardInputvlastnost , RedirectStandardOutputnebo RedirectStandardError je také true.

-nebo-

Vlastnost UseShellExecute parametru startInfo je true a UserName vlastnost není null nebo je prázdná nebo Password vlastnost není null.

Parametr startInfo je null.

Objekt procesu již byl odstraněn.

Při otevírání přidruženého souboru došlo k chybě.

-nebo-

Soubor zadaný ve vlastnosti parametru startInfoFileName nebyl nalezen.

-nebo-

Součet délky argumentů a délky celé cesty k procesu přesahuje 2080. Chybová zpráva přidružená k této výjimce může být jedna z následujících: "Datová oblast předaná systémovému volání je příliš malá." nebo "Přístup byl odepřen.".

Metoda není podporovaná v operačních systémech bez podpory prostředí, jako je Nano Server (jenom .NET Core).

Příklady

Následující příklad nejprve vytvoří instanci Internet Exploreru a zobrazí obsah složky Oblíbené položky v prohlížeči. Pak spustí některé další instance Internet Exploreru a zobrazí některé konkrétní stránky nebo weby. Nakonec spustí Internet Explorer s minimalizovaným oknem při přechodu na konkrétní web.

Další příklady jiných použití této metody najdete v jednotlivých vlastnostech ProcessStartInfo třídy.

#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

Poznámky

Toto přetížení použijte ke spuštění prostředku procesu zadáním ProcessStartInfo instance. Přetížení přidruží prostředek k novému Process objektu.

Důležité

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Tuto metodu volejte pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Poznámka

Pokud je adresa spustitelného souboru adresa URL, proces se nespustí a null vrátí se.

Toto přetížení umožňuje spustit proces, aniž byste nejprve vytvořili novou Process instanci. Použití tohoto přetížení s parametrem ProcessStartInfo je alternativou k explicitním krokům vytvoření nové Process instance, nastavení jejích StartInfo vlastností a volání Start instance Process .

ProcessStartInfo Použití instance jako parametru vám umožní volat Start s největší kontrolou nad tím, co se předá do volání, a zahájit proces. Pokud potřebujete předat pouze název souboru nebo název souboru a argumenty, není nutné vytvářet novou ProcessStartInfo instanci, i když je to možnost. Jedinou Process.StartInfo vlastností, která musí být nastavena, FileName je vlastnost . Vlastnost FileName nemusí představovat spustitelný soubor. Může být libovolného typu souboru, pro který je přípona přidružena k aplikaci, která je nainstalována v systému. Například vlastnost může mít příponu .txt, FileName pokud jste přidružovali textové soubory k editoru, jako je Poznámkový blok, nebo může mít příponu .doc, pokud jste .doc soubory přidružovali k nástroji pro zpracování textu, jako je například Microsoft Word.

Aplikaci ClickOnce můžete spustit zadáním umístění (například webové adresy), ze kterého jste aplikaci původně nainstalovali. Nespoutejte aplikaci ClickOnce zadáním jejího umístění nainstalovaného na pevném disku.

ProcessStartInfo.UserName Pokud jsou nastaveny vlastnosti StartInfo a ProcessStartInfo.Password instance, je volána nespravovaná CreateProcessWithLogonW funkce, která spustí proces v novém okně i v případě, že ProcessStartInfo.CreateNoWindow hodnota vlastnosti je true nebo ProcessStartInfo.WindowStyle hodnota vlastnosti je ProcessWindowStyle.Hidden. ProcessStartInfo.Domain Pokud je nullvlastnost , ProcessStartInfo.UserName musí být vlastnost ve formátu UPN, uživatel@DNS_domain_name.

Na rozdíl od ostatních přetížení není přetížení Start , které nemá žádné parametry, static členem. Toto přetížení použijte, pokud jste již vytvořili Process instanci a zadané informace o spuštění (včetně názvu souboru) a chcete spustit prostředek procesu a přidružit ho k existující Process instanci. Pokud chcete vytvořit novou Process komponentu místo zahájení procesu pro existující komponentustatic, použijte jedno z přetížení. Toto přetížení i přetížení, které nemá žádné parametry, umožňují zadat informace o spuštění pro prostředek procesu pomocí ProcessStartInfo instance.

Pokud máte v systému deklarovanou proměnnou cesty pomocí uvozovek, musíte tuto cestu plně kvalifikovat při spuštění jakéhokoli procesu nalezeného v tomto umístění. V opačném případě systém nenajde cestu. Pokud c:\mypath například není v cestě a přidáte ji pomocí uvozovek: path = %path%;"c:\mypath", musíte při jeho spuštění plně kvalifikovat jakýkoli proces.c:\mypath

Poznámka

ASP.NET ovládací kód webové stránky a serveru se spustí v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ovládacím prvku webové stránky ASP.NET nebo serveru, spustí se nový proces na webovém serveru s omezenými oprávněními. Proces se nespustí ve stejném kontextu jako klientský prohlížeč a nemá přístup k uživatelské ploše.

Kdykoli použijete Start ke spuštění procesu, možná ho budete muset zavřít nebo riskujete ztrátu systémových prostředků. Ukončete procesy pomocí nebo CloseMainWindowKill. Pomocí jeho HasExited vlastnosti můžete zkontrolovat, jestli už byl proces zavřený.

Tady je potřeba uvést poznámku o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true v parametru startInfo , ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] v main() metodě. V opačném případě může být spravované vlákno ve unknown stavu nebo ve stavu, jehož druhé vlákno je v MTA konfliktu se stavem trueUseShellExecute . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastaven, když aplikace na takovou metodu narazí, ve výchozím nastavení se nastaví na MTAa po nastavení nelze změnit stav apartmánu. MTA Způsobí však výjimku, když prostředí operačního systému spravuje vlákno.

Viz také

Platí pro

Start()

Zdroj:
Process.cs
Zdroj:
Process.cs
Zdroj:
Process.cs

Spustí (nebo znovu) prostředek procesu určený StartInfo vlastností této Process komponenty a přidruží ho ke komponentě.

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

Návraty

true pokud je spuštěn prostředek procesu; false pokud se nespustit žádný nový prostředek procesu (například při opakovaném použití existujícího procesu).

Atributy

Výjimky

V komponentě ProcessStartInfonebyl zadán žádný název souboru .

-nebo-

Člen UseShellExecuteStartInfo vlastnosti je true , RedirectStandardOutputRedirectStandardInputnebo RedirectStandardError je true.

Při otevírání přidruženého souboru došlo k chybě.

Objekt procesu již byl odstraněn.

Metoda není podporovaná v operačních systémech bez podpory prostředí, jako je Nano Server (jenom .NET Core).

Příklady

Následující příklad používá instanci Process třídy ke spuštění procesu.

#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

Poznámky

Toto přetížení použijte ke spuštění prostředku procesu a jeho přidružení k aktuální Process komponentě. Vrácená hodnota true označuje, že byl spuštěn nový prostředek procesu. Pokud je již v počítači spuštěný prostředek procesu určený FileName členem StartInfo vlastnosti, není spuštěn žádný další prostředek procesu. Místo toho se prostředek spuštěného procesu znovu použije a false vrátí se.

Aplikaci ClickOnce můžete spustit zadáním umístění (například webové adresy), ze kterého jste aplikaci původně nainstalovali. Nespoutejte aplikaci ClickOnce zadáním jejího umístění nainstalovaného na pevném disku.

Důležité

Použití instance tohoto objektu s nedůvěryhodnými daty představuje bezpečnostní riziko. Tento objekt používejte pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Poznámka

Pokud používáte Visual Studio, toto přetížení Start metody je to, které vložíte do kódu po přetažení Process komponenty do návrháře. Pomocí okna Properties rozbalte StartInfo kategorii a zapište do FileName vlastnosti příslušnou hodnotu. Změny se zobrazí v postupu formuláře InitializeComponent .

Toto přetížení Start není static metoda. Musíte ji volat z instance Process třídy. Před voláním Startje nutné nejprve zadat StartInfo informace o vlastnosti pro tuto Process instanci, protože tyto informace se používají k určení prostředku procesu, který se má spustit.

Další přetížení Start metody jsou static členy. Před voláním těchto přetížení metody není nutné vytvořit instanci Process komponenty. Místo toho můžete volat StartProcess samotnou třídu a při spuštění procesu se vytvoří nová Process komponenta. Nebo se vrátí, null pokud byl proces znovu použit. Prostředek procesu se automaticky přidružuje k nové Process komponentě, která je vrácena metodou Start .

Členy StartInfo lze použít k duplikování funkcí dialogového Run okna nabídky systému Windows Start . Cokoli, co lze zadat do příkazového řádku, lze spustit nastavením příslušných hodnot ve StartInfo vlastnosti . Jedinou StartInfo vlastností, která musí být nastavena, FileName je vlastnost . Vlastnost FileName nemusí být spustitelný soubor. Může to být jakýkoli typ souboru, pro který byla přípona přidružena k aplikaci, která je nainstalována v systému. Vlastnost může mít například příponu .txt, FileName pokud jste přidružovali textové soubory k editoru, jako je Poznámkový blok, nebo může mít příponu .doc, pokud jste k .doc souborům přidružovali nástroj pro zpracování textu, jako je například Microsoft Word.

Na příkazovém řádku můžete zadat akce, které se mají provést u určitých typů souborů. Můžete například tisknout dokumenty nebo upravovat textové soubory. Zadejte tyto akce pomocí Verb člena StartInfo vlastnosti . U jiných typů souborů můžete při spuštění souboru z dialogového okna zadat argumenty příkazového Run řádku. Pokud jako argument zadáte prohlížeč FileName, můžete například jako argument předat adresu URL. Tyto argumenty lze zadat v členu StartInfoArguments vlastnosti.

Pokud máte proměnnou cesty deklarovanou v systému pomocí uvozovek, musíte tuto cestu plně kvalifikovat při spuštění jakéhokoli procesu nalezeného v tomto umístění. V opačném případě systém cestu nenajde. Pokud c:\mypath například není ve vaší cestě a přidáte ho pomocí uvozovek: path = %path%;"c:\mypath", musíte při jeho spuštění plně kvalifikovat jakýkoli proces v c:\mypath .

Poznámka

ASP.NET kód webové stránky a serveru se spustí v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ovládacím prvku ASP.NET webové stránky nebo serveru, nový proces se spustí na webovém serveru s omezenými oprávněními. Proces se nespustí ve stejném kontextu jako klientský prohlížeč a nemá přístup k uživatelské ploše.

Kdykoli spustíte proces pomocí Start příkazu , možná ho budete muset zavřít nebo riskujete ztrátu systémových prostředků. Ukončete procesy pomocí nebo CloseMainWindowKill. Pomocí jeho HasExited vlastnosti můžete zkontrolovat, jestli už byl proces zavřený.

Tady je potřeba poznámka o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true ve vlastnosti komponenty StartInfo procesu, ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] v main() metodě. V opačném případě může být spravované vlákno ve unknown stavu nebo ve stavu , přičemž druhé vlákno je v MTA konfliktu se stavem trueUseShellExecute . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastavený, když aplikace na takovou metodu narazí, použije se MTAvýchozí hodnota a po nastavení se stav bytu nedá změnit. MTA Způsobí však výjimku, pokud prostředí operačního systému spravuje vlákno.

Viz také

Platí pro

Start(String, IEnumerable<String>)

Zdroj:
Process.cs
Zdroj:
Process.cs
Zdroj:
Process.cs

Spustí prostředek procesu zadáním názvu aplikace a sady argumentů příkazového řádku.

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

Parametry

fileName
String

Název souboru dokumentu nebo aplikace, který se má v procesu spustit.

arguments
IEnumerable<String>

Argumenty příkazového řádku, které se mají předat při spuštění procesu.

Návraty

Nový Process , který je přidružený k prostředku procesu, nebo null pokud není spuštěn žádný prostředek procesu.

Atributy

Poznámky

Každý argument bude v případě potřeby automaticky uchycený.

Důležité

Volání této metody s nedůvěryhodnými daty představuje bezpečnostní riziko. Volání této metody pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.

Platí pro