Process.StartInfo Proprietà

Definizione

Ottiene o imposta le proprietà da passare al metodo Start() del componente Process.

public:
 property System::Diagnostics::ProcessStartInfo ^ StartInfo { System::Diagnostics::ProcessStartInfo ^ get(); void set(System::Diagnostics::ProcessStartInfo ^ value); };
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
[System.ComponentModel.Browsable(false)]
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
[<System.ComponentModel.Browsable(false)>]
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
Public Property StartInfo As ProcessStartInfo

Valore della proprietà

Oggetto ProcessStartInfo che rappresenta i dati con i quali avviare il processo. Tra gli argomenti sono compresi il nome del file eseguibile o il documento usato per avviare il processo.

Attributi

Eccezioni

Il valore che specifica la proprietà StartInfo è null.

Solo .NET Core e .NET 5+ : il Start() metodo non è stato usato per avviare il processo.

Esempio

L'esempio seguente popola un StartInfo oggetto con il file da eseguire, l'azione eseguita su di essa e se deve visualizzare un'interfaccia utente. Per altri esempi, vedere le pagine di riferimento per le proprietà della ProcessStartInfo classe.

#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

StartInfo rappresenta il set di parametri da usare per avviare un processo. Quando Start viene chiamato, viene StartInfo usato per specificare il processo da avviare. L'unico membro necessario StartInfo da impostare è la FileName proprietà . L'avvio di un processo specificando la FileName proprietà è simile alla digitazione delle informazioni nella finestra di dialogo Esegui del menu Start di Windows. Pertanto, 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, 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 FileName Microsoft Word. 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 membro. Ad esempio, è possibile impostare la FileName proprietà su "Notepad.exe" o "Blocco note".

È possibile avviare un'applicazione ClickOnce impostando la proprietà sul FileName 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.

Se il nome del file comporta un file non eseguibile, ad esempio un file .doc, è possibile includere un verbo che specifica l'azione da eseguire nel file. Ad esempio, è possibile impostare su "Stampa" per un file che termina nell'estensione Verb .doc. Il nome del file specificato nella FileName proprietà non deve avere un'estensione se si immette manualmente un valore per la Verb proprietà. Tuttavia, se si usa la Verbs proprietà per determinare quali verbi sono disponibili, è necessario includere l'estensione.

È possibile modificare i parametri specificati nella StartInfo proprietà fino al momento in cui si chiama il Start metodo nel processo. Dopo aver avviato il processo, la modifica dei StartInfo valori non influisce o riavvia il processo associato. Se si chiama il Start(ProcessStartInfo) metodo con le ProcessStartInfo.UserName proprietà e ProcessStartInfo.Password impostate, viene chiamata la funzione non gestitaCreateProcessWithLogonW, che avvia il processo in una nuova finestra anche se il CreateNoWindow valore della proprietà è o il valore della WindowStyle proprietà è trueHidden.

È consigliabile accedere solo alla StartInfo proprietà in un Process oggetto restituito dal Start metodo . Ad esempio, non è consigliabile accedere alla StartInfo proprietà in un Process oggetto restituito da GetProcesses. In caso contrario, in .NET Core la StartInfo proprietà genererà un InvalidOperationException oggetto e in .NET Framework restituirà un oggetto fittizio ProcessStartInfo .

Al termine dell'avvio del processo, il nome del file è il file che popola la proprietà (di sola lettura). MainModule Se si vuole recuperare il file eseguibile associato al processo dopo l'avvio del processo, usare la MainModule proprietà . Se si vuole impostare il file eseguibile di un'istanza Process per cui non è stato avviato un processo associato, usare il StartInfo membro della FileName proprietà. Poiché i membri della StartInfo proprietà sono argomenti passati al Start metodo di un processo, la modifica FileName della proprietà dopo l'avvio del processo associato non reimposta la MainModule proprietà. Queste proprietà vengono usate solo per inizializzare il processo associato.

Si applica a

Vedi anche