Process.Start Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Uruchamia zasób procesu i kojarzy go ze składnikiem Process .
Przeciążenia
| Nazwa | Opis |
|---|---|
| Start(String, String, String, SecureString, String) |
Uruchamia zasób procesu, określając nazwę aplikacji, zestaw argumentów wiersza polecenia, nazwę użytkownika, hasło i domenę oraz kojarzy zasób z nowym Process składnikiem. |
| Start(String, String, SecureString, String) |
Uruchamia zasób procesu, określając nazwę aplikacji, nazwę użytkownika, hasło i domenę oraz kojarzy zasób z nowym Process składnikiem. |
| Start(String, String) |
Uruchamia zasób procesu, określając nazwę aplikacji i zestaw argumentów wiersza polecenia oraz kojarzy zasób z nowym Process składnikiem. |
| Start(String) |
Uruchamia zasób procesu, określając nazwę dokumentu lub pliku aplikacji i kojarzy zasób z nowym Process składnikiem. |
| Start(ProcessStartInfo) |
Uruchamia zasób procesu określony przez parametr zawierający informacje o rozpoczęciu procesu (na przykład nazwę pliku procesu do uruchomienia) i kojarzy zasób z nowym Process składnikiem. |
| Start() |
Uruchamia (lub ponownie używa) zasobu procesu określonego StartInfo przez właściwość tego Process składnika i kojarzy go ze składnikiem. |
| Start(String, IEnumerable<String>) |
Uruchamia zasób procesu, określając nazwę aplikacji i zestaw argumentów wiersza polecenia. |
Start(String, String, String, SecureString, String)
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Uruchamia zasób procesu, określając nazwę aplikacji, zestaw argumentów wiersza polecenia, nazwę użytkownika, hasło i domenę oraz kojarzy zasób z nowym Process składnikiem.
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
Nazwa pliku aplikacji do uruchomienia w procesie.
- arguments
- String
Argumenty wiersza polecenia do przekazania podczas uruchamiania procesu.
- userName
- String
Nazwa użytkownika używana podczas uruchamiania procesu.
- password
- SecureString
Element SecureString zawierający hasło do użycia podczas uruchamiania procesu.
- domain
- String
Domena do użycia podczas uruchamiania procesu.
Zwraca
Nowy Process , który jest skojarzony z zasobem procesu lub null jeśli żaden zasób procesu nie jest uruchomiony. Należy pamiętać, że nowy proces, który został uruchomiony obok już uruchomionych wystąpień tego samego procesu, będzie niezależny od innych. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z właściwością HasExited , która jest już ustawiona na truewartość . W takim przypadku rozpoczęty proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończyć pracę.
- Atrybuty
Wyjątki
Nie określono nazwy pliku.
Wystąpił błąd podczas otwierania skojarzonego pliku.
— lub —
Nie można odnaleźć pliku określonego w pliku fileName .
— lub —
Suma długości argumentów i długości pełnej ścieżki do skojarzonego pliku przekracza 2080. Komunikat o błędzie skojarzony z tym wyjątkiem może być jednym z następujących: "Obszar danych przekazany do wywołania systemowego jest zbyt mały" lub "Odmowa dostępu".
Obiekt procesu został już usunięty.
Ten element członkowski nie jest obsługiwany w systemie Linux lub macOS (tylko platforma.NET Core).
Uwagi
Użyj tego przeciążenia, aby utworzyć nowy proces i jego wątek podstawowy, określając jego nazwę pliku, argumenty wiersza polecenia, nazwę użytkownika, hasło i domenę. Nowy proces uruchamia następnie określony plik wykonywalny w kontekście zabezpieczeń określonych poświadczeń (użytkownik, domena i hasło).
Ważna
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.
Uwaga / Notatka
Gdy plik wykonywalny znajduje się na dysku zdalnym, należy zidentyfikować udział sieciowy przy użyciu jednolitego identyfikatora zasobu (URI), a nie litery dysku połączonego.
Uwaga / Notatka
Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null zostanie zwrócony.
To przeciążenie umożliwia rozpoczęcie procesu bez uprzedniego utworzenia nowego Process wystąpienia. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania FileNamewłaściwości StartInfo , Arguments, UserNamePassword, i Domain wywoływania Start dla Process wystąpienia.
Podobnie, w taki sam sposób, w jaki okno dialogowe Uruchamianie może zaakceptować nazwę pliku wykonywalnego z rozszerzeniem .exe lub bez tego rozszerzenia, rozszerzenie .exe jest opcjonalne w parametrze fileName . Można na przykład ustawić fileName parametr na "Notepad.exe" lub "Notatnik".
fileName Jeśli parametr reprezentuje plik wykonywalny, arguments parametr może reprezentować plik do działania, taki jak plik tekstowy w pliku Notepad.exe myfile.txt.
Uwaga / Notatka
Nazwa pliku musi reprezentować plik wykonywalny w Start przeciążeniach, które mają userNameparametry , passwordi domain .
Za każdym razem, gdy używasz Start metody do rozpoczęcia procesu, może być konieczne jej zamknięcie lub ryzyko utraty zasobów systemowych. Zamknij procesy przy użyciu polecenia CloseMainWindow lub Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jej HasExited właściwości.
Dotyczy
Start(String, String, SecureString, String)
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
- Źródło:
- Process.Unix.cs
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Uruchamia zasób procesu, określając nazwę aplikacji, nazwę użytkownika, hasło i domenę oraz kojarzy zasób z nowym Process składnikiem.
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
Nazwa pliku aplikacji do uruchomienia w procesie.
- userName
- String
Nazwa użytkownika używana podczas uruchamiania procesu.
- password
- SecureString
Element SecureString zawierający hasło do użycia podczas uruchamiania procesu.
- domain
- String
Domena do użycia podczas uruchamiania procesu.
Zwraca
Nowy Process , który jest skojarzony z zasobem procesu lub null jeśli żaden zasób procesu nie jest uruchomiony. Należy pamiętać, że nowy proces, który został uruchomiony obok już uruchomionych wystąpień tego samego procesu, będzie niezależny od innych. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z właściwością HasExited , która jest już ustawiona na truewartość . W takim przypadku rozpoczęty proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończyć pracę.
- Atrybuty
Wyjątki
Nie określono nazwy pliku.
Wystąpił błąd podczas otwierania skojarzonego pliku.
— lub —
Nie można odnaleźć pliku określonego w pliku fileName .
Obiekt procesu został już usunięty.
Ten element członkowski nie jest obsługiwany w systemie Linux lub macOS (tylko platforma.NET Core).
Przykłady
W poniższym przykładzie kodu pokazano użycie tego przeciążenia do uruchomienia pliku wykonywalnego, a także pokazano, jak zgłaszany jest błąd Win32Exception podczas próby uruchomienia aplikacji skojarzonej z plikiem niewyciągalnym.
// 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
Uwagi
Użyj tego przeciążenia, aby utworzyć nowy proces i jego wątek podstawowy, określając jego nazwę pliku, nazwę użytkownika, hasło i domenę. Nowy proces uruchamia następnie określony plik wykonywalny w kontekście zabezpieczeń określonych poświadczeń (użytkownik, domena i hasło).
Ważna
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.
Uwaga / Notatka
Gdy plik wykonywalny znajduje się na dysku zdalnym, należy zidentyfikować udział sieciowy przy użyciu jednolitego identyfikatora zasobu (URI), a nie litery dysku połączonego.
Uwaga / Notatka
Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null zostanie zwrócony.
To przeciążenie umożliwia rozpoczęcie procesu bez uprzedniego utworzenia nowego Process wystąpienia. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania FileNamewłaściwości StartInfo , UserNamePasswordDomain i właściwości właściwości i wywoływania Start dla Process wystąpienia.
Podobnie, w taki sam sposób, w jaki okno dialogowe Uruchamianie może zaakceptować nazwę pliku wykonywalnego z rozszerzeniem .exe lub bez tego rozszerzenia, rozszerzenie .exe jest opcjonalne w parametrze fileName . Można na przykład ustawić fileName parametr na "Notepad.exe" lub "Notatnik".
fileName Jeśli parametr reprezentuje plik wykonywalny, arguments parametr może reprezentować plik do działania, taki jak plik tekstowy w pliku Notepad.exe myfile.txt.
Uwaga / Notatka
Nazwa pliku musi reprezentować plik wykonywalny w Start przeciążeniach, które mają userNameparametry , passwordi domain .
Za każdym razem, gdy używasz Start metody do rozpoczęcia procesu, może być konieczne jej zamknięcie lub ryzyko utraty zasobów systemowych. Zamknij procesy przy użyciu polecenia CloseMainWindow lub Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jej HasExited właściwości.
Dotyczy
Start(String, String)
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
Uruchamia zasób procesu, określając nazwę aplikacji i zestaw argumentów wiersza polecenia oraz kojarzy zasób z nowym Process składnikiem.
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
Nazwa pliku aplikacji do uruchomienia w procesie.
- arguments
- String
Argumenty wiersza polecenia do przekazania podczas uruchamiania procesu.
Zwraca
Nowy Process , który jest skojarzony z zasobem procesu lub null jeśli żaden zasób procesu nie jest uruchomiony. Należy pamiętać, że nowy proces, który został uruchomiony obok już uruchomionych wystąpień tego samego procesu, będzie niezależny od innych. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z właściwością HasExited , która jest już ustawiona na truewartość . W takim przypadku rozpoczęty proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończyć pracę.
- Atrybuty
Wyjątki
Parametr fileName or arguments to null.
Wystąpił błąd podczas otwierania skojarzonego pliku.
— lub —
Nie można odnaleźć pliku określonego w pliku fileName .
— lub —
Suma długości argumentów i długości pełnej ścieżki do procesu przekracza 2080. Komunikat o błędzie skojarzony z tym wyjątkiem może być jednym z następujących: "Obszar danych przekazany do wywołania systemowego jest zbyt mały" lub "Odmowa dostępu".
Obiekt procesu został już usunięty.
Zmienna środowiskowa PATH ma ciąg zawierający cudzysłowy.
Przykłady
Poniższy przykład najpierw zawiera wystąpienie programu Internet Explorer i wyświetla zawartość folderu Ulubione w przeglądarce. Następnie uruchamia inne wystąpienia programu Internet Explorer i wyświetla niektóre określone strony lub witryny. Na koniec uruchamia program Internet Explorer z zminimalizowanym oknem podczas przechodzenia do określonej witryny.
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
Uwagi
Użyj tego przeciążenia, aby uruchomić zasób procesu, określając jego nazwę pliku i argumenty wiersza polecenia. Przeciążenie kojarzy zasób z nowym Process obiektem.
Ważna
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.
Uwaga / Notatka
Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null zostanie zwrócony.
To przeciążenie umożliwia rozpoczęcie procesu bez uprzedniego utworzenia nowego Process wystąpienia. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania FileName elementów i Arguments właściwości StartInfo i wywoływania Start wystąpienia Process .
Rozpoczęcie procesu przez określenie nazwy pliku i argumentów jest podobne do wpisywania nazwy pliku i argumentów wiersza polecenia w Run oknie dialogowym menu systemu Windows Start . W związku z tym nazwa pliku nie musi reprezentować pliku wykonywalnego. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją zainstalowaną w systemie. Na przykład nazwa pliku może mieć rozszerzenie .txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub może mieć .doc, jeśli masz skojarzone pliki .doc z narzędziem do przetwarzania wyrazów, takim jak Microsoft Word. Podobnie, w taki sam sposób, w Run jaki okno dialogowe może zaakceptować nazwę pliku wykonywalnego z rozszerzeniem .exe lub bez tego rozszerzenia, rozszerzenie .exe jest opcjonalne w parametrze fileName . Można na przykład ustawić fileName parametr na "Notepad.exe" lub "Notatnik".
fileName Jeśli parametr reprezentuje plik wykonywalny, arguments parametr może reprezentować plik do działania, taki jak plik tekstowy w pliku Notepad.exe myfile.txt.
fileName Jeśli parametr reprezentuje plik polecenia (.cmd), parametr musi zawierać argument "/c" lub "/k", aby określić, arguments czy okno poleceń kończy się, czy pozostaje po zakończeniu.
W przeciwieństwie do innych przeciążeń przeciążenie Start , które nie ma parametrów, nie jest elementem static członkowskim. Użyj tego przeciążenia, gdy wystąpienie zostało już utworzone Process i określone informacje początkowe (w tym nazwa pliku), a następnie chcesz uruchomić zasób procesu i skojarzyć je z istniejącym Process wystąpieniem. Użyj jednego z static przeciążeń, jeśli chcesz utworzyć nowy Process składnik, a nie uruchomić procesu dla istniejącego składnika. Zarówno to przeciążenie, jak i przeciążenie, które nie ma parametrów, umożliwiają określenie nazwy pliku zasobu procesu do uruchomienia i przekazania argumentów wiersza polecenia.
Jeśli w systemie jest zadeklarowana zmienna ścieżki przy użyciu cudzysłowów, należy w pełni zakwalifikować ścieżkę podczas uruchamiania dowolnego procesu znalezionego w tej lokalizacji. W przeciwnym razie system nie znajdzie ścieżki. Jeśli na przykład c:\mypath nie znajduje się w ścieżce i dodajesz go przy użyciu cudzysłowu: path = %path%;"c:\mypath", musisz w pełni zakwalifikować dowolny proces podczas c:\mypath jego uruchamiania.
Uwaga / Notatka
ASP.NET strona sieci Web i kod kontroli serwera są wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web. Jeśli używasz Start metody w ASP.NET stronie sieci Web lub kontroli serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami. Proces nie rozpoczyna się w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.
Za każdym razem, gdy używasz Start metody do rozpoczęcia procesu, może być konieczne jej zamknięcie lub ryzyko utraty zasobów systemowych. Zamknij procesy przy użyciu polecenia CloseMainWindow lub Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jej HasExited właściwości.
Uwaga na temat stanów apartamentów w zarządzanych wątkach jest niezbędna tutaj. Jeśli UseShellExecute element znajduje true się we właściwości składnika StartInfo procesu, upewnij się, że dla aplikacji ustawiono model wątków, ustawiając atrybut [STAThread] w metodzie main() . W przeciwnym razie zarządzany wątek może znajdować się w unknown stanie lub umieścić go w MTA stanie, z których ostatni powoduje konflikt z elementem UseShellExecutetrue. Niektóre metody wymagają, aby stan mieszkania nie był unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie MTAjest ustawiona wartość , a po ustawieniu stanu mieszkania nie można zmienić. Jednak powoduje zgłoszenie wyjątku, MTA gdy powłoka systemu operacyjnego zarządza wątkiem.
Zobacz też
Dotyczy
Start(String)
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
Uruchamia zasób procesu, określając nazwę dokumentu lub pliku aplikacji i kojarzy zasób z nowym Process składnikiem.
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
Nazwa dokumentu lub pliku aplikacji do uruchomienia w procesie.
Zwraca
Nowy Process , który jest skojarzony z zasobem procesu lub null jeśli żaden zasób procesu nie jest uruchomiony. Należy pamiętać, że nowy proces, który został uruchomiony obok już uruchomionych wystąpień tego samego procesu, będzie niezależny od innych. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z właściwością HasExited , która jest już ustawiona na truewartość . W takim przypadku rozpoczęty proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończyć pracę.
- Atrybuty
Wyjątki
Wystąpił błąd podczas otwierania skojarzonego pliku.
— lub —
Nie można odnaleźć pliku określonego w pliku fileName .
Obiekt procesu został już usunięty.
Zmienna środowiskowa PATH ma ciąg zawierający cudzysłowy.
Przykłady
Poniższy przykład najpierw zawiera wystąpienie programu Internet Explorer i wyświetla zawartość folderu Ulubione w przeglądarce. Następnie uruchamia inne wystąpienia programu Internet Explorer i wyświetla niektóre określone strony lub witryny. Na koniec uruchamia program Internet Explorer z zminimalizowanym oknem podczas przechodzenia do określonej witryny.
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
Uwagi
Użyj tego przeciążenia, aby uruchomić zasób procesu, określając jego nazwę pliku. Przeciążenie kojarzy zasób z nowym Process obiektem.
Ważna
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.
Uwaga / Notatka
Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null zostanie zwrócony.
To przeciążenie umożliwia rozpoczęcie procesu bez uprzedniego utworzenia nowego Process wystąpienia. Przeciążenie jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania FileName elementu członkowskiego StartInfo właściwości i wywoływania Start wystąpienia Process .
Aplikację ClickOnce można uruchomić, ustawiając fileName parametr na lokalizację (na przykład adres internetowy), z którego pierwotnie zainstalowano aplikację. Nie uruchamiaj aplikacji ClickOnce, określając jej zainstalowaną lokalizację na dysku twardym.
Rozpoczęcie procesu przez określenie nazwy pliku jest podobne do wpisywania informacji w Run oknie dialogowym menu systemu Windows Start . W związku z tym nazwa pliku nie musi reprezentować pliku wykonywalnego. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją zainstalowaną w systemie. Na przykład nazwa pliku może mieć rozszerzenie .txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub może mieć .doc, jeśli masz skojarzone pliki .doc z narzędziem do przetwarzania wyrazów, takim jak Microsoft Word. Podobnie, w taki sam sposób, w Run jaki okno dialogowe może zaakceptować nazwę pliku wykonywalnego z rozszerzeniem .exe lub bez tego rozszerzenia, rozszerzenie .exe jest opcjonalne w parametrze fileName . Można na przykład ustawić fileName parametr na "Notepad.exe" lub "Notatnik".
To przeciążenie nie zezwala na argumenty wiersza polecenia dla procesu. Jeśli musisz określić co najmniej jeden argument wiersza polecenia dla procesu, użyj Process.Start(ProcessStartInfo) przeciążeń lub Process.Start(String, String) .
W przeciwieństwie do innych przeciążeń przeciążenie Start , które nie ma parametrów, nie jest elementem static członkowskim. Użyj tego przeciążenia, gdy wystąpienie zostało już utworzone Process i określone informacje początkowe (w tym nazwa pliku), a następnie chcesz uruchomić zasób procesu i skojarzyć je z istniejącym Process wystąpieniem. Użyj jednego z static przeciążeń, jeśli chcesz utworzyć nowy Process składnik, a nie uruchomić procesu dla istniejącego składnika. Zarówno to przeciążenie, jak i przeciążenie, które nie ma parametrów, pozwala określić nazwę pliku zasobu procesu do uruchomienia.
Jeśli w systemie jest zadeklarowana zmienna ścieżki przy użyciu cudzysłowów, należy w pełni zakwalifikować ścieżkę podczas uruchamiania dowolnego procesu znalezionego w tej lokalizacji. W przeciwnym razie system nie znajdzie ścieżki. Jeśli na przykład c:\mypath nie znajduje się w ścieżce i dodajesz go przy użyciu cudzysłowu: path = %path%;"c:\mypath", musisz w pełni zakwalifikować dowolny proces podczas c:\mypath jego uruchamiania.
Uwaga / Notatka
ASP.NET strona sieci Web i kod kontroli serwera są wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web. Jeśli używasz Start metody w ASP.NET stronie sieci Web lub kontroli serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami. Proces nie rozpoczyna się w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.
Za każdym razem, gdy używasz Start metody do rozpoczęcia procesu, może być konieczne jej zamknięcie lub ryzyko utraty zasobów systemowych. Zamknij procesy przy użyciu polecenia CloseMainWindow lub Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jej HasExited właściwości.
Uwaga na temat stanów apartamentów w zarządzanych wątkach jest niezbędna tutaj. Jeśli UseShellExecute element znajduje true się we właściwości składnika StartInfo procesu, upewnij się, że dla aplikacji ustawiono model wątków, ustawiając atrybut [STAThread] w metodzie main() . W przeciwnym razie zarządzany wątek może znajdować się w unknown stanie lub umieścić go w MTA stanie, z których ostatni powoduje konflikt z elementem UseShellExecutetrue. Niektóre metody wymagają, aby stan mieszkania nie był unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie MTAjest ustawiona wartość , a po ustawieniu stanu mieszkania nie można zmienić. Jednak powoduje zgłoszenie wyjątku, MTA gdy powłoka systemu operacyjnego zarządza wątkiem.
Zobacz też
Dotyczy
Start(ProcessStartInfo)
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
Uruchamia zasób procesu określony przez parametr zawierający informacje o rozpoczęciu procesu (na przykład nazwę pliku procesu do uruchomienia) i kojarzy zasób z nowym Process składnikiem.
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
Element ProcessStartInfo zawierający informacje używane do uruchamiania procesu, w tym nazwę pliku i wszystkie argumenty wiersza polecenia.
Zwraca
Nowy Process , który jest skojarzony z zasobem procesu lub null jeśli żaden zasób procesu nie jest uruchomiony. Należy pamiętać, że nowy proces, który został uruchomiony obok już uruchomionych wystąpień tego samego procesu, będzie niezależny od innych. Ponadto polecenie Start może zwrócić proces o wartości innej niż null z właściwością HasExited , która jest już ustawiona na truewartość . W takim przypadku rozpoczęty proces mógł aktywować istniejące wystąpienie samego siebie, a następnie zakończyć pracę.
- Atrybuty
Wyjątki
Nie określono nazwy pliku we właściwości parametru startInfoFileName .
— lub —
Właściwość UseShellExecute parametru startInfo to true , a RedirectStandardInputwłaściwość , RedirectStandardOutputlub RedirectStandardError jest również true.
— lub —
Właściwość UseShellExecute parametru startInfo to true , a UserName właściwość nie null jest pusta lub Password właściwość nie nulljest .
Parametr startInfo jest null.
Obiekt procesu został już usunięty.
Wystąpił błąd podczas otwierania skojarzonego pliku.
— lub —
Nie można odnaleźć pliku określonego startInfo we właściwości parametru FileName .
— lub —
Suma długości argumentów i długości pełnej ścieżki do procesu przekracza 2080. Komunikat o błędzie skojarzony z tym wyjątkiem może być jednym z następujących: "Obszar danych przekazany do wywołania systemowego jest zbyt mały" lub "Odmowa dostępu".
Metoda nie jest obsługiwana w systemach operacyjnych bez obsługi powłoki, takiej jak serwer Nano Server (tylko platforma.NET Core).
Przykłady
Poniższy przykład najpierw zawiera wystąpienie programu Internet Explorer i wyświetla zawartość folderu Ulubione w przeglądarce. Następnie uruchamia inne wystąpienia programu Internet Explorer i wyświetla niektóre określone strony lub witryny. Na koniec uruchamia program Internet Explorer z zminimalizowanym oknem podczas przechodzenia do określonej witryny.
Aby uzyskać dodatkowe przykłady innych zastosowań tej metody, zapoznaj się z poszczególnymi ProcessStartInfo właściwościami klasy.
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
Uwagi
Użyj tego przeciążenia, aby uruchomić zasób procesu, określając ProcessStartInfo wystąpienie. Przeciążenie kojarzy zasób z nowym Process obiektem.
Ważna
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.
Uwaga / Notatka
Jeśli adres pliku wykonywalnego do uruchomienia jest adresem URL, proces nie zostanie uruchomiony i null zostanie zwrócony.
To przeciążenie umożliwia rozpoczęcie procesu bez uprzedniego utworzenia nowego Process wystąpienia. Użycie tego przeciążenia z parametrem ProcessStartInfo jest alternatywą dla jawnych kroków tworzenia nowego Process wystąpienia, ustawiania jego StartInfo właściwości i wywoływania Start wystąpienia Process .
ProcessStartInfo Użycie wystąpienia jako parametru umożliwia wywołanie Start z największą kontrolą nad tym, co jest przekazywane do wywołania, aby rozpocząć proces. Jeśli musisz przekazać tylko nazwę pliku lub nazwę pliku i argumenty, nie jest konieczne utworzenie nowego ProcessStartInfo wystąpienia, chociaż jest to opcja. Jedyną Process.StartInfo właściwością, która musi zostać ustawiona FileName , jest właściwość . Właściwość FileName nie musi reprezentować pliku wykonywalnego. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją zainstalowaną w systemie. Na przykład FileName właściwość może mieć rozszerzenie .txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub może mieć rozszerzenie .doc, jeśli masz skojarzone pliki .doc z narzędziem do przetwarzania wyrazów, takim jak Microsoft Word.
Aplikację ClickOnce można uruchomić, określając lokalizację (na przykład adres internetowy), z której pierwotnie zainstalowano aplikację. Nie uruchamiaj aplikacji ClickOnce, określając jej zainstalowaną lokalizację na dysku twardym.
ProcessStartInfo.UserName Jeśli ustawiono właściwości StartInfo i ProcessStartInfo.Password wystąpienia, wywoływana jest funkcja niezarządzanaCreateProcessWithLogonW, która uruchamia proces w nowym oknie, nawet jeśli ProcessStartInfo.CreateNoWindow wartość właściwości to true lub ProcessStartInfo.WindowStyle wartość właściwości to ProcessWindowStyle.Hidden.
ProcessStartInfo.Domain Jeśli właściwość ma nullwartość , ProcessStartInfo.UserName właściwość musi mieć format UPN, użytkownik@DNS_domain_name.
W przeciwieństwie do innych przeciążeń przeciążenie Start , które nie ma parametrów, nie jest elementem static członkowskim. Użyj tego przeciążenia, gdy wystąpienie zostało już utworzone Process i określone informacje początkowe (w tym nazwa pliku), a następnie chcesz uruchomić zasób procesu i skojarzyć je z istniejącym Process wystąpieniem. Użyj jednego z static przeciążeń, jeśli chcesz utworzyć nowy Process składnik, a nie uruchomić procesu dla istniejącego składnika. Zarówno to przeciążenie, jak i przeciążenie, które nie ma parametrów, umożliwiają określenie informacji początkowych dla zasobu procesu przy użyciu ProcessStartInfo wystąpienia.
Jeśli w systemie jest zadeklarowana zmienna ścieżki przy użyciu cudzysłowów, należy w pełni zakwalifikować ścieżkę podczas uruchamiania dowolnego procesu znalezionego w tej lokalizacji. W przeciwnym razie system nie znajdzie ścieżki. Jeśli na przykład c:\mypath nie znajduje się w ścieżce i dodajesz go przy użyciu cudzysłowu: path = %path%;"c:\mypath", musisz w pełni zakwalifikować dowolny proces podczas c:\mypath jego uruchamiania.
Uwaga / Notatka
ASP.NET strona sieci Web i kod kontroli serwera są wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web. Jeśli używasz Start metody w ASP.NET stronie sieci Web lub kontroli serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami. Proces nie rozpoczyna się w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.
Za każdym razem, gdy używasz Start metody do rozpoczęcia procesu, może być konieczne jej zamknięcie lub ryzyko utraty zasobów systemowych. Zamknij procesy przy użyciu polecenia CloseMainWindow lub Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jej HasExited właściwości.
Uwaga na temat stanów apartamentów w zarządzanych wątkach jest niezbędna tutaj. Gdy UseShellExecute parametr znajduje true się w parametrze startInfo , upewnij się, że dla aplikacji ustawiono model wątków, ustawiając atrybut [STAThread] w metodzie main() . W przeciwnym razie zarządzany wątek może znajdować się w unknown stanie lub umieścić go w MTA stanie, z których ostatni powoduje konflikt z elementem UseShellExecutetrue. Niektóre metody wymagają, aby stan mieszkania nie był unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie MTAjest ustawiona wartość , a po ustawieniu stanu mieszkania nie można zmienić. Jednak powoduje zgłoszenie wyjątku, MTA gdy powłoka systemu operacyjnego zarządza wątkiem.
Zobacz też
Dotyczy
Start()
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
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
Zwraca
true jeśli zasób procesu jest uruchomiony; false jeśli nie zostanie uruchomiony nowy zasób procesu (na przykład jeśli istniejący proces zostanie ponownie użyty).
- Atrybuty
Wyjątki
W składniku ProcessStartInfonie określono nazwy pliku .
— lub —
Element UseShellExecute członkowski StartInfo właściwości to true , a RedirectStandardInput, RedirectStandardOutputlub RedirectStandardError jest true.
Wystąpił błąd podczas otwierania skojarzonego pliku.
Obiekt procesu został już usunięty.
Metoda nie jest obsługiwana w systemach operacyjnych bez obsługi powłoki, takiej jak serwer Nano Server (tylko platforma.NET Core).
Przykłady
W poniższym przykładzie użyto wystąpienia Process klasy do uruchomienia 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
Uwagi
Użyj tego przeciążenia, aby uruchomić zasób procesu i skojarzyć go z bieżącym Process składnikiem. Wartość true zwracana wskazuje, że został uruchomiony nowy zasób procesu. Jeśli zasób procesu określony przez FileName element członkowski StartInfo właściwości jest już uruchomiony na komputerze, nie zostanie uruchomiony żaden dodatkowy zasób procesu. Zamiast tego uruchomiony zasób procesu jest ponownie używany i false zwracany.
Aplikację ClickOnce można uruchomić, określając lokalizację (na przykład adres internetowy), z której pierwotnie zainstalowano aplikację. Nie uruchamiaj aplikacji ClickOnce, określając jej zainstalowaną lokalizację na dysku twardym.
Ważna
Użycie wystąpienia tego typu z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Użyj tego obiektu tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.
Uwaga / Notatka
Jeśli używasz programu Visual Studio, to przeciążenie Start metody jest tym, który wstawiasz do kodu po przeciągnięciu Process składnika do projektanta.
Properties Użyj okna, aby rozwinąć kategorię StartInfo i zapisać odpowiednią wartość we FileName właściwości . Zmiany zostaną wyświetlone w procedurze formularza InitializeComponent .
To przeciążenie Start nie static jest metodą. Należy wywołać go z wystąpienia Process klasy . Przed wywołaniem Startmetody należy najpierw określić StartInfo informacje o właściwości dla tego Process wystąpienia, ponieważ te informacje są używane do określenia zasobu procesu do uruchomienia.
Pozostałe przeciążenia Start metody to static elementy członkowskie. Przed wywołaniem tych przeciążeń metody nie trzeba tworzyć wystąpienia Process składnika. Zamiast tego możesz wywołać Start samą klasę Process , a nowy Process składnik zostanie utworzony, jeśli proces został uruchomiony. Lub zwracany jest null , jeśli proces został ponownie użyty. Zasób procesu jest automatycznie skojarzony z nowym Process składnikiem zwracanym przez metodę Start .
Elementy StartInfo członkowskie mogą służyć do duplikowania funkcjonalności Run okna dialogowego menu systemu Windows Start . Wszystko, co można wpisać w wierszu polecenia, można uruchomić, ustawiając odpowiednie wartości we StartInfo właściwości. Jedyną StartInfo właściwością, która musi zostać ustawiona FileName , jest właściwość . Właściwość FileName nie musi być plikiem wykonywalnym. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją zainstalowaną w systemie. Na przykład FileName właściwość może mieć rozszerzenie .txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub może mieć rozszerzenie .doc, jeśli masz skojarzone pliki .doc z narzędziem do przetwarzania wyrazów, takim jak Microsoft Word.
W wierszu polecenia można określić akcje do wykonania dla niektórych typów plików. Można na przykład drukować dokumenty lub edytować pliki tekstowe. Określ te akcje przy użyciu Verb elementu członkowskiego StartInfo właściwości . W przypadku innych typów plików można określić argumenty wiersza polecenia podczas uruchamiania pliku w Run oknie dialogowym. Możesz na przykład przekazać adres URL jako argument, jeśli określisz przeglądarkę FileNamejako . Te argumenty można określić w elemencie StartInfo członkowskim właściwości Arguments .
Jeśli w systemie jest zadeklarowana zmienna ścieżki przy użyciu cudzysłowów, należy w pełni zakwalifikować ścieżkę podczas uruchamiania dowolnego procesu znalezionego w tej lokalizacji. W przeciwnym razie system nie znajdzie ścieżki. Jeśli na przykład c:\mypath nie znajduje się w ścieżce i dodajesz go przy użyciu cudzysłowu: path = %path%;"c:\mypath", musisz w pełni zakwalifikować dowolny proces podczas c:\mypath jego uruchamiania.
Uwaga / Notatka
ASP.NET strona sieci Web i kod kontroli serwera są wykonywane w kontekście procesu roboczego ASP.NET na serwerze sieci Web. Jeśli używasz Start metody w ASP.NET stronie sieci Web lub kontroli serwera, nowy proces jest wykonywany na serwerze sieci Web z ograniczonymi uprawnieniami. Proces nie rozpoczyna się w tym samym kontekście co przeglądarka klienta i nie ma dostępu do pulpitu użytkownika.
Za każdym razem, gdy używasz Start metody do rozpoczęcia procesu, może być konieczne jej zamknięcie lub ryzyko utraty zasobów systemowych. Zamknij procesy przy użyciu polecenia CloseMainWindow lub Kill. Możesz sprawdzić, czy proces został już zamknięty, używając jej HasExited właściwości.
Uwaga na temat stanów apartamentów w zarządzanych wątkach jest niezbędna tutaj. Jeśli UseShellExecute element znajduje true się we właściwości składnika StartInfo procesu, upewnij się, że dla aplikacji ustawiono model wątków, ustawiając atrybut [STAThread] w metodzie main() . W przeciwnym razie zarządzany wątek może znajdować się w unknown stanie lub umieścić go w MTA stanie, z których ostatni powoduje konflikt z elementem UseShellExecutetrue. Niektóre metody wymagają, aby stan mieszkania nie był unknown. Jeśli stan nie jest jawnie ustawiony, gdy aplikacja napotka taką metodę, domyślnie MTAjest ustawiona wartość , a po ustawieniu stanu mieszkania nie można zmienić. Jednak powoduje zgłoszenie wyjątku, MTA gdy powłoka systemu operacyjnego zarządza wątkiem.
Zobacz też
Dotyczy
Start(String, IEnumerable<String>)
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
- Źródło:
- Process.cs
Uruchamia zasób procesu, określając nazwę aplikacji i zestaw argumentów wiersza polecenia.
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
Nazwa dokumentu lub pliku aplikacji do uruchomienia w procesie.
- arguments
- IEnumerable<String>
Argumenty wiersza polecenia do przekazania podczas uruchamiania procesu.
Zwraca
Nowy Process , który jest skojarzony z zasobem procesu lub null jeśli żaden zasób procesu nie jest uruchomiony.
- Atrybuty
Uwagi
Każdy argument zostanie automatycznie uniknięty, jeśli jest to wymagane.
Ważna
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.