Process.StartInfo Eigenschaft

Definition

Ruft die Eigenschaften ab, die an die Start()-Methode von Process übergeben werden sollen, oder legt diese fest.

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

Eigenschaftswert

Die ProcessStartInfo, die die Daten darstellt, mit denen der Prozess gestartet werden soll. Diese Argumente beinhalten den Namen der ausführbaren Datei oder des Dokuments, das zum Starten des Prozesses verwendet wurde.

Attribute

Ausnahmen

Der Wert, der die StartInfo angibt, ist null.

Nur .NET Core und .NET 5+: Die Start() -Methode wurde nicht zum Starten des Prozesses verwendet.

Beispiele

Im folgenden Beispiel wird eine StartInfo mit der auszuführenden Datei, der darauf ausgeführten Aktion und der Angabe aufgefüllt, ob eine Benutzeroberfläche angezeigt werden soll. Weitere Beispiele finden Sie auf den Referenzseiten für Eigenschaften der ProcessStartInfo -Klasse.

#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

Hinweise

StartInfo stellt den Satz von Parametern dar, die zum Starten eines Prozesses verwendet werden sollen. Wenn Start aufgerufen wird, wird verwendet StartInfo , um den zu startenden Prozess anzugeben. Das einzige erforderliche StartInfo Element, das festgelegt werden muss, ist die FileName -Eigenschaft. Das Starten eines Prozesses durch Angeben der FileName Eigenschaft ähnelt der Eingabe der Informationen im Dialogfeld Ausführen des Windows-Startmenüs . Daher muss die FileName -Eigenschaft keine ausführbare Datei darstellen. Sie können einen beliebigen Dateityp werden für die die Erweiterung mit einer Anwendung, die auf dem System installierten zugeordnet wurde. Beispielsweise kann die FileName eine .txt-Erweiterung haben, wenn Sie Textdateien mit einem Editor wie Editor verknüpft haben, oder es kann eine .doc haben, wenn Sie .doc Dateien einem Textverarbeitungstool wie Microsoft Word zugeordnet haben. Ebenso wie das Dialogfeld Ausführen einen ausführbaren Dateinamen mit oder ohne .exe-Erweiterung akzeptieren kann, ist die .exe-Erweiterung im FileName Element optional. Beispielsweise können Sie die FileName Eigenschaft auf "Notepad.exe" oder "Editor" festlegen.

Sie können eine ClickOnce-Anwendung starten, indem Sie die FileName Eigenschaft auf den Speicherort (z. B. eine Webadresse) festlegen, von dem aus Sie die Anwendung ursprünglich installiert haben. Starten Sie eine ClickOnce-Anwendung nicht, indem Sie ihren installierten Speicherort auf Ihrer Festplatte angeben.

Wenn der Dateiname eine nicht ausführende Datei umfasst, z. B. eine .doc Datei, können Sie ein Verb einschließen, das angibt, welche Aktion für die Datei ausgeführt werden soll. Beispielsweise könnten Sie für eine Datei, die in der Verb Erweiterung .doc endet, auf "Drucken" festlegen. Der in der FileName Eigenschaft angegebene Dateiname muss keine Erweiterung aufweisen, wenn Sie manuell einen Wert für die Verb Eigenschaft eingeben. Wenn Sie jedoch die Verbs -Eigenschaft verwenden, um zu bestimmen, welche Verben verfügbar sind, müssen Sie die Erweiterung einschließen.

Sie können die in der StartInfo -Eigenschaft angegebenen Parameter bis zu dem Zeitpunkt ändern, zu dem Sie die -Methode für den Start Prozess aufrufen. Nachdem Sie den Prozess gestartet haben, wirkt sich das Ändern der StartInfo Werte nicht auf den zugeordneten Prozess aus oder startet sie neu. Wenn Sie die Start(ProcessStartInfo) -Methode mit festgelegten ProcessStartInfo.UserName Eigenschaften und ProcessStartInfo.Password aufrufen, wird die nicht verwaltete CreateProcessWithLogonW Funktion aufgerufen, die den Prozess in einem neuen Fenster startet, auch wenn der CreateNoWindow Eigenschaftswert true oder der WindowStyle Eigenschaftswert ist Hidden.

Sie sollten nur auf die StartInfo -Eigenschaft für ein Process Objekt zugreifen, das von der Start -Methode zurückgegeben wird. Beispielsweise sollten Sie nicht auf die StartInfo -Eigenschaft für ein Process objekt zugreifen, das von zurückgegeben wird GetProcesses. Andernfalls löst die StartInfo Eigenschaft unter .NET Core ein ausInvalidOperationException, und bei .NET Framework gibt sie ein Dummyobjekt ProcessStartInfo zurück.

Wenn der Prozess gestartet wird, ist der Dateiname die Datei, die die (schreibgeschützte) MainModule Eigenschaft auffüllt. Wenn Sie die ausführbare Datei abrufen möchten, die dem Prozess zugeordnet ist, nachdem der Prozess gestartet wurde, verwenden Sie die MainModule -Eigenschaft. Wenn Sie die ausführbare Datei einer Process instance festlegen möchten, für die ein zugeordneter Prozess nicht gestartet wurde, verwenden Sie das Element der StartInfoFileName Eigenschaft. Da es sich bei den Membern der StartInfo -Eigenschaft um Argumente handelt, die an die Start Methode eines Prozesses übergeben werden, wird die Eigenschaft durch Ändern der FileName Eigenschaft nach dem Start des zugeordneten Prozesses nicht zurückgesetzt MainModule . Diese Eigenschaften werden nur verwendet, um den zugeordneten Prozess zu initialisieren.

Gilt für:

Weitere Informationen