Process.StartInfo Vlastnost

Definice

Získá nebo nastaví vlastnosti, které se mají předat Start() metodě 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

Hodnota vlastnosti

Představuje ProcessStartInfo data, se kterými se má proces zahájit. Mezi tyto argumenty patří název spustitelného souboru nebo dokumentu použitého k zahájení procesu.

Atributy

Výjimky

Hodnota, která určuje StartInfo , je null.

Pouze .NET Core a .NET 5+: Metoda Start() nebyla použita ke spuštění procesu.

Příklady

Následující příklad naplní StartInfo souborem, který se má provést, akcí, která se na něm provedla a zda má zobrazit uživatelské rozhraní. Další příklady najdete na referenčních stránkách pro vlastnosti ProcessStartInfo třídy .

#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

Poznámky

StartInfo představuje sadu parametrů, které se mají použít ke spuštění procesu. Při Start zavolání StartInfo se použije k určení procesu, který se má spustit. Jediným potřebným StartInfo členem, který je třeba nastavit, FileName je vlastnost . Spuštění procesu zadáním FileName vlastnosti se podobá zadání informací v dialogovém okně Spustit v nabídce Start systému Windows. FileName Vlastnost proto nemusí představovat spustitelný soubor. Může to být jakýkoli typ souboru, pro který je přípona přidružená k aplikaci nainstalované v systému. FileName Například může mít příponu .txt, pokud máte textové soubory přidružené k editoru, jako je Poznámkový blok, nebo může mít .doc, pokud jste přidružovali .doc soubory pomocí nástroje pro zpracování textu, jako je například Microsoft Word. Podobně jako dialogové okno Spustit dialogové okno může přijmout název spustitelného souboru s příponou .exe nebo bez přípony, je přípona .exe v členu FileName volitelná. Vlastnost můžete například nastavit FileName na "Notepad.exe" nebo "Poznámkový blok".

Aplikaci ClickOnce můžete spustit nastavením FileName vlastnosti na umístění (například webovou adresu), ze kterého jste aplikaci původně nainstalovali. Nespoutejte aplikaci ClickOnce zadáním jejího nainstalovaného umístění na pevném disku.

Pokud název souboru zahrnuje nevýkonný soubor, například .doc soubor, můžete přidat příkaz určující, jakou akci se souborem provést. Můžete například nastavit Verb tisk pro soubor končící příponou .doc. Název souboru zadaný ve FileName vlastnosti nemusí mít příponu, pokud hodnotu vlastnosti zadáte Verb ručně. Pokud však použijete Verbs vlastnost k určení, které příkazy jsou k dispozici, musíte zahrnout rozšíření.

Parametry zadané ve StartInfo vlastnosti můžete změnit až do doby, kdy voláte metodu Start v procesu. Po spuštění procesu změna StartInfo hodnot neovlivní ani nerestartuje přidružený proces. Pokud zavoláte metodu Start(ProcessStartInfo) s nastavenými vlastnostmi ProcessStartInfo.UserName a ProcessStartInfo.Password , zavolá se nespravovaná CreateProcessWithLogonW funkce, která spustí proces v novém okně i v případě, že CreateNoWindow hodnota vlastnosti je true nebo WindowStyle hodnota vlastnosti je Hidden.

K vlastnosti byste měli přistupovat StartInfo pouze u objektu vráceného Process metodou Start . Například byste neměli přistupovat k StartInfo vlastnosti objektu vráceného Process nástrojem GetProcesses. Jinak v .NET Core StartInfo vlastnost vyvolá hodnotu a InvalidOperationException v rozhraní .NET Framework vrátí fiktivní ProcessStartInfo objekt.

Po spuštění procesu je název souboru soubor, který naplní vlastnost (jen pro čtení). MainModule Pokud chcete po spuštění procesu načíst spustitelný soubor přidružený k procesu, použijte MainModule vlastnost . Pokud chcete nastavit spustitelný soubor Process instance, pro kterou nebyl spuštěn přidružený proces, použijte StartInfo člena FileName vlastnosti. Vzhledem k tomu, že členy StartInfo vlastnosti jsou argumenty, které jsou předány Start metodě procesu, změna FileName vlastnosti po spuštění přidruženého procesu neobnoví MainModule vlastnost. Tyto vlastnosti se používají pouze k inicializaci přidruženého procesu.

Platí pro

Viz také