Udostępnij za pośrednictwem


Process.StartInfo Właściwość

Definicja

Pobiera lub ustawia właściwości, które mają być przekazywane do Start() metody .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

Wartość właściwości

Reprezentuje ProcessStartInfo dane, za pomocą których należy rozpocząć proces. Te argumenty obejmują nazwę pliku wykonywalnego lub dokumentu użytego do uruchomienia procesu.

Atrybuty

Wyjątki

Wartość określająca wartość StartInfo to null.

Tylko platformy .NET Core i .NET 5+: metoda nie została użyta Start() do uruchomienia procesu.

Przykłady

Poniższy przykład wypełnia StartInfo obiekt plikiem do wykonania, wykonaną na nim akcję i informację o tym, czy powinien wyświetlać interfejs użytkownika. Aby zapoznać się z dodatkowymi przykładami, zapoznaj się ze stronami referencyjnymi dotyczącymi właściwości ProcessStartInfo klasy.

#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

Uwagi

StartInfo reprezentuje zestaw parametrów, które mają być używane do uruchomienia procesu. Gdy Start element jest wywoływany StartInfo , element służy do określania procesu do uruchomienia. Jedynym elementem niezbędnym StartInfo do ustawienia jest FileName właściwość . Uruchomienie procesu przez określenie FileName właściwości jest podobne do wpisywania informacji w oknie dialogowym Uruchamianie menu Start systemu Windows. W związku z FileName tym właściwość nie musi reprezentować pliku wykonywalnego. Może to być dowolny typ pliku, dla którego rozszerzenie zostało skojarzone z aplikacją zainstalowaną w systemie. Na przykład FileName może mieć rozszerzenie .txt, jeśli masz skojarzone pliki tekstowe z edytorem, takim jak Notatnik, lub może mieć .doc, jeśli masz skojarzone pliki .doc z narzędziem do przetwarzania wyrazów, takim jak Microsoft Word. Podobnie, w taki sam sposób, w jaki okno dialogowe Uruchamianie może akceptować nazwę pliku wykonywalnego z rozszerzeniem .exe lub bez tego rozszerzenia, rozszerzenie .exe jest opcjonalne w elemencie FileName członkowskim. Można na przykład ustawić FileName właściwość na "Notepad.exe" lub "Notatnik".

Aplikację ClickOnce można uruchomić, ustawiając FileName właściwość na lokalizację (na przykład adres internetowy), z której pierwotnie zainstalowano aplikację. Nie uruchamiaj aplikacji ClickOnce, określając jej zainstalowaną lokalizację na dysku twardym.

Jeśli nazwa pliku obejmuje plik nonexecutable, taki jak plik .doc, można dołączyć czasownik określający, jaką akcję podjąć w pliku. Można na przykład ustawić Verb wartość "Drukuj" dla pliku kończącego się rozszerzeniem .doc. Nazwa pliku określona we FileName właściwości nie musi mieć rozszerzenia, jeśli ręcznie wprowadzisz wartość właściwości Verb . Jeśli jednak używasz Verbs właściwości do określenia, jakie czasowniki są dostępne, musisz dołączyć rozszerzenie.

Parametry określone we StartInfo właściwości można zmienić do czasu wywoływania Start metody w procesie. Po rozpoczęciu procesu zmiana StartInfo wartości nie wpływa ani nie powoduje ponownego uruchomienia skojarzonego procesu. W przypadku wywołania Start(ProcessStartInfo) metody z ustawionymi właściwościami ProcessStartInfo.UserName i ProcessStartInfo.Password wywoływana jest funkcja niezarządzana CreateProcessWithLogonW , która uruchamia proces w nowym oknie, nawet jeśli CreateNoWindow wartość właściwości to true lub WindowStyle wartość właściwości to Hidden.

Dostęp do właściwości należy uzyskać StartInfo tylko dla obiektu zwróconego Process przez metodę Start . Na przykład nie należy uzyskiwać dostępu do StartInfo właściwości obiektu zwróconego Process przez GetProcessespolecenie . W przeciwnym razie na platformie .NET Core StartInfo właściwość zgłosi InvalidOperationException obiekt i na .NET Framework zwróci fikcyjny ProcessStartInfo obiekt.

Po rozpoczęciu procesu nazwa pliku to plik, który wypełnia właściwość (tylko do odczytu). MainModule Jeśli chcesz pobrać plik wykonywalny skojarzony z procesem po rozpoczęciu procesu, użyj MainModule właściwości . Jeśli chcesz ustawić plik Process wykonywalny wystąpienia, dla którego skojarzony proces nie został uruchomiony, użyj StartInfo elementu członkowskiego właściwości FileName . Ponieważ elementy członkowskie StartInfo właściwości są argumentami przekazywanymi do Start metody procesu, zmiana FileName właściwości po rozpoczęciu skojarzonego procesu nie spowoduje zresetowania MainModule właściwości. Te właściwości są używane tylko do inicjowania skojarzonego procesu.

Dotyczy

Zobacz też