Share via


Process.StartInfo Properti

Definisi

Mendapatkan atau mengatur properti untuk diteruskan ke Start() metode 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

Nilai Properti

ProcessStartInfo yang mewakili data untuk memulai proses. Argumen ini mencakup nama file atau dokumen yang dapat dieksekusi yang digunakan untuk memulai proses.

Atribut

Pengecualian

Nilai yang menentukan StartInfo adalah null.

Hanya .NET Core dan .NET 5+: Metode Start() ini tidak digunakan untuk memulai proses.

Contoh

Contoh berikut mengisi StartInfo dengan file untuk dijalankan, tindakan yang dilakukan di atasnya dan apakah itu harus menampilkan antarmuka pengguna. Untuk contoh tambahan, lihat halaman referensi untuk properti ProcessStartInfo kelas.

#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

Keterangan

StartInfo mewakili sekumpulan parameter yang akan digunakan untuk memulai proses. Ketika Start dipanggil, StartInfo digunakan untuk menentukan proses yang akan dimulai. Satu-satunya anggota yang diperlukan StartInfo untuk ditetapkan adalah FileName properti . Memulai proses dengan menentukan FileName properti mirip dengan mengetik informasi dalam kotak dialog Jalankan dari menu Mulai Windows. Oleh karena itu, FileName properti tidak perlu mewakili file yang dapat dieksekusi. Ini bisa dari jenis file apa pun yang ekstensinya telah dikaitkan dengan aplikasi yang diinstal pada sistem. Misalnya FileName dapat memiliki ekstensi .txt jika Anda memiliki file teks terkait dengan editor, seperti Notepad, atau dapat memiliki .doc jika Anda telah mengaitkan file .doc dengan alat pemrosesan kata, seperti Microsoft Word. Demikian pula, dengan cara yang sama seperti kotak dialog Jalankan dapat menerima nama file yang dapat dieksekusi dengan atau tanpa ekstensi .exe, ekstensi .exe bersifat opsional di FileName anggota. Misalnya, Anda dapat mengatur FileName properti ke "Notepad.exe" atau "Notepad".

Anda dapat memulai aplikasi ClickOnce dengan mengatur FileName properti ke lokasi (misalnya, alamat Web) tempat Anda awalnya menginstal aplikasi. Jangan memulai aplikasi ClickOnce dengan menentukan lokasi yang terinstal pada hard drive Anda.

Jika nama file melibatkan file yang tidak dapat dieksekusi, seperti file .doc, Anda dapat menyertakan kata kerja yang menentukan tindakan apa yang harus diambil pada file. Misalnya, Anda dapat mengatur ke Verb "Cetak" untuk file yang berakhiran ekstensi .doc. Nama file yang ditentukan dalam FileName properti tidak perlu memiliki ekstensi jika Anda memasukkan nilai Verb untuk properti secara manual. Namun, jika Anda menggunakan Verbs properti untuk menentukan kata kerja apa yang tersedia, Anda harus menyertakan ekstensi.

Anda dapat mengubah parameter yang ditentukan dalam StartInfo properti hingga waktu Anda memanggil Start metode pada proses. Setelah Anda memulai proses, mengubah StartInfo nilai tidak memengaruhi atau memulai ulang proses terkait. Jika Anda memanggil Start(ProcessStartInfo) metode dengan ProcessStartInfo.UserName properti dan ProcessStartInfo.Password diatur, fungsi yang tidak dikelola CreateProcessWithLogonW dipanggil, yang memulai proses di jendela baru bahkan jika CreateNoWindow nilai properti adalah true atau WindowStyle nilai properti adalah Hidden.

Anda hanya boleh mengakses StartInfo properti pada objek yang Process dikembalikan oleh Start metode . Misalnya, Anda tidak boleh mengakses StartInfo properti pada objek yang Process dikembalikan oleh GetProcesses. Jika tidak, pada .NET Core StartInfo properti akan melempar InvalidOperationException dan pada .NET Framework itu akan mengembalikan objek dummyProcessStartInfo.

Ketika proses dimulai, nama file adalah file yang mengisi properti (baca-saja MainModule ). Jika Anda ingin mengambil file yang dapat dieksekusi yang terkait dengan proses setelah proses dimulai, gunakan MainModule properti . Jika Anda ingin mengatur file yang dapat dieksekusi dari Process instans yang proses terkaitnya belum dimulai, gunakan StartInfo anggota properti FileName . Karena anggota StartInfo properti adalah argumen yang diteruskan ke Start metode proses, mengubah FileName properti setelah proses terkait dimulai tidak akan mengatur ulang MainModule properti. Properti ini hanya digunakan untuk menginisialisasi proses terkait.

Berlaku untuk

Lihat juga