Process.Start Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.txt
souboru .
Poznámka
Název souboru musí představovat spustitelný soubor v Start přetíženích, která mají userName
parametry , password
a 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.txt
souboru .
Poznámka
Název souboru musí představovat spustitelný soubor v Start přetíženích, která mají userName
parametry , password
a 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.txt
souboru . 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 true
UseShellExecute . 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 MTA
a 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 true
UseShellExecute . 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 MTA
a 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 startInfo
FileName 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 startInfo
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.".
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 null
vlastnost , 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 true
UseShellExecute . 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 MTA
a 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
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 true
UseShellExecute . Některé metody vyžadují, aby stav bytu nebyl unknown
. Pokud stav není explicitně nastavený, když aplikace na takovou metodu narazí, použije se MTA
vý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ů.