Process.Start Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Avvia una risorsa di processo e la associa a un componente Process.
Overload
Start(String, String, String, SecureString, String) |
Avvia una risorsa di processo specificando il nome di un'applicazione e un insieme di argomenti della riga di comando, un nome utente, una password e un dominio, e associa la risorsa a un nuovo componente Process. |
Start(String, String, SecureString, String) |
Avvia una risorsa di processo specificando il nome di un'applicazione, un nome utente, una password e un dominio e associa la risorsa a un nuovo componente Process. |
Start(String, String) |
Avvia una risorsa di processo specificando il nome di un'applicazione e un insieme di argomenti della riga di comando e associa la risorsa a un nuovo componente Process. |
Start(String) |
Avvia una risorsa di processo specificando il nome di un documento o un file di applicazione e associa la risorsa a un nuovo componente Process. |
Start(ProcessStartInfo) |
Avvia la risorsa di processo specificata dal parametro contenente le informazioni di avvio del processo (ad esempio, il nome file del processo da avviare) e associa la risorsa a un nuovo componente Process. |
Start() |
Avvia (o riutilizza) la risorsa di processo specificata dalla proprietà StartInfo di questo componente Process e la associa al componente. |
Start(String, IEnumerable<String>) |
Avvia una risorsa di processo specificando il nome di un'applicazione e un set di argomenti della riga di comando. |
Start(String, String, String, SecureString, String)
- Origine:
- Process.Unix.cs
- Origine:
- Process.Unix.cs
- Origine:
- Process.Unix.cs
Importante
Questa API non è conforme a CLS.
Avvia una risorsa di processo specificando il nome di un'applicazione e un insieme di argomenti della riga di comando, un nome utente, una password e un dominio, e associa la risorsa a un nuovo componente Process.
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
Parametri
- fileName
- String
Nome di un file di applicazione da eseguire nel processo.
- arguments
- String
Argomenti della riga di comando da passare all'avvio del processo.
- userName
- String
Nome utente da usare all'avvio del processo.
- password
- SecureString
Classe SecureString contenente la password da usare all'avvio del processo.
- domain
- String
Dominio da usare all'avvio del processo.
Restituisce
Nuovo Process associato alla risorsa di processo o null
se non viene avviata alcuna risorsa di processo. Si noti che un nuovo processo avviato parallelamente a istanze dello stesso processo già in esecuzione sarà indipendente dalle altre. Inoltre, l'avvio può restituire un processo non Null con la relativa proprietà HasExited già impostata su true
. In questo caso, è possibile che il processo avviato abbia attivato un'istanza esistente di se stesso e quindi sia terminato.
- Attributi
Eccezioni
Nessun nome file specificato.
Si è verificato un errore durante l'apertura del file associato.
-oppure-
Non è stato possibile trovare il file specificato in fileName
.
-oppure-
La somma della lunghezza degli argomenti e della lunghezza del percorso completo al file associato supera 2080. Il messaggio di errore associato a questa eccezione può essere uno dei seguenti: "L'area dati passata a una chiamata di sistema è troppo piccola" o "Accesso negato".
L'oggetto del processo è già stato eliminato.
Questo membro non è supportato in Linux o macOS (solo .NET Core).
Commenti
Usare questo overload per creare un nuovo processo e il relativo thread primario specificando il nome del file, gli argomenti della riga di comando, il nome utente, la password e il dominio. Il nuovo processo esegue quindi il file eseguibile specificato nel contesto di sicurezza delle credenziali specificate (utente, dominio e password).
Importante
La chiamata a questo metodo con dati non attendibili costituisce un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
Nota
Quando il file eseguibile si trova in un'unità remota, è necessario identificare la condivisione di rete usando un URI (Uniform Resource Identifier), non una lettera di unità collegata.
Nota
Se l'indirizzo del file eseguibile da avviare è un URL, il processo non viene avviato e null
viene restituito.
Questo overload consente di avviare un processo senza prima creare una nuova Process istanza. L'overload è un'alternativa alla procedura esplicita di creazione di una nuova Process istanza, l'impostazione delle FileNameproprietà , UserNameArgumentsPassworde Domain della proprietà della StartInfo proprietà e la chiamata Start all'istanza.Process
Analogamente, nello stesso modo in cui la finestra di dialogo Esegui può accettare un nome di file eseguibile con o senza l'estensione .exe, l'estensione .exe è facoltativa nel fileName
parametro. Ad esempio, è possibile impostare il fileName
parametro su "Notepad.exe" o "Blocco note". Se il parametro rappresenta un file eseguibile, il fileName
arguments
parametro potrebbe rappresentare un file da eseguire, ad esempio il file di testo in Notepad.exe myfile.txt
.
Nota
Il nome del file deve rappresentare un file eseguibile negli Start overload con userName
parametri , password
e domain
.
Ogni volta che si usa Start per avviare un processo, potrebbe essere necessario chiuderlo o perdere risorse di sistema. Chiudere i processi usando CloseMainWindow o Kill. È possibile verificare se un processo è già stato chiuso usando la relativa HasExited proprietà.
Si applica a
Start(String, String, SecureString, String)
- Origine:
- Process.Unix.cs
- Origine:
- Process.Unix.cs
- Origine:
- Process.Unix.cs
Importante
Questa API non è conforme a CLS.
Avvia una risorsa di processo specificando il nome di un'applicazione, un nome utente, una password e un dominio e associa la risorsa a un nuovo componente Process.
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
Parametri
- fileName
- String
Nome di un file di applicazione da eseguire nel processo.
- userName
- String
Nome utente da usare all'avvio del processo.
- password
- SecureString
Classe SecureString contenente la password da usare all'avvio del processo.
- domain
- String
Dominio da usare all'avvio del processo.
Restituisce
Nuovo Process associato alla risorsa di processo o null
se non viene avviata alcuna risorsa di processo. Si noti che un nuovo processo avviato parallelamente a istanze dello stesso processo già in esecuzione sarà indipendente dalle altre. Inoltre, l'avvio può restituire un processo non Null con la relativa proprietà HasExited già impostata su true
. In questo caso, è possibile che il processo avviato abbia attivato un'istanza esistente di se stesso e quindi sia terminato.
- Attributi
Eccezioni
Nessun nome file specificato.
Si è verificato un errore durante l'apertura del file associato.
-oppure-
Non è stato possibile trovare il file specificato in fileName
.
L'oggetto del processo è già stato eliminato.
Questo membro non è supportato in Linux o macOS (solo .NET Core).
Esempio
L'esempio di codice seguente illustra l'uso di questo overload per avviare un file eseguibile e illustra anche la generazione di un Win32Exception oggetto quando viene eseguito un tentativo di avviare un'applicazione associata a un file non eseguibile.
// 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
Commenti
Usare questo overload per creare un nuovo processo e il relativo thread primario specificando il nome del file, il nome utente, la password e il dominio. Il nuovo processo esegue quindi il file eseguibile specificato nel contesto di sicurezza delle credenziali specificate (utente, dominio e password).
Importante
La chiamata a questo metodo con dati non attendibili costituisce un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
Nota
Quando il file eseguibile si trova in un'unità remota, è necessario identificare la condivisione di rete usando un URI (Uniform Resource Identifier), non una lettera di unità collegata.
Nota
Se l'indirizzo del file eseguibile da avviare è un URL, il processo non viene avviato e null
viene restituito.
Questo overload consente di avviare un processo senza prima creare una nuova Process istanza. L'overload è un'alternativa alla procedura esplicita di creazione di una nuova Process istanza, l'impostazione delle FileNameproprietà , UserNamePassword, e Domain della proprietà della StartInfo proprietà e la chiamata Start all'istanzaProcess.
Analogamente, nello stesso modo in cui la finestra di dialogo Esegui può accettare un nome di file eseguibile con o senza l'estensione .exe, l'estensione .exe è facoltativa nel fileName
parametro. Ad esempio, è possibile impostare il fileName
parametro su "Notepad.exe" o "Blocco note". Se il parametro rappresenta un file eseguibile, il fileName
arguments
parametro potrebbe rappresentare un file da eseguire, ad esempio il file di testo in Notepad.exe myfile.txt
.
Nota
Il nome del file deve rappresentare un file eseguibile negli Start overload con userName
parametri , password
e domain
.
Ogni volta che si usa Start per avviare un processo, potrebbe essere necessario chiuderlo o perdere risorse di sistema. Chiudere i processi usando CloseMainWindow o Kill. È possibile verificare se un processo è già stato chiuso usando la relativa HasExited proprietà.
Si applica a
Start(String, String)
- Origine:
- Process.cs
- Origine:
- Process.cs
- Origine:
- Process.cs
Avvia una risorsa di processo specificando il nome di un'applicazione e un insieme di argomenti della riga di comando e associa la risorsa a un nuovo componente Process.
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
Parametri
- fileName
- String
Nome di un file di applicazione da eseguire nel processo.
- arguments
- String
Argomenti della riga di comando da passare all'avvio del processo.
Restituisce
Nuovo Process associato alla risorsa di processo o null
se non viene avviata alcuna risorsa di processo. Si noti che un nuovo processo avviato parallelamente a istanze dello stesso processo già in esecuzione sarà indipendente dalle altre. Inoltre, l'avvio può restituire un processo non Null con la relativa proprietà HasExited già impostata su true
. In questo caso, è possibile che il processo avviato abbia attivato un'istanza esistente di se stesso e quindi sia terminato.
- Attributi
Eccezioni
Il parametro fileName
o il parametro arguments
è null
.
Si è verificato un errore durante l'apertura del file associato.
-oppure-
Non è stato possibile trovare il file specificato in fileName
.
-oppure-
La somma della lunghezza degli argomenti e della lunghezza del percorso completo del processo supera i 2080 caratteri. Il messaggio di errore associato a questa eccezione può essere uno dei seguenti: "L'area dati passata a una chiamata di sistema è troppo piccola" o "Accesso negato".
L'oggetto del processo è già stato eliminato.
La variabile di ambiente PATH include una stringa che contiene virgolette.
Esempio
Nell'esempio seguente viene prima generato un'istanza di Internet Explorer e viene visualizzato il contenuto della cartella Preferiti nel browser. Avvia quindi alcune altre istanze di Internet Explorer e visualizza alcune pagine o siti specifici. Infine avvia Internet Explorer con la finestra ridotta al minimo durante la navigazione in un sito specifico.
#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
Commenti
Usare questo overload per avviare una risorsa di processo specificando il nome del file e gli argomenti della riga di comando. L'overload associa la risorsa a un nuovo Process oggetto.
Importante
La chiamata a questo metodo con dati non attendibili costituisce un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
Nota
Se l'indirizzo del file eseguibile da avviare è un URL, il processo non viene avviato e null
viene restituito.
Questo overload consente di avviare un processo senza prima creare una nuova Process istanza. L'overload è un'alternativa alla procedura esplicita di creazione di una nuova Process istanza, l'impostazione e i FileNameArguments membri della StartInfo proprietà e la chiamata Start all'istanza Process .
L'avvio di un processo specificando il nome del file e gli argomenti è simile a quello di digitare il nome del file e gli argomenti della riga di comando nella Run
finestra di dialogo del menu Di Windows Start
. Pertanto, il nome del file non deve rappresentare un file eseguibile. Può essere di qualsiasi tipo di file per cui l'estensione è stata associata a un'applicazione installata nel sistema. Ad esempio, il nome del file può avere un'estensione .txt se sono stati associati file di testo con un editor, ad esempio Blocco note, oppure può avere un .doc se sono stati associati file .doc con uno strumento di elaborazione delle parole, ad esempio Microsoft Word. Analogamente, nello stesso modo in cui la finestra di dialogo può accettare un nome di file eseguibile con o senza l'estensione .exe, l'estensione Run
.exe è facoltativa nel fileName
parametro. Ad esempio, è possibile impostare il fileName
parametro su "Notepad.exe" o "Blocco note". Se il parametro rappresenta un file eseguibile, il fileName
arguments
parametro potrebbe rappresentare un file da eseguire, ad esempio il file di testo in Notepad.exe myfile.txt
. Se il parametro rappresenta un file di comando (.cmd), il fileName
arguments
parametro deve includere un argomento "" o "/c
/k
" per specificare se la finestra dei comandi viene chiusa o rimane dopo il completamento.
A differenza degli altri overload, l'overload di Start che non ha parametri non è un static
membro. Usare tale overload quando è già stata creata un'istanza e le informazioni di avvio specificate (incluso il nome del file) e si vuole avviare una Process risorsa di processo e associarla all'istanza esistente Process . Usare uno degli static
overload quando si vuole creare un nuovo Process componente anziché avviare un processo per un componente esistente. Sia questo overload che l'overload senza parametri consentono di specificare il nome file della risorsa del processo per avviare e passare gli argomenti della riga di comando.
Se si dispone di una variabile di percorso dichiarata nel sistema usando virgolette, è necessario qualificare completamente tale percorso quando si avvia qualsiasi processo trovato in tale posizione. In caso contrario, il sistema non troverà il percorso. Ad esempio, se c:\mypath
non si trova nel percorso e lo si aggiunge usando virgolette: path = %path%;"c:\mypath"
, è necessario qualificare completamente qualsiasi processo durante c:\mypath
l'avvio.
Nota
ASP.NET codice di controllo della pagina Web e del server viene eseguito nel contesto del processo di lavoro ASP.NET nel server Web. Se si usa il Start metodo in una pagina Web ASP.NET controllo server o pagina Web, il nuovo processo viene eseguito nel server Web con autorizzazioni limitate. Il processo non viene avviato nello stesso contesto del browser client e non ha accesso al desktop utente.
Ogni volta che si usa Start per avviare un processo, potrebbe essere necessario chiuderlo o perdere risorse di sistema. Chiudere i processi usando CloseMainWindow o Kill. È possibile verificare se un processo è già stato chiuso usando la relativa HasExited proprietà.
Una nota sugli stati dell'appartamento nei thread gestiti è necessaria qui. Quando UseShellExecute si trova true
nella proprietà del StartInfo componente del processo, assicurarsi di aver impostato un modello di threading nell'applicazione impostando l'attributo [STAThread]
sul main()
metodo. In caso contrario, un thread gestito può essere in uno unknown
stato o inserire nello stato, l'ultimo dei quali è in conflitto con UseShellExecute l'essere MTA
true
. Alcuni metodi richiedono che lo stato dell'appartamento non sia unknown
. Se lo stato non è impostato in modo esplicito, quando l'applicazione rileva tale metodo, il valore predefinito MTA
è , e una volta impostato, lo stato dell'appartamento non può essere modificato. Tuttavia, MTA
causa la generazione di un'eccezione quando la shell del sistema operativo gestisce il thread.
Vedi anche
Si applica a
Start(String)
- Origine:
- Process.cs
- Origine:
- Process.cs
- Origine:
- Process.cs
Avvia una risorsa di processo specificando il nome di un documento o un file di applicazione e associa la risorsa a un nuovo componente Process.
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
Parametri
- fileName
- String
Nome di un documento o di un file di applicazione da eseguire nel processo.
Restituisce
Nuovo Process associato alla risorsa di processo o null
se non viene avviata alcuna risorsa di processo. Si noti che un nuovo processo avviato parallelamente a istanze dello stesso processo già in esecuzione sarà indipendente dalle altre. Inoltre, l'avvio può restituire un processo non Null con la relativa proprietà HasExited già impostata su true
. In questo caso, è possibile che il processo avviato abbia attivato un'istanza esistente di se stesso e quindi sia terminato.
- Attributi
Eccezioni
Si è verificato un errore durante l'apertura del file associato.
-oppure-
Non è stato possibile trovare il file specificato in fileName
.
L'oggetto del processo è già stato eliminato.
La variabile di ambiente PATH include una stringa che contiene virgolette.
Esempio
Nell'esempio seguente viene prima generato un'istanza di Internet Explorer e viene visualizzato il contenuto della cartella Preferiti nel browser. Avvia quindi alcune altre istanze di Internet Explorer e visualizza alcune pagine o siti specifici. Infine avvia Internet Explorer con la finestra ridotta al minimo durante la navigazione in un sito specifico.
#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
Commenti
Usare questo overload per avviare una risorsa di processo specificando il nome del file. L'overload associa la risorsa a un nuovo Process oggetto.
Importante
La chiamata a questo metodo con dati non attendibili costituisce un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
Nota
Se l'indirizzo del file eseguibile da avviare è un URL, il processo non viene avviato e null
viene restituito.
Questo overload consente di avviare un processo senza prima creare una nuova Process istanza. L'overload è un'alternativa alla procedura esplicita di creazione di una nuova Process istanza, l'impostazione del membro della StartInfo proprietà e la FileName chiamata Start all'istanzaProcess.
È possibile avviare un'applicazione ClickOnce impostando il fileName
parametro sul percorso (ad esempio, un indirizzo Web) da cui è stata originariamente installata l'applicazione. Non avviare un'applicazione ClickOnce specificando il percorso installato nel disco rigido.
L'avvio di un processo specificando il nome del file è simile alla digitazione delle informazioni nella Run
finestra di dialogo del menu di Windows Start
. Pertanto, il nome del file non deve rappresentare un file eseguibile. Può essere di qualsiasi tipo di file per cui l'estensione è stata associata a un'applicazione installata nel sistema. Ad esempio, il nome del file può avere un'estensione .txt se sono stati associati file di testo con un editor, ad esempio Blocco note, oppure può avere un .doc se sono stati associati file .doc con uno strumento di elaborazione delle parole, ad esempio Microsoft Word. Analogamente, nello stesso modo in cui la finestra di dialogo può accettare un nome di file eseguibile con o senza l'estensione .exe, l'estensione Run
.exe è facoltativa nel fileName
parametro. Ad esempio, è possibile impostare il fileName
parametro su "Notepad.exe" o "Blocco note".
Questo overload non consente argomenti della riga di comando per il processo. Se è necessario specificare uno o più argomenti della riga di comando per il processo, usare gli Process.Start(ProcessStartInfo) overload o Process.Start(String, String) .
A differenza degli altri overload, l'overload di Start che non ha parametri non è un static
membro. Usare tale overload quando è già stata creata un'istanza e le informazioni di avvio specificate (incluso il nome del file) e si vuole avviare una Process risorsa di processo e associarla all'istanza esistente Process . Usare uno degli static
overload quando si vuole creare un nuovo Process componente anziché avviare un processo per un componente esistente. Sia questo overload che l'overload senza parametri consentono di specificare il nome file della risorsa del processo da avviare.
Se si dispone di una variabile di percorso dichiarata nel sistema usando virgolette, è necessario qualificare completamente tale percorso quando si avvia qualsiasi processo trovato in tale posizione. In caso contrario, il sistema non troverà il percorso. Ad esempio, se c:\mypath
non si trova nel percorso e lo si aggiunge usando virgolette: path = %path%;"c:\mypath"
, è necessario qualificare completamente qualsiasi processo durante c:\mypath
l'avvio.
Nota
ASP.NET codice di controllo della pagina Web e del server viene eseguito nel contesto del processo di lavoro ASP.NET nel server Web. Se si usa il Start metodo in una pagina Web ASP.NET controllo server o pagina Web, il nuovo processo viene eseguito nel server Web con autorizzazioni limitate. Il processo non viene avviato nello stesso contesto del browser client e non ha accesso al desktop utente.
Ogni volta che si usa Start per avviare un processo, potrebbe essere necessario chiuderlo o perdere risorse di sistema. Chiudere i processi usando CloseMainWindow o Kill. È possibile verificare se un processo è già stato chiuso usando la relativa HasExited proprietà.
Una nota sugli stati dell'appartamento nei thread gestiti è necessaria qui. Quando UseShellExecute si trova true
nella proprietà del StartInfo componente del processo, assicurarsi di aver impostato un modello di threading nell'applicazione impostando l'attributo [STAThread]
sul main()
metodo. In caso contrario, un thread gestito può essere in unknown
uno stato o inserito nello stato , il secondo dei quali è in conflitto con UseShellExecute l'essere MTA
true
. Alcuni metodi richiedono che lo stato dell'apartment non sia unknown
. Se lo stato non è impostato in modo esplicito, quando l'applicazione rileva tale metodo, per impostazione predefinita MTA
è e una volta impostato, lo stato dell'apartment non può essere modificato. Tuttavia, MTA
fa sì che venga generata un'eccezione quando la shell del sistema operativo gestisce il thread.
Vedi anche
Si applica a
Start(ProcessStartInfo)
- Origine:
- Process.cs
- Origine:
- Process.cs
- Origine:
- Process.cs
Avvia la risorsa di processo specificata dal parametro contenente le informazioni di avvio del processo (ad esempio, il nome file del processo da avviare) e associa la risorsa a un nuovo componente Process.
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
Parametri
- startInfo
- ProcessStartInfo
Oggetto ProcessStartInfo che contiene le informazioni usate per avviare il processo, tra cui il nome file e gli eventuali argomenti della riga di comando.
Restituisce
Nuovo Process associato alla risorsa di processo o null
se non viene avviata alcuna risorsa di processo. Si noti che un nuovo processo avviato parallelamente a istanze dello stesso processo già in esecuzione sarà indipendente dalle altre. Inoltre, l'avvio può restituire un processo non Null con la relativa proprietà HasExited già impostata su true
. In questo caso, è possibile che il processo avviato abbia attivato un'istanza esistente di se stesso e quindi sia terminato.
- Attributi
Eccezioni
Non è stato specificato alcun nome file nella proprietà FileName del parametro startInfo
.
-oppure-
La proprietà UseShellExecute del parametro startInfo
è true
e anche la proprietà RedirectStandardInput, RedirectStandardOutput o RedirectStandardError è true
.
-oppure-
La proprietà UseShellExecute del parametro startInfo
è true
e la proprietà UserName non è null
o vuota oppure la proprietà Password non è null
.
Il valore del parametro startInfo
è null
.
L'oggetto del processo è già stato eliminato.
Si è verificato un errore durante l'apertura del file associato.
-oppure-
Il file specificato nella proprietà FileName del parametro startInfo
non è stato trovato.
-oppure-
La somma della lunghezza degli argomenti e della lunghezza del percorso completo del processo supera i 2080 caratteri. Il messaggio di errore associato a questa eccezione può essere uno dei seguenti: "L'area dati passata a una chiamata di sistema è troppo piccola" o "Accesso negato".
Metodo non supportato nei sistemi operativi senza supporto della shell, ad esempio Nano Server (solo .NET Core).
Esempio
Nell'esempio seguente viene innanzitutto generato un'istanza di Internet Explorer e viene visualizzato il contenuto della cartella Preferiti nel browser. Avvia quindi alcune altre istanze di Internet Explorer e visualizza alcune pagine o siti specifici. Viene infine avviato Internet Explorer con la finestra ridotta a icona durante il passaggio a un sito specifico.
Per altri esempi di altri usi di questo metodo, vedere le singole proprietà della ProcessStartInfo classe .
#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
Commenti
Usare questo overload per avviare una risorsa di processo specificando un'istanza ProcessStartInfo di . L'overload associa la risorsa a un nuovo Process oggetto .
Importante
La chiamata a questo metodo con dati non attendibili costituisce un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
Nota
Se l'indirizzo del file eseguibile da avviare è un URL, il processo non viene avviato e null
viene restituito.
Questo overload consente di avviare un processo senza prima creare una nuova Process istanza. L'uso di questo overload con un ProcessStartInfo parametro è un'alternativa alla procedura esplicita di creazione di una nuova Process istanza, all'impostazione delle relative StartInfo proprietà e alla chiamata Start dell'istanza Process .
L'uso di un'istanza ProcessStartInfo come parametro consente di chiamare Start con il maggior controllo sugli elementi passati nella chiamata per avviare il processo. Se è necessario passare solo un nome file o un nome file e argomenti, non è necessario creare una nuova ProcessStartInfo istanza, anche se si tratta di un'opzione. L'unica Process.StartInfo proprietà che deve essere impostata è la FileName proprietà . La FileName proprietà non deve rappresentare un file eseguibile. Può essere di qualsiasi tipo di file per cui l'estensione è stata associata a un'applicazione installata nel sistema. Ad esempio, la FileName proprietà può avere un'estensione .txt se sono stati associati file di testo a un editor, ad esempio Blocco note, oppure può avere un'estensione .doc se sono stati associati file .doc a uno strumento di elaborazione delle parole, ad esempio Microsoft Word.
È possibile avviare un'applicazione ClickOnce specificando il percorso ,ad esempio un indirizzo Web, da cui è stata originariamente installata l'applicazione. Non avviare un'applicazione ClickOnce specificandone il percorso installato nel disco rigido.
Se vengono impostate le proprietà e ProcessStartInfo.Password dell'istanzaStartInfo, viene chiamata la funzione non gestitaCreateProcessWithLogonW
, che avvia il processo in una nuova finestra anche se il valore della ProcessStartInfo.CreateNoWindow proprietà è true
o il valore della ProcessStartInfo.WindowStyle proprietà è ProcessWindowStyle.Hidden.ProcessStartInfo.UserName Se la ProcessStartInfo.Domain proprietà è null
, la ProcessStartInfo.UserName proprietà deve essere in formato UPN, l'utente@DNS_domain_name.
A differenza degli altri overload, l'overload di Start che non ha parametri non è un static
membro. Usare l'overload quando è già stata creata un'istanza Process e sono state specificate le informazioni di avvio (incluso il nome del file) e si vuole avviare una risorsa di processo e associarla all'istanza esistente Process . Usare uno degli static
overload quando si vuole creare un nuovo Process componente anziché avviare un processo per un componente esistente. Sia questo overload che l'overload senza parametri consentono di specificare le informazioni di avvio per la risorsa di processo usando un'istanza ProcessStartInfo di .
Se nel sistema è stata dichiarata una variabile di percorso usando le virgolette, è necessario qualificare completamente tale percorso all'avvio di qualsiasi processo trovato in tale posizione. In caso contrario, il sistema non troverà il percorso. Ad esempio, se c:\mypath
non si trova nel percorso e lo si aggiunge usando virgolette: path = %path%;"c:\mypath"
, è necessario qualificare completamente qualsiasi processo in c:\mypath
al momento dell'avvio.
Nota
ASP.NET pagina Web e il codice di controllo server viene eseguito nel contesto del processo di lavoro ASP.NET nel server Web. Se si utilizza il Start metodo in una pagina Web ASP.NET o in un controllo server, il nuovo processo viene eseguito nel server Web con autorizzazioni limitate. Il processo non viene avviato nello stesso contesto del browser client e non ha accesso al desktop dell'utente.
Ogni volta che si usa Start per avviare un processo, potrebbe essere necessario chiuderlo o rischiare di perdere risorse di sistema. Chiudere i processi usando CloseMainWindow o Kill. È possibile verificare se un processo è già stato chiuso usando la relativa HasExited proprietà .
Una nota sugli stati apartment nei thread gestiti è necessaria qui. Quando UseShellExecute si trova true
nel startInfo
parametro , assicurarsi di aver impostato un modello di threading nell'applicazione impostando l'attributo [STAThread]
nel main()
metodo . In caso contrario, un thread gestito può essere in unknown
uno stato o inserito nello stato , il secondo dei quali è in conflitto con UseShellExecute l'essere MTA
true
. Alcuni metodi richiedono che lo stato dell'apartment non sia unknown
. Se lo stato non è impostato in modo esplicito, quando l'applicazione rileva tale metodo, per impostazione predefinita MTA
è e una volta impostato, lo stato dell'apartment non può essere modificato. Tuttavia, MTA
fa sì che venga generata un'eccezione quando la shell del sistema operativo gestisce il thread.
Vedi anche
Si applica a
Start()
- Origine:
- Process.cs
- Origine:
- Process.cs
- Origine:
- 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
Restituisce
true
se viene avviata una risorsa di processo, false
se non viene avviata alcuna risorsa di processo nuova (ad esempio, se è stato riutilizzato un processo esistente).
- Attributi
Eccezioni
Non è stato specificato alcun nome file nella proprietà StartInfo del componente Process.
-oppure-
Il membro UseShellExecute della proprietà StartInfo è true
mentre RedirectStandardInput, RedirectStandardOutputo RedirectStandardError è true
.
Si è verificato un errore durante l'apertura del file associato.
L'oggetto del processo è già stato eliminato.
Metodo non supportato nei sistemi operativi senza supporto della shell, ad esempio Nano Server (solo .NET Core).
Esempio
Nell'esempio seguente viene utilizzata un'istanza della Process classe per avviare un processo.
#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
Commenti
Usare questo overload per avviare una risorsa di processo e associarla al componente corrente Process . Il valore true
restituito indica che è stata avviata una nuova risorsa di processo. Se la risorsa di processo specificata dal FileName membro della StartInfo proprietà è già in esecuzione nel computer, non viene avviata alcuna risorsa di processo aggiuntiva. La risorsa del processo in esecuzione viene invece riutilizzata e false
viene restituita.
È possibile avviare un'applicazione ClickOnce specificando il percorso ,ad esempio un indirizzo Web, da cui è stata originariamente installata l'applicazione. Non avviare un'applicazione ClickOnce specificandone il percorso installato nel disco rigido.
Importante
L'utilizzo di un'istanza di tale oggetto con i dati non attendibili implica un rischio per la sicurezza. Usare questo oggetto solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
Nota
Se si usa Visual Studio, questo overload del Start metodo è quello inserito nel codice dopo aver trascinato un Process componente nella finestra di progettazione. Usare la Properties
finestra per espandere la StartInfo
categoria e scrivere il valore appropriato nella FileName
proprietà . Le modifiche verranno visualizzate nella routine del InitializeComponent
modulo.
Questo overload di Start non è un static
metodo. È necessario chiamarlo da un'istanza della Process classe . Prima di chiamare Start, è necessario specificare StartInfo le informazioni sulle proprietà per questa Process istanza, perché tali informazioni vengono usate per determinare la risorsa di processo da avviare.
Gli altri overload del Start metodo sono static
membri. Non è necessario creare un'istanza del Process componente prima di chiamare gli overload del metodo . È invece possibile chiamare Start per la Process classe stessa e viene creato un nuovo Process componente se il processo è stato avviato. In alternativa, null
viene restituito se un processo è stato riutilizzato. La risorsa di processo viene associata automaticamente al nuovo Process componente restituito dal Start metodo .
I StartInfo membri possono essere usati per duplicare la funzionalità della finestra di dialogo del Run
menu di Windows Start
. Qualsiasi elemento che può essere digitato in una riga di comando può essere avviato impostando i valori appropriati nella StartInfo proprietà. L'unica StartInfo proprietà che deve essere impostata è la FileName proprietà . La FileName proprietà non deve essere un file eseguibile. Può essere di qualsiasi tipo di file per cui l'estensione è stata associata a un'applicazione installata nel sistema. Ad esempio, la FileName proprietà può avere un'estensione .txt se sono stati associati file di testo con un editor, ad esempio Blocco note oppure può avere un'estensione .doc se sono stati associati file .doc con uno strumento di elaborazione delle parole, ad esempio Microsoft Word.
Nella riga di comando è possibile specificare le azioni da eseguire per determinati tipi di file. Ad esempio, è possibile stampare documenti o modificare i file di testo. Specificare queste azioni usando il Verb membro della StartInfo proprietà. Per altri tipi di file, è possibile specificare gli argomenti della riga di comando quando si avvia il file dalla Run
finestra di dialogo. Ad esempio, è possibile passare un URL come argomento se si specifica il browser come FileName. Questi argomenti possono essere specificati nel StartInfo membro della Arguments proprietà.
Se si dispone di una variabile di percorso dichiarata nel sistema usando virgolette, è necessario qualificare completamente tale percorso quando si avvia qualsiasi processo trovato in tale posizione. In caso contrario, il sistema non troverà il percorso. Ad esempio, se c:\mypath
non si trova nel percorso e lo si aggiunge usando virgolette: path = %path%;"c:\mypath"
, è necessario qualificare completamente qualsiasi processo durante c:\mypath
l'avvio.
Nota
ASP.NET codice di controllo della pagina Web e del server viene eseguito nel contesto del processo di lavoro ASP.NET nel server Web. Se si usa il Start metodo in una pagina Web ASP.NET controllo server o pagina Web, il nuovo processo viene eseguito nel server Web con autorizzazioni limitate. Il processo non viene avviato nello stesso contesto del browser client e non ha accesso al desktop utente.
Ogni volta che si usa Start per avviare un processo, potrebbe essere necessario chiuderlo o perdere risorse di sistema. Chiudere i processi usando CloseMainWindow o Kill. È possibile verificare se un processo è già stato chiuso usando la relativa HasExited proprietà.
Una nota sugli stati dell'appartamento nei thread gestiti è necessaria qui. Quando UseShellExecute si trova true
nella proprietà del StartInfo componente del processo, assicurarsi di aver impostato un modello di threading nell'applicazione impostando l'attributo [STAThread]
sul main()
metodo. In caso contrario, un thread gestito può essere in uno unknown
stato o inserire nello stato, l'ultimo dei quali è in conflitto con UseShellExecute l'essere MTA
true
. Alcuni metodi richiedono che lo stato dell'appartamento non sia unknown
. Se lo stato non è impostato in modo esplicito, quando l'applicazione rileva tale metodo, il valore predefinito MTA
è , e una volta impostato, lo stato dell'appartamento non può essere modificato. Tuttavia, MTA
causa la generazione di un'eccezione quando la shell del sistema operativo gestisce il thread.
Vedi anche
Si applica a
Start(String, IEnumerable<String>)
- Origine:
- Process.cs
- Origine:
- Process.cs
- Origine:
- Process.cs
Avvia una risorsa di processo specificando il nome di un'applicazione e un set di argomenti della riga di comando.
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
Parametri
- fileName
- String
Nome di un documento o di un file di applicazione da eseguire nel processo.
- arguments
- IEnumerable<String>
Gli argomenti della riga di comando da passare durante l'avvio del processo.
Restituisce
Nuovo Process associato alla risorsa di processo o null
se non viene avviata alcuna risorsa di processo.
- Attributi
Commenti
Ogni argomento verrà eseguito automaticamente se necessario.
Importante
La chiamata a questo metodo con dati non attendibili costituisce un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.