Process.StartInfo Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.