Sdílet prostřednictvím


Process.Start Metoda

Definice

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

Přetížení

Name Description
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žení prostředku 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žením prostředku 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 spuštění 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 ke 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
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žení prostředku 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, které se mají předat 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ý se spustil společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho start může vrátit non-null Proces s jeho HasExited vlastnost již nastavena na true. V tomto případě mohl spuštěný proces aktivovat existující instanci samotné a poté se ukončil.

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 fileName souboru 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 možností: Datová oblast předaná systémovému volání je příliš malá nebo Přístup byl odepřen.

Objekt procesu již byl uvolněn.

Tento člen není podporován v Linuxu nebo macOS (jenom .NET Core).

Poznámky

Toto přetížení použijte k vytvoření nového procesu a 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živatel, doména a heslo).

Důležité

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

Poznámka:

Pokud je spustitelný soubor umístěný na vzdálené jednotce, musíte sdílenou síťovou složku identifikovat pomocí identifikátoru URI (Uniform Resource Identifier), nikoli písmena 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 bez prvního vytvoření nové Process instance. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileName, Arguments, PasswordUserName, a Domain vlastnosti StartInfo vlastnosti vlastnosti a volání Start instanceProcess.

Podobně, stejně jako dialogové okno Spustit může přijmout spustitelný soubor s příponou .exe nebo bez přípony, je přípona .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, může parametr představovat soubor, arguments na který se má jednat, například textový soubor v Notepad.exe myfile.txt.

Poznámka:

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

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í CloseMainWindow nebo Kill. Pomocí vlastnosti HasExited můžete zkontrolovat, jestli už byl proces uzavřen.

Platí pro

Start(String, String, SecureString, String)

Zdroj:
Process.Unix.cs
Zdroj:
Process.Unix.cs
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žením prostředku 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ý se spustil společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho start může vrátit non-null Proces s jeho HasExited vlastnost již nastavena na true. V tomto případě mohl spuštěný proces aktivovat existující instanci samotné a poté se ukončil.

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 fileName souboru nebyl nalezen.

Objekt procesu již byl uvolněn.

Tento člen není podporován 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 souboru a také ukazuje vyvolání Win32Exception při pokusu o spuštění aplikace asociované s nonexecutable soubor.

// 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();
        }
    }
}
// NOTE: This example requires a text.txt file file in your Documents folder
open System
open System.Diagnostics
open System.Security
open System.ComponentModel

printf "Enter your domain: "
let domain = stdin.ReadLine()
printf "Enter you user name: "
let uname = stdin.ReadLine()
printf "Enter your password: "
let password = new SecureString()

let mutable key = Console.ReadKey(true)

while key.Key <> ConsoleKey.Enter do
    // Ignore any key out of range.
    if int key.Key >= 33 && int key.Key <= 90 && key.Key <> ConsoleKey.Enter then
        // Append the character to the password.
        password.AppendChar key.KeyChar
        Console.Write "*"

    key <- Console.ReadKey(true)

printfn ""

try
    printfn "\nTrying to launch NotePad using your login information..."
    Process.Start("notepad.exe", uname, password, domain) |> ignore
with :? Win32Exception as ex ->
    printfn $"{ex.Message}"

let path = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments + @"\"

try
    // The following call to Start succeeds if test.txt exists.
    printfn "\nTrying to launch 'text.txt'..."
    Process.Start $"{path}text.txt" |> ignore
with :? Win32Exception as ex ->
    printfn $"{ex.Message}"

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.
        printfn "\nTrying to launch 'text.txt' with your login information..."
        Process.Start($"{path}text.txt", uname, password, domain) |> ignore
    with :? Win32Exception as ex ->
        printfn $"{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 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živatel, doména a heslo).

Důležité

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

Poznámka:

Pokud je spustitelný soubor umístěný na vzdálené jednotce, musíte sdílenou síťovou složku identifikovat pomocí identifikátoru URI (Uniform Resource Identifier), nikoli písmena 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 bez prvního vytvoření nové Process instance. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileName, PasswordUserName, a Domain vlastnosti StartInfo vlastnosti vlastnosti a volání Start instanceProcess.

Podobně, stejně jako dialogové okno Spustit může přijmout spustitelný soubor s příponou .exe nebo bez přípony, je přípona .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, může parametr představovat soubor, arguments na který se má jednat, například textový soubor v Notepad.exe myfile.txt.

Poznámka:

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

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í CloseMainWindow nebo Kill. Pomocí vlastnosti HasExited můžete zkontrolovat, jestli už byl proces uzavřen.

Platí pro

Start(String, String)

