Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Process.Start (ProcessStartInfo)

 

Data di pubblicazione: ottobre 2016

System_CAPS_noteNota

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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.

Spazio dei nomi:   System.Diagnostics
Assembly:  System (in System.dll)

public static Process Start(
	ProcessStartInfo startInfo
)

Parametri

startInfo
Type: System.Diagnostics.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.

Valore restituito

Type: System.Diagnostics.Process

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.

Exception Condition
InvalidOperationException

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.

ArgumentNullException

Il valore del parametro startInfo è null.

ObjectDisposedException

L'oggetto del processo è già stato eliminato.

FileNotFoundException

Il file specificato nella proprietà FileName del parametro startInfo non è stato trovato.

Win32Exception

Si è verificato un errore durante l'apertura del file associato.

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." oppure "Accesso negato".

Utilizzare questo overload per avviare una risorsa di processo specificando un ProcessStartInfo istanza. L'overload associa la risorsa a un nuovo Process oggetto.

System_CAPS_noteNota

Se l'indirizzo del file eseguibile da avviare è un URL, il processo non è stato avviato e null viene restituito.

Questo overload consente di avviare un processo senza prima creare un nuovo Process istanza. Utilizza questo overload con un ProcessStartInfo parametro costituisce un'alternativa alle fasi esplicite di creazione di un nuovo Process istanza, l'impostazione relativa StartInfo proprietà e la chiamata Start per il Process istanza.

Utilizzando un ProcessStartInfo istanza come parametro consente di chiamare Start con il maggior controllo su ciò che viene passato nella chiamata per avviare il processo. Se è necessario passare solo un nome file o un nome di file e gli argomenti, non è necessario creare un nuovo ProcessStartInfo istanza, anche se questa opzione è. L'unico Process.StartInfo è di proprietà che è necessario impostare il FileName proprietà. Il FileName proprietà non ha bisogno rappresentare un file eseguibile. Può trattarsi di qualsiasi tipo di file con estensione è stata associata a un'applicazione installata nel sistema. Ad esempio, il FileName proprietà può avere estensione txt se sono stati associati file di testo con un editor, ad esempio Blocco note, oppure può avere un'estensione doc se si dispone di file doc con uno strumento di elaborazione di testi, ad esempio Microsoft Word.

È possibile avviare un'applicazione ClickOnce specificando il percorso da cui è stato installato l'applicazione (ad esempio, un indirizzo Web). Avviare un'applicazione ClickOnce specificandone il percorso di installazione sul disco rigido.

Se il ProcessStartInfo.UserName e ProcessStartInfo.Password vengono impostate proprietà, non gestito CreateProcessWithLogonW funzione viene chiamata, che avvia il processo di una nuova finestra, anche se il ProcessStartInfo.CreateNoWindow valore della proprietà è true o ProcessStartInfo.WindowStyle valore della proprietà è ProcessWindowStyle.Hidden. Se il ProcessStartInfo.Domain proprietà null, ProcessStartInfo.UserName proprietà deve essere nel formato UPN, user@DNS_domain_name.

A differenza di altri overload, il metodo di overload Start che non dispone di parametri non è un static membro. Utilizzare questo overload quando è già stato creato un Process istanza, le informazioni di avvio specificato (incluso il nome di file) e si desidera avviare una risorsa di processo e associarlo a esistente Process istanza. Utilizzare uno del static overload quando si desidera creare un nuovo Process componente piuttosto che avviare un processo per un componente esistente. Questo overload sia l'overload senza parametri consentono di specificare le informazioni di avvio per la risorsa di processo utilizzando un ProcessStartInfo istanza.

Se si dispone di una variabile di percorso nel sistema utilizzando le virgolette, è necessario qualificare completamente il percorso all'avvio dei processi in tale percorso. In caso contrario, il sistema non troverà il percorso. Ad esempio, se c:\mypath non è presente nel percorso, e si aggiunge utilizzando le virgolette: path = %path%;"c:\mypath", è necessario qualificare completamente qualsiasi processo in c:\mypath per l'avvio.

System_CAPS_noteNota

Codice di controllo di pagina e il server Web ASP.NET 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 un controllo server, il nuovo processo viene eseguito sul server Web con autorizzazioni limitate. Il processo non viene avviato nello stesso contesto nel browser client e non dispone dell'accesso al desktop dell'utente.

Quando si utilizza Start per avviare un processo, potrebbe essere necessario chiuderlo o si rischia di perdere le risorse di sistema. Chiudere i processi utilizzando CloseMainWindow o Kill. È possibile verificare se un processo è già stato chiuso mediante il relativo HasExited proprietà.

Questo caso, è necessaria una nota sugli stati di apartment di thread gestiti. Quando UseShellExecute è true sul startInfo parametro, è necessario impostare un modello di threading dell'applicazione impostando l'attributo [STAThread] sul main() metodo. In caso contrario, un thread gestito può essere un unknown stato o inserire nel MTA stato, quest ' ultimo che è in conflitto con UseShellExecute da true. Alcuni metodi richiedono che lo stato dell'apartment non essere unknown. Se lo stato non è esplicitamente impostato, quando l'applicazione rileva tale metodo, per impostazione predefinita MTA, e una volta impostato, lo stato dell'apartment non può essere modificato. Tuttavia, MTA genererà un'eccezione generata quando la shell del sistema operativo gestisce il thread.

Nell'esempio seguente viene innanzitutto generata un'istanza di Internet Explorer e visualizza il contenuto della cartella Preferiti nel browser. Quindi avvia alcune altre istanze di Internet Explorer e consente di visualizzare alcune pagine specifiche o siti. Infine, viene avviato Internet Explorer con la finestra ridotta a icona durante l'esplorazione di un sito specifico.

Per ulteriori esempi di altri utilizzi di questo metodo, vedere le singole proprietà di ProcessStartInfo classe.

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

LinkDemand

for full trust for the immediate caller. This member cannot be used by partially trusted code.

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: