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

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

Atributy

Výjimky

Hodnota určující StartInfo hodnotu 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í provedenou na ní a tím, jestli 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 Proto vlastnost nemusí představovat spustitelný soubor. Může být libovolného typu souboru, pro který je přípona přidružena k aplikaci nainstalované v systému. FileName Například může mít příponu .txt, pokud jste přidružovali textové soubory k editoru, jako je Poznámkový blok, nebo může mít .doc, pokud jste .doc soubory přidružovali k nástroji pro zpracování textu, jako je například Microsoft Word. Podobně jako dialogové okno Spustit 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 umístění nainstalovaného na pevném disku.

Pokud název souboru zahrnuje nevýkonný soubor, například soubor .doc, můžete zahrnout sloveso určující, jakou akci se souborem provést. U souboru končícího příponou Verb .doc můžete například nastavit možnost Tisk. Název souboru zadaný ve FileName vlastnosti nemusí mít příponu, pokud ručně zadáte hodnotu vlastnosti Verb . Pokud ale použijete Verbs vlastnost k určení, jaké 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.

Měli byste přistupovat pouze k StartInfo vlastnosti objektu Process vráceného metodou Start . Například byste neměli přistupovat k StartInfo vlastnosti objektu vráceného Process nástrojem GetProcesses. V opačném případě v .NET Core StartInfo vlastnost vyvolá 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 načíst spustitelný soubor, který je přidružený k procesu po zahájení 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 člen vlastnosti FileName . 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 nebude resetovat MainModule vlastnost. Tyto vlastnosti slouží pouze k inicializaci přidruženého procesu.

Platí pro

Viz také