Zdroj:
Process.cs
Zdroj:
Process.cs
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);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(string fileName, 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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
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
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, 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. Všimněte si, že nový proces, který se spustil společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho start může vrátit non-null Proces s jeho HasExited vlastnost již nastavena na true. V tomto případě mohl spuštěný proces aktivovat existující instanci samotné a poté se ukončil.

Atributy

Výjimky

Parametr fileName je argumentsnull.

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

nebo

Soubor zadaný v fileName souboru nebyl nalezen.

nebo

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

Objekt procesu již byl uvolněn.

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

Příklady

Následující příklad nejprve vytvoří instanci Aplikace Internet Explorer a zobrazí obsah složky Oblíbené v prohlížeči. Potom 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;
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();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

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

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

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
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 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. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete 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 bez prvního vytvoření nové Process instance. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileName a Arguments členů StartInfo vlastnosti a volání Start instance Process .

Zahájení 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 to být jakýkoli typ souboru, pro který byla přípona přidružena k aplikaci nainstalované v systému. Název souboru může mít například příponu .txt, pokud máte přidružené textové soubory k editoru, například Poznámkový blok, nebo může mít .doc, pokud jste přidružovali .doc soubory s nástrojem pro zpracování textu, jako je například Microsoft Word. Podobně, stejně jako Run dialogové okno může přijmout spustitelný soubor s příponou .exe nebo bez přípony, je přípona .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, může parametr představovat soubor, arguments na který se má jednat, například textový soubor v Notepad.exe myfile.txt. fileName Pokud parametr představuje soubor příkazu (.cmd), musí parametr obsahovat buď argument "/c" nebo "/k", arguments aby bylo možné určit, jestli 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, členem static . Toto přetížení použijte, pokud jste již vytvořili Process instanci a zadali počáteční informace (včetně názvu souboru) a chcete spustit prostředek procesu a přidružit ho k existující Process instanci. Použijte jedno z static přetížení, pokud chcete vytvořit novou Process komponentu namísto spuštění procesu pro existující komponentu. Toto přetížení i přetížení, které nemá žádné parametry, umožňují zadat název souboru prostředku procesu pro spuštění a předání argumentů příkazového řádku.

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

Poznámka:

ASP.NET webové stránky a kódu řízení serveru se spouští v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ASP.NET webové stránce nebo ovládacím prvku 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 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í CloseMainWindow nebo Kill. Pomocí vlastnosti HasExited můžete zkontrolovat, jestli už byl proces uzavřen.

Tady je potřeba poznámka o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true součástí procesu vlastnost StartInfo , ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] metody main() . V opačném případě může být spravované vlákno ve unknown stavu nebo ve MTA stavu, z nichž druhý je v konfliktu s UseShellExecute tím, trueže . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastaven, když aplikace narazí na takovou metodu, výchozí hodnota MTAje a jakmile je nastavena, stav apartmánu nelze změnit. Způsobí však výjimku, MTA 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
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);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Parametry

fileName
String

Název souboru dokumentu nebo aplikace, který se má spustit v 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ý se spustil společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho start může vrátit non-null Proces s jeho HasExited vlastnost již nastavena na true. V tomto případě mohl spuštěný proces aktivovat existující instanci samotné a poté se ukončil.

Atributy

Výjimky

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

nebo

Soubor zadaný v fileName souboru nebyl nalezen.

Objekt procesu již byl uvolněn.

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

Příklady

Následující příklad nejprve vytvoří instanci Aplikace Internet Explorer a zobrazí obsah složky Oblíbené v prohlížeči. Potom 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;
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();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

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

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

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
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 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. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete 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 bez prvního vytvoření nové Process instance. Přetížení je alternativou k explicitním krokům vytvoření nové Process instance, nastavení FileName člena StartInfo vlastnosti a volání Start instance Process .

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

Zahájení procesu zadáním názvu souboru je podobné zadání informací v Run dialogovém okně nabídky Windows Start . Proto název souboru nemusí představovat spustitelný soubor. Může to být jakýkoli typ souboru, pro který byla přípona přidružena k aplikaci nainstalované v systému. Název souboru může mít například příponu .txt, pokud máte přidružené textové soubory k editoru, například Poznámkový blok, nebo může mít .doc, pokud jste přidružovali .doc soubory s nástrojem pro zpracování textu, jako je například Microsoft Word. Podobně, stejně jako Run dialogové okno může přijmout spustitelný soubor s příponou .exe nebo bez přípony, je přípona .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 pro proces argumenty příkazového řádku. Pokud potřebujete zadat jeden nebo více argumentů příkazového řádku pro proces, použijte Process.Start(ProcessStartInfo) nebo Process.Start(String, String) přetížení.

Na rozdíl od ostatních přetížení není přetížení Start , které nemá žádné parametry, členem static . Toto přetížení použijte, pokud jste již vytvořili Process instanci a zadali počáteční informace (včetně názvu souboru) a chcete spustit prostředek procesu a přidružit ho k existující Process instanci. Použijte jedno z static přetížení, pokud chcete vytvořit novou Process komponentu namísto spuštění procesu pro existující komponentu. 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 při spuštění jakéhokoli procesu nalezeného v tomto umístění plně kvalifikovat. Jinak systém nenajde cestu. Pokud c:\mypath například cesta není a přidáte ji pomocí uvozovek, path = %path%;"c:\mypath"musíte při jejím spuštění plně kvalifikovat jakýkoli proces c:\mypath .

Poznámka:

ASP.NET webové stránky a kódu řízení serveru se spouští v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ASP.NET webové stránce nebo ovládacím prvku 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 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í CloseMainWindow nebo Kill. Pomocí vlastnosti HasExited můžete zkontrolovat, jestli už byl proces uzavřen.

Tady je potřeba poznámka o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true součástí procesu vlastnost StartInfo , ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] metody main() . V opačném případě může být spravované vlákno ve unknown stavu nebo ve MTA stavu, z nichž druhý je v konfliktu s UseShellExecute tím, trueže . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastaven, když aplikace narazí na takovou metodu, výchozí hodnota MTAje a jakmile je nastavena, stav apartmánu nelze změnit. Způsobí však výjimku, MTA 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
Zdroj:
Process.cs
Zdroj:
Process.cs

Spustí prostředek procesu určený parametrem obsahujícím informace o spuštění 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);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
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);
public static System.Diagnostics.Process Start(System.Diagnostics.ProcessStartInfo startInfo);
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
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
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ý se spustil společně s již spuštěnými instancemi stejného procesu, bude nezávislý na ostatních. Kromě toho start může vrátit non-null Proces s jeho HasExited vlastnost již nastavena na true. V tomto případě mohl spuštěný proces aktivovat existující instanci samotné a poté se ukončil.

Atributy

Výjimky

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

nebo

Vlastnost UseShellExecute parametru RedirectStandardOutputstartInfoRedirectStandardInputje true a , nebo RedirectStandardError vlastnost je také .true

nebo

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

Parametr startInfo je null.

Objekt procesu již byl uvolně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řekračuje 2080. Chybová zpráva přidružená k této výjimce může být jedna z následujících možností: Datová oblast předaná systémovému volání je příliš malá nebo Přístup byl odepřen.

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

Příklady

Následující příklad nejprve vytvoří instanci Aplikace Internet Explorer a zobrazí obsah složky Oblíbené v prohlížeči. Potom 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 naleznete v jednotlivých vlastnostech ProcessStartInfo třídy.

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();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

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

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

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
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. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete 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 bez prvního vytvoření nové Process instance. Použití tohoto přetížení s parametrem ProcessStartInfo je alternativou k explicitním krokům vytvoření nové Process instance, nastavení jeho StartInfo vlastností a volání Start instance Process .

ProcessStartInfo Použití instance jako parametru umožňuje volat Start s největší kontrolou nad tím, co se předává do volání, aby se spustil proces. Pokud potřebujete předat pouze název souboru nebo název souboru a argumenty, není nutné vytvořit 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 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 FileName příponu .txt, pokud máte přidružené textové soubory s editorem, například Poznámkový blok, nebo může mít příponu .doc, pokud jste přidružovali .doc soubory s nástrojem 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é jste původně aplikaci nainstalovali. Nespustíte aplikaci ClickOnce zadáním jeho nainstalovaného umístění na pevném disku.

Pokud jsou nastaveny ProcessStartInfo.UserName a ProcessStartInfo.Password vlastnosti StartInfo instance, je volána nespravovaná CreateProcessWithLogonW funkce, která spustí proces v novém okně i v případě ProcessStartInfo.CreateNoWindow , že je true hodnota vlastnosti nebo ProcessStartInfo.WindowStyle hodnota vlastnosti je ProcessWindowStyle.Hidden. ProcessStartInfo.Domain Pokud je nullvlastnost , ProcessStartInfo.UserName vlastnost musí být 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, členem static . Toto přetížení použijte, pokud jste již vytvořili Process instanci a zadali počáteční informace (včetně názvu souboru) a chcete spustit prostředek procesu a přidružit ho k existující Process instanci. Použijte jedno z static přetížení, pokud chcete vytvořit novou Process komponentu namísto spuštění procesu pro existující komponentu. Toto přetížení i přetížení, které nemá žádné parametry, umožňují určit počáteční informace pro prostředek procesu pomocí ProcessStartInfo instance.

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

Poznámka:

ASP.NET webové stránky a kódu řízení serveru se spouští v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ASP.NET webové stránce nebo ovládacím prvku 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 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í CloseMainWindow nebo Kill. Pomocí vlastnosti HasExited můžete zkontrolovat, jestli už byl proces uzavřen.

Tady je potřeba poznámka o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true parametr startInfo , ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] metody main() . V opačném případě může být spravované vlákno ve unknown stavu nebo ve MTA stavu, z nichž druhý je v konfliktu s UseShellExecute tím, trueže . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastaven, když aplikace narazí na takovou metodu, výchozí hodnota MTAje a jakmile je nastavena, stav apartmánu nelze změnit. Způsobí však výjimku, MTA 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
Zdroj:
Process.cs
Zdroj:
Process.cs

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

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

Návraty

true pokud je spuštěn procesový prostředek; false pokud není spuštěn žádný nový prostředek procesu (například pokud je znovu použit existující proces).

Atributy

Výjimky

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

nebo

StartInfo Člen UseShellExecute vlastnosti je true zatímco RedirectStandardInput, RedirectStandardOutputnebo RedirectStandardError je true.

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

Objekt procesu již byl uvolněn.

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

Příklady

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

using System;
using System.Diagnostics;
using System.ComponentModel;

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

try
    use myProcess = new Process()
    myProcess.StartInfo.UseShellExecute <- false
    // You can start any process, HelloWorld is a do-nothing example.
    myProcess.StartInfo.FileName <- @"C:\HelloWorld.exe"
    myProcess.StartInfo.CreateNoWindow <- true
    myProcess.Start() |> ignore
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
with e ->
    printfn $"{e.Message}"
Imports System.Diagnostics
Imports System.ComponentModel

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

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

Poznámky

Pomocí tohoto přetížení spusťte prostředek procesu a přidružte ho k aktuální Process komponentě. Vrácená hodnota true označuje, že byl spuštěn nový prostředek procesu. Pokud je prostředek procesu určený FileName členem StartInfo vlastnosti již spuštěn v počítači, není spuštěn žádný další prostředek procesu. Místo toho se spuštěný prostředek 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é jste původně aplikaci nainstalovali. Nespustíte aplikaci ClickOnce zadáním jeho nainstalovaného umístění na pevném disku.

Důležité

Použití instance tohoto typu s nedůvěryhodnými daty představuje bezpečnostní riziko. Tento objekt použijte pouze s důvěryhodnými daty. Další informace naleznete 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. Properties Pomocí okna rozbalte StartInfo kategorii a napište do vlastnosti příslušnou hodnotuFileName. Změny se zobrazí v postupu formuláře InitializeComponent .

Toto přetížení Start není static metoda. Musíte ho 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 slouží 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 pokud byl proces spuštěn, vytvoří se 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 Windows Start . Cokoli, co lze zadat do příkazového řádku, lze spustit nastavením odpovídající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 FileName příponu .txt, pokud máte přidružené textové soubory s editorem, například Poznámkový blok, nebo může mít příponu .doc, pokud jste přidružovali .doc soubory s nástrojem pro zpracování textu, jako je například Microsoft Word.

Na příkazovém řádku můžete zadat akce, které se mají provést pro určité typy 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 zadat argumenty příkazového řádku při spuštění souboru z dialogového Run okna. Pokud jako argument zadáte prohlížeč jako FileNameargument, můžete například předat adresu URL . Tyto argumenty lze zadat ve členu StartInfoArguments vlastnosti.

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

Poznámka:

ASP.NET webové stránky a kódu řízení serveru se spouští v kontextu pracovního procesu ASP.NET na webovém serveru. Pokud použijete metodu Start v ASP.NET webové stránce nebo ovládacím prvku 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 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í CloseMainWindow nebo Kill. Pomocí vlastnosti HasExited můžete zkontrolovat, jestli už byl proces uzavřen.

Tady je potřeba poznámka o stavech bytu ve spravovaných vláknech. Pokud UseShellExecute je true součástí procesu vlastnost StartInfo , ujistěte se, že jste v aplikaci nastavili model threadingu nastavením atributu [STAThread] metody main() . V opačném případě může být spravované vlákno ve unknown stavu nebo ve MTA stavu, z nichž druhý je v konfliktu s UseShellExecute tím, trueže . Některé metody vyžadují, aby stav bytu nebyl unknown. Pokud stav není explicitně nastaven, když aplikace narazí na takovou metodu, výchozí hodnota MTAje a jakmile je nastavena, stav apartmánu nelze změnit. Způsobí však výjimku, MTA když 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
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);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(string fileName, System.Collections.Generic.IEnumerable<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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
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
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á spustit v procesu.

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. Volejte tuto metodu pouze s důvěryhodnými daty. Další informace naleznete v tématu Ověření všech vstupů.

Platí pro