Process.Start Metode

Definisi

Memulai sumber daya proses dan mengaitkannya dengan Process komponen.

Overload

Start(String, String, String, SecureString, String)

Memulai sumber daya proses dengan menentukan nama aplikasi, sekumpulan argumen baris perintah, nama pengguna, kata sandi, dan domain dan mengaitkan sumber daya dengan komponen baru Process .

Start(String, String, SecureString, String)

Memulai sumber daya proses dengan menentukan nama aplikasi, nama pengguna, kata sandi, dan domain dan mengaitkan sumber daya dengan komponen baru Process .

Start(String, String)

Memulai sumber daya proses dengan menentukan nama aplikasi dan sekumpulan argumen baris perintah, dan mengaitkan sumber daya dengan komponen baru Process .

Start(String)

Memulai sumber daya proses dengan menentukan nama file dokumen atau aplikasi dan mengaitkan sumber daya dengan komponen baru Process .

Start(ProcessStartInfo)

Memulai sumber daya proses yang ditentukan oleh parameter yang berisi informasi mulai proses (misalnya, nama file proses untuk memulai) dan mengaitkan sumber daya dengan komponen baru Process .

Start()

Memulai (atau menggunakan kembali) sumber daya proses yang ditentukan oleh StartInfo properti komponen ini Process dan mengaitkannya dengan komponen.

Start(String, IEnumerable<String>)

Memulai sumber daya proses dengan menentukan nama aplikasi dan sekumpulan argumen baris perintah.

Start(String, String, String, SecureString, String)

Sumber:
Process.Unix.cs
Sumber:
Process.Unix.cs
Sumber:
Process.Unix.cs

Penting

API ini bukan kompatibel CLS.

Memulai sumber daya proses dengan menentukan nama aplikasi, sekumpulan argumen baris perintah, nama pengguna, kata sandi, dan domain dan mengaitkan sumber daya dengan komponen baru Process .

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process

Parameter

fileName
String

Nama file aplikasi yang akan dijalankan dalam proses.

arguments
String

Argumen baris perintah untuk diteruskan saat memulai proses.

userName
String

Nama pengguna yang akan digunakan saat memulai proses.

password
SecureString

SecureString yang berisi kata sandi yang akan digunakan saat memulai proses.

domain
String

Domain yang digunakan saat memulai proses.

Mengembalikan

Process Baru yang terkait dengan sumber daya proses, atau null jika tidak ada sumber daya proses yang dimulai. Perhatikan bahwa proses baru yang dimulai bersama dengan instans yang sudah berjalan dari proses yang sama akan independen dari yang lain. Selain itu, Mulai dapat mengembalikan Proses non-null dengan propertinya HasExited yang sudah diatur ke true. Dalam hal ini, proses yang dimulai mungkin telah mengaktifkan instans yang ada dari dirinya sendiri dan kemudian keluar.

Atribut

Pengecualian

Tidak ada nama file yang ditentukan.

Terjadi kesalahan saat membuka file terkait.

-atau-

File yang ditentukan dalam fileName tidak dapat ditemukan.

-atau-

Jumlah panjang argumen dan panjang jalur lengkap ke file terkait melebihi 2080. Pesan kesalahan yang terkait dengan pengecualian ini dapat berupa salah satu hal berikut: "Area data yang diteruskan ke panggilan sistem terlalu kecil." atau "Akses ditolak."

Objek proses telah dibuang.

Anggota ini tidak didukung di Linux atau macOS (hanya.NET Core).

Keterangan

Gunakan kelebihan beban ini untuk membuat proses baru dan utas utamanya dengan menentukan nama file, argumen baris perintah, nama pengguna, kata sandi, dan domainnya. Proses baru kemudian menjalankan file yang dapat dieksekusi yang ditentukan dalam konteks keamanan kredensial yang ditentukan (pengguna, domain, dan kata sandi).

Penting

Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Catatan

Ketika file yang dapat dieksekusi terletak di drive jarak jauh, Anda harus mengidentifikasi berbagi jaringan dengan menggunakan pengidentifikasi sumber daya seragam (URI), bukan huruf drive tertaut.

Catatan

Jika alamat file yang dapat dieksekusi untuk memulai adalah URL, prosesnya tidak dimulai dan null dikembalikan.

Kelebihan beban ini memungkinkan Anda memulai proses tanpa terlebih dahulu membuat instans baru Process . Kelebihan beban adalah alternatif untuk langkah-langkah eksplisit dalam membuat instans baruProcess, mengatur FileNameproperti , , UserNameArguments, Password, dan Domain properti StartInfo properti , dan memanggil StartProcess instans.

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 dalam fileName parameter . Misalnya, Anda dapat mengatur fileName parameter ke "Notepad.exe" atau "Notepad". fileName Jika parameter mewakili file yang dapat dieksekusi, arguments parameter mungkin mewakili file yang akan ditindak, seperti file teks di Notepad.exe myfile.txt.

Catatan

Nama file harus mewakili file yang dapat dieksekusi dalam Start kelebihan beban yang memiliki userNameparameter , password, dan domain .

Setiap kali Anda menggunakan Start untuk memulai proses, Anda mungkin perlu menutupnya atau Anda berisiko kehilangan sumber daya sistem. Tutup proses menggunakan CloseMainWindow atau Kill. Anda dapat memeriksa apakah proses telah ditutup dengan menggunakan propertinya HasExited .

Berlaku untuk

Start(String, String, SecureString, String)

Sumber:
Process.Unix.cs
Sumber:
Process.Unix.cs
Sumber:
Process.Unix.cs

Penting

API ini bukan kompatibel CLS.

Memulai sumber daya proses dengan menentukan nama aplikasi, nama pengguna, kata sandi, dan domain dan mengaitkan sumber daya dengan komponen baru Process .

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, userName As String, password As SecureString, domain As String) As Process

Parameter

fileName
String

Nama file aplikasi yang akan dijalankan dalam proses.

userName
String

Nama pengguna yang akan digunakan saat memulai proses.

password
SecureString

SecureString yang berisi kata sandi yang akan digunakan saat memulai proses.

domain
String

Domain yang digunakan saat memulai proses.

Mengembalikan

Process Baru yang terkait dengan sumber daya proses, atau null jika tidak ada sumber daya proses yang dimulai. Perhatikan bahwa proses baru yang dimulai bersama dengan instans yang sudah berjalan dari proses yang sama akan independen dari yang lain. Selain itu, Mulai dapat mengembalikan Proses non-null dengan propertinya HasExited yang sudah diatur ke true. Dalam hal ini, proses yang dimulai mungkin telah mengaktifkan instans yang ada dari dirinya sendiri dan kemudian keluar.

Atribut

Pengecualian

Tidak ada nama file yang ditentukan.

Terjadi kesalahan saat membuka file terkait.

-atau-

File yang ditentukan dalam fileName tidak dapat ditemukan.

Objek proses telah dibuang.

Anggota ini tidak didukung di Linux atau macOS (hanya.NET Core).

Contoh

Contoh kode berikut menunjukkan penggunaan kelebihan beban ini untuk memulai file yang dapat dieksekusi dan juga menunjukkan pelemparan Win32Exception ketika upaya dilakukan untuk memulai aplikasi yang terkait dengan file yang tidak dapat dieksekusi.

// NOTE: This example requires a text.txt file file in your Documents folder
using System;
using System.Diagnostics;
using System.Security;
using System.ComponentModel;

class Example
{
    static void Main()
    {
        Console.Write("Enter your domain: ");
        string domain = Console.ReadLine();
        Console.Write("Enter you user name: ");
        string uname = Console.ReadLine();
        Console.Write("Enter your password: ");
        SecureString password = new SecureString();
        ConsoleKeyInfo key;
        do
        {
            key = Console.ReadKey(true);

            // Ignore any key out of range.
            if (((int)key.Key) >= 33 && ((int)key.Key <= 90) && key.Key != ConsoleKey.Enter)
            {
                // Append the character to the password.
                password.AppendChar(key.KeyChar);
                Console.Write("*");
            }
            // Exit if Enter key is pressed.
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();

        try
        {
            Console.WriteLine("\nTrying to launch NotePad using your login information...");
            Process.Start("notepad.exe", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\";

        try
        {
            // The following call to Start succeeds if test.txt exists.
            Console.WriteLine("\nTrying to launch 'text.txt'...");
            Process.Start(path + "text.txt");
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        try
        {
            // Attempting to start in a shell using this Start overload fails. This causes
            // the following exception, which is picked up in the catch block below:
            // The specified executable is not a valid application for this OS platform.
            Console.WriteLine("\nTrying to launch 'text.txt' with your login information...");
            Process.Start(path + "text.txt", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            password.Dispose();
        }
    }
}
' This sample requires a text.txt file file in your documents folder.
' You'll also need to set the startup object in the project to Sub Main.
Imports System.Diagnostics
Imports System.Security
Imports System.ComponentModel

Module Program
    Sub Main()
        Console.Write("Enter your domain: ")
        Dim domain As String = Console.ReadLine()
        Console.Write("Enter you user name: ")
        Dim uname As String = Console.ReadLine()
        Console.Write("Enter your password: ")
        Dim password As New SecureString()
        Dim key As ConsoleKeyInfo
        Do
            key = Console.ReadKey(True)

            ' Ignore any key out of range.
            If key.Key >= 33 AndAlso key.Key <= 90 AndAlso key.Key <> ConsoleKey.Enter Then
                ' Append the character to the password.
                password.AppendChar(key.KeyChar)
                Console.Write("*")
            End If
            ' Exit if Enter key is pressed.
        Loop While key.Key <> ConsoleKey.Enter
        Console.WriteLine()

        Try
            Console.WriteLine(vbCrLf + "Trying to launch NotePad using your login information...")
            Process.Start("notepad.exe", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\"

        Try
            ' The following call to Start succeeds if test.txt exists.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt'...")
            Process.Start(path + "Text.txt")
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Try
            ' Attempting to start in a shell using this Start overload fails. This causes
            ' the following exception, which is picked up in the catch block below:
            ' The specified executable is not a valid application for this OS platform.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt' with your login information...")
            Process.Start(path + "Text.txt", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        Finally
            password.Dispose()
        End Try
    End Sub
End Module

Keterangan

Gunakan kelebihan beban ini untuk membuat proses baru dan utas utamanya dengan menentukan nama file, nama pengguna, kata sandi, dan domainnya. Proses baru kemudian menjalankan file yang dapat dieksekusi yang ditentukan dalam konteks keamanan kredensial yang ditentukan (pengguna, domain, dan kata sandi).

Penting

Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Catatan

Ketika file yang dapat dieksekusi terletak di drive jarak jauh, Anda harus mengidentifikasi berbagi jaringan dengan menggunakan pengidentifikasi sumber daya seragam (URI), bukan huruf drive tertaut.

Catatan

Jika alamat file yang dapat dieksekusi untuk memulai adalah URL, prosesnya tidak dimulai dan null dikembalikan.

Kelebihan beban ini memungkinkan Anda memulai proses tanpa terlebih dahulu membuat instans baru Process . Kelebihan beban adalah alternatif untuk langkah-langkah eksplisit dalam membuat instans baru Process , mengatur FileNameproperti , UserName, Password, dan Domain properti StartInfo properti , dan memanggil StartProcess instans.

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 dalam fileName parameter . Misalnya, Anda dapat mengatur fileName parameter ke "Notepad.exe" atau "Notepad". fileName Jika parameter mewakili file yang dapat dieksekusi, arguments parameter mungkin mewakili file yang akan ditindak, seperti file teks di Notepad.exe myfile.txt.

Catatan

Nama file harus mewakili file yang dapat dieksekusi dalam Start kelebihan beban yang memiliki userNameparameter , password, dan domain .

Setiap kali Anda menggunakan Start untuk memulai proses, Anda mungkin perlu menutupnya atau Anda berisiko kehilangan sumber daya sistem. Tutup proses menggunakan CloseMainWindow atau Kill. Anda dapat memeriksa apakah proses telah ditutup dengan menggunakan propertinya HasExited .

Berlaku untuk

Start(String, String)

Sumber:
Process.cs
Sumber:
Process.cs
Sumber:
Process.cs

Memulai sumber daya proses dengan menentukan nama aplikasi dan sekumpulan argumen baris perintah, dan mengaitkan sumber daya dengan komponen baru Process .

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process

Parameter

fileName
String

Nama file aplikasi yang akan dijalankan dalam proses.

arguments
String

Argumen baris perintah untuk diteruskan saat memulai proses.

Mengembalikan

Process Baru yang terkait dengan sumber daya proses, atau null jika tidak ada sumber daya proses yang dimulai. Perhatikan bahwa proses baru yang dimulai bersama instans yang sudah berjalan dari proses yang sama akan independen dari yang lain. Selain itu, Mulai dapat mengembalikan Proses non-null dengan propertinya HasExited sudah diatur ke true. Dalam hal ini, proses yang dimulai mungkin telah mengaktifkan instans yang ada dari dirinya sendiri dan kemudian keluar.

Atribut

Pengecualian

Parameter fileName atau arguments adalah null.

Terjadi kesalahan saat membuka file terkait.

-atau-

File yang ditentukan dalam fileName tidak dapat ditemukan.

-atau-

Jumlah panjang argumen dan panjang jalur lengkap ke proses melebihi 2080. Pesan kesalahan yang terkait dengan pengecualian ini dapat berupa salah satu hal berikut: "Area data yang diteruskan ke panggilan sistem terlalu kecil." atau "Akses ditolak."

Objek proses telah dibuang.

Variabel lingkungan PATH memiliki string yang berisi tanda kutip.

Contoh

Contoh berikut pertama-tama menghasilkan instans Internet Explorer dan menampilkan konten folder Favorit di browser. Kemudian memulai beberapa contoh Internet Explorer lainnya dan menampilkan beberapa halaman atau situs tertentu. Akhirnya memulai Internet Explorer dengan jendela yang diminimalkan saat menavigasi ke situs tertentu.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Keterangan

Gunakan kelebihan beban ini untuk memulai sumber daya proses dengan menentukan nama file dan argumen baris perintahnya. Kelebihan beban mengaitkan sumber daya dengan objek baru Process .

Penting

Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Catatan

Jika alamat file yang dapat dieksekusi untuk memulai adalah URL, prosesnya tidak dimulai dan null dikembalikan.

Kelebihan beban ini memungkinkan Anda memulai proses tanpa terlebih dahulu membuat instans baru Process . Kelebihan beban adalah alternatif untuk langkah-langkah eksplisit membuat instans baru Process , mengatur FileNameArguments dan anggota StartInfo properti, dan memanggil StartProcess instans.

Memulai proses dengan menentukan nama file dan argumennya mirip dengan mengetik nama file dan argumen baris perintah dalam Run kotak dialog menu Windows Start . Oleh karena itu, nama file 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 nama file 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 Run sama seperti kotak dialog dapat menerima nama file yang dapat dieksekusi dengan atau tanpa ekstensi .exe, ekstensi .exe bersifat opsional dalam fileName parameter . Misalnya, Anda dapat mengatur fileName parameter ke "Notepad.exe" atau "Notepad". fileName Jika parameter mewakili file yang dapat dieksekusi, arguments parameter mungkin mewakili file yang akan ditindak, seperti file teks di Notepad.exe myfile.txt. fileName Jika parameter mewakili file arguments perintah (.cmd), parameter harus menyertakan argumen "/c" atau "/k" untuk menentukan apakah jendela perintah keluar atau tetap setelah selesai.

Tidak seperti kelebihan beban lainnya, kelebihan beban Start yang tidak memiliki parameter bukanlah static anggota. Gunakan kelebihan beban tersebut ketika Anda telah membuat Process instans dan informasi mulai yang ditentukan (termasuk nama file), dan Anda ingin memulai sumber daya proses dan mengaitkannya dengan instans yang ada Process . Gunakan salah static satu kelebihan beban saat Anda ingin membuat komponen baru Process daripada memulai proses untuk komponen yang ada. Kelebihan beban ini dan kelebihan beban yang tidak memiliki parameter memungkinkan Anda menentukan nama file sumber daya proses untuk memulai dan argumen baris perintah untuk diteruskan.

Jika Anda memiliki variabel jalur yang dideklarasikan dalam sistem Anda menggunakan tanda kutip, Anda harus sepenuhnya memenuhi syarat jalur tersebut saat memulai proses apa pun yang ditemukan di lokasi tersebut. Jika tidak, sistem tidak akan menemukan jalur. Misalnya, jika c:\mypath tidak berada di jalur Anda, dan Anda menambahkannya menggunakan tanda kutip: path = %path%;"c:\mypath", Anda harus sepenuhnya memenuhi syarat proses c:\mypath apa pun saat memulainya.

Catatan

ASP.NET Halaman web dan kode kontrol server dijalankan dalam konteks proses pekerja ASP.NET di server Web. Jika Anda menggunakan Start metode dalam halaman Web ASP.NET atau kontrol server, proses baru dijalankan di server Web dengan izin terbatas. Proses tidak dimulai dalam konteks yang sama dengan browser klien, dan tidak memiliki akses ke desktop pengguna.

Setiap kali Anda menggunakan Start untuk memulai proses, Anda mungkin perlu menutupnya atau Anda berisiko kehilangan sumber daya sistem. Tutup proses menggunakan CloseMainWindow atau Kill. Anda dapat memeriksa apakah proses telah ditutup dengan menggunakan propertinya HasExited .

Catatan tentang status apartemen di utas terkelola diperlukan di sini. Ketika UseShellExecute berada true di properti komponen StartInfo proses, pastikan Anda telah mengatur model utas pada aplikasi Anda dengan mengatur atribut [STAThread] pada main() metode . Jika tidak, utas terkelola dapat berada dalam status unknown atau dimasukkan ke MTA dalam status , yang terakhir bertentangan dengan UseShellExecute menjadi true. Beberapa metode mengharuskan status apartemen bukan unknown. Jika status tidak diatur secara eksplisit, ketika aplikasi menemukan metode seperti itu, ia default ke MTA, dan setelah ditetapkan, status apartemen tidak dapat diubah. Namun, MTA menyebabkan pengecualian dilemparkan ketika shell sistem operasi mengelola utas.

Lihat juga

Berlaku untuk

Start(String)

Sumber:
Process.cs
Sumber:
Process.cs
Sumber:
Process.cs

Memulai sumber daya proses dengan menentukan nama file dokumen atau aplikasi dan mengaitkan sumber daya dengan komponen baru Process .

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Parameter

fileName
String

Nama file dokumen atau aplikasi yang akan dijalankan dalam proses.

Mengembalikan

Process Baru yang terkait dengan sumber daya proses, atau null jika tidak ada sumber daya proses yang dimulai. Perhatikan bahwa proses baru yang dimulai bersama dengan instans yang sudah berjalan dari proses yang sama akan independen dari yang lain. Selain itu, Mulai dapat mengembalikan Proses non-null dengan propertinya HasExited yang sudah diatur ke true. Dalam hal ini, proses yang dimulai mungkin telah mengaktifkan instans yang ada dari dirinya sendiri dan kemudian keluar.

Atribut

Pengecualian

Terjadi kesalahan saat membuka file terkait.

-atau-

File yang ditentukan dalam fileName tidak dapat ditemukan.

Objek proses telah dibuang.

Variabel lingkungan PATH memiliki string yang berisi tanda kutip.

Contoh

Contoh berikut pertama kali menelurkan instans Internet Explorer dan menampilkan konten folder Favorit di browser. Kemudian memulai beberapa contoh Internet Explorer lainnya dan menampilkan beberapa halaman atau situs tertentu. Akhirnya memulai Internet Explorer dengan jendela yang diminimalkan saat menavigasi ke situs tertentu.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Keterangan

Gunakan kelebihan beban ini untuk memulai sumber daya proses dengan menentukan nama filenya. Kelebihan beban mengaitkan sumber daya dengan objek baru Process .

Penting

Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Catatan

Jika alamat file yang dapat dieksekusi untuk memulai adalah URL, prosesnya tidak dimulai dan null dikembalikan.

Kelebihan beban ini memungkinkan Anda memulai proses tanpa terlebih dahulu membuat instans baru Process . Kelebihan beban adalah alternatif untuk langkah-langkah eksplisit membuat instans baru Process , mengatur FileName anggota StartInfo properti, dan memanggil StartProcess instans.

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

Memulai proses dengan menentukan nama filenya mirip dengan mengetik informasi dalam Run kotak dialog menu Windows Start . Oleh karena itu, nama file 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 nama file 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 Run sama seperti kotak dialog dapat menerima nama file yang dapat dieksekusi dengan atau tanpa ekstensi .exe, ekstensi .exe bersifat opsional dalam fileName parameter . Misalnya, Anda dapat mengatur fileName parameter ke "Notepad.exe" atau "Notepad".

Kelebihan beban ini tidak memungkinkan argumen baris perintah untuk proses tersebut. Jika Anda perlu menentukan satu atau beberapa argumen baris perintah untuk proses tersebut, gunakan Process.Start(ProcessStartInfo) atau Process.Start(String, String) kelebihan beban.

Tidak seperti kelebihan beban lainnya, kelebihan beban Start yang tidak memiliki parameter bukanlah static anggota. Gunakan kelebihan beban tersebut ketika Anda telah membuat Process instans dan informasi mulai yang ditentukan (termasuk nama file), dan Anda ingin memulai sumber daya proses dan mengaitkannya dengan instans yang ada Process . Gunakan salah static satu kelebihan beban saat Anda ingin membuat komponen baru Process daripada memulai proses untuk komponen yang ada. Kelebihan beban ini dan kelebihan beban yang tidak memiliki parameter memungkinkan Anda menentukan nama file sumber daya proses untuk memulai.

Jika Anda memiliki variabel jalur yang dideklarasikan dalam sistem Anda menggunakan tanda kutip, Anda harus sepenuhnya memenuhi syarat jalur tersebut saat memulai proses apa pun yang ditemukan di lokasi tersebut. Jika tidak, sistem tidak akan menemukan jalur. Misalnya, jika c:\mypath tidak berada di jalur Anda, dan Anda menambahkannya menggunakan tanda kutip: path = %path%;"c:\mypath", Anda harus sepenuhnya memenuhi syarat proses c:\mypath apa pun saat memulainya.

Catatan

ASP.NET Halaman web dan kode kontrol server dijalankan dalam konteks proses pekerja ASP.NET di server Web. Jika Anda menggunakan Start metode dalam halaman Web ASP.NET atau kontrol server, proses baru dijalankan di server Web dengan izin terbatas. Proses tidak dimulai dalam konteks yang sama dengan browser klien, dan tidak memiliki akses ke desktop pengguna.

Setiap kali Anda menggunakan Start untuk memulai proses, Anda mungkin perlu menutupnya atau Anda berisiko kehilangan sumber daya sistem. Tutup proses menggunakan CloseMainWindow atau Kill. Anda dapat memeriksa apakah proses telah ditutup dengan menggunakan propertinya HasExited .

Catatan tentang status apartemen di utas terkelola diperlukan di sini. Ketika UseShellExecute berada true di properti komponen StartInfo proses, pastikan Anda telah mengatur model utas pada aplikasi Anda dengan mengatur atribut [STAThread] pada main() metode . Jika tidak, utas terkelola dapat berada dalam status unknown atau dimasukkan ke MTA dalam status , yang terakhir bertentangan dengan UseShellExecute menjadi true. Beberapa metode mengharuskan status apartemen tidak .unknown Jika status tidak diatur secara eksplisit, ketika aplikasi menemukan metode seperti itu, ia default ke MTA, dan setelah ditetapkan, status apartemen tidak dapat diubah. Namun, MTA menyebabkan pengecualian dilemparkan ketika shell sistem operasi mengelola utas.

Lihat juga

Berlaku untuk

Start(ProcessStartInfo)

Sumber:
Process.cs
Sumber:
Process.cs
Sumber:
Process.cs

Memulai sumber daya proses yang ditentukan oleh parameter yang berisi informasi mulai proses (misalnya, nama file proses untuk memulai) dan mengaitkan sumber daya dengan komponen baru Process .

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process Start (System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process

Parameter

startInfo
ProcessStartInfo

ProcessStartInfo yang berisi informasi yang digunakan untuk memulai proses, termasuk nama file dan argumen baris perintah apa pun.

Mengembalikan

Process Baru yang terkait dengan sumber daya proses, atau null jika tidak ada sumber daya proses yang dimulai. Perhatikan bahwa proses baru yang dimulai bersama dengan instans yang sudah berjalan dari proses yang sama akan independen dari yang lain. Selain itu, Mulai dapat mengembalikan Proses non-null dengan propertinya HasExited yang sudah diatur ke true. Dalam hal ini, proses yang dimulai mungkin telah mengaktifkan instans yang ada dari dirinya sendiri dan kemudian keluar.

Atribut

Pengecualian

Tidak ada nama file yang ditentukan dalam startInfo properti parameter FileName .

-atau-

Properti UseShellExecute parameter startInfo adalah true dan RedirectStandardInputproperti , RedirectStandardOutput, atau RedirectStandardError juga true.

-atau-

Properti parameter adalah dan properti tidak null atau kosong atau Password properti bukan null.UserNametruestartInfoUseShellExecute

Parameternya startInfo adalah null.

Objek proses telah dibuang.

Terjadi kesalahan saat membuka file terkait.

-atau-

File yang ditentukan dalam startInfo properti parameter FileName tidak dapat ditemukan.

-atau-

Jumlah panjang argumen dan panjang jalur lengkap ke proses melebihi 2080. Pesan kesalahan yang terkait dengan pengecualian ini dapat berupa salah satu hal berikut: "Area data yang diteruskan ke panggilan sistem terlalu kecil." atau "Akses ditolak."

Metode tidak didukung pada sistem operasi tanpa dukungan shell seperti Nano Server (hanya.NET Core).

Contoh

Contoh berikut pertama-tama menghasilkan instans Internet Explorer dan menampilkan konten folder Favorit di browser. Kemudian memulai beberapa contoh Internet Explorer lainnya dan menampilkan beberapa halaman atau situs tertentu. Akhirnya memulai Internet Explorer dengan jendela yang diminimalkan saat menavigasi ke situs tertentu.

Untuk contoh tambahan penggunaan lain dari metode ini, lihat properti individual kelas ProcessStartInfo .

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Keterangan

Gunakan kelebihan beban ini untuk memulai sumber daya proses dengan menentukan ProcessStartInfo instans. Kelebihan beban mengaitkan sumber daya dengan objek baru Process .

Penting

Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Catatan

Jika alamat file yang dapat dieksekusi untuk memulai adalah URL, prosesnya tidak dimulai dan null dikembalikan.

Kelebihan beban ini memungkinkan Anda memulai proses tanpa terlebih dahulu membuat instans baru Process . Menggunakan kelebihan beban ini dengan ProcessStartInfo parameter adalah alternatif untuk langkah-langkah eksplisit dalam membuat instans baru Process , mengatur propertinya StartInfo , dan memanggil StartProcess instans.

ProcessStartInfo Menggunakan instans sebagai parameter memungkinkan Anda memanggil Start dengan kontrol paling besar atas apa yang diteruskan ke panggilan untuk memulai proses. Jika Anda hanya perlu meneruskan nama file atau nama file dan argumen, tidak perlu membuat instans baru ProcessStartInfo , meskipun itu adalah opsi. Satu-satunya Process.StartInfo properti yang harus diatur adalah FileName properti . Properti FileName 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 properti dapat memiliki ekstensi .txt jika Anda memiliki file teks terkait dengan editor, seperti Notepad, atau dapat memiliki ekstensi .doc jika Anda telah mengaitkan file .doc dengan alat pemrosesan kata, seperti Microsoft Word.

Anda dapat memulai aplikasi ClickOnce dengan menentukan lokasi (misalnya, alamat Web) tempat Anda awalnya menginstal aplikasi. Jangan memulai aplikasi ClickOnce dengan menentukan lokasi yang diinstal pada hard drive Anda.

ProcessStartInfo.UserName Jika properti StartInfo dan ProcessStartInfo.Password instans diatur, fungsi tidak terkelola CreateProcessWithLogonW dipanggil, yang memulai proses di jendela baru bahkan jika ProcessStartInfo.CreateNoWindow nilai properti adalah true atau ProcessStartInfo.WindowStyle nilai properti adalah ProcessWindowStyle.Hidden. ProcessStartInfo.Domain Jika properti adalah null, ProcessStartInfo.UserName properti harus dalam format UPN, pengguna@DNS_domain_name.

Tidak seperti kelebihan beban lainnya, kelebihan beban Start yang tidak memiliki parameter bukanlah static anggota. Gunakan kelebihan beban tersebut ketika Anda telah membuat Process instans dan informasi mulai yang ditentukan (termasuk nama file), dan Anda ingin memulai sumber daya proses dan mengaitkannya dengan instans yang ada Process . Gunakan salah static satu kelebihan beban saat Anda ingin membuat komponen baru Process daripada memulai proses untuk komponen yang ada. Kelebihan beban ini dan kelebihan beban yang tidak memiliki parameter memungkinkan Anda menentukan informasi mulai untuk sumber daya proses dengan menggunakan ProcessStartInfo instans.

Jika Anda memiliki variabel jalur yang dideklarasikan dalam sistem Anda menggunakan tanda kutip, Anda harus sepenuhnya memenuhi syarat jalur tersebut saat memulai proses apa pun yang ditemukan di lokasi tersebut. Jika tidak, sistem tidak akan menemukan jalur. Misalnya, jika c:\mypath tidak berada di jalur Anda, dan Anda menambahkannya menggunakan tanda kutip: path = %path%;"c:\mypath", Anda harus sepenuhnya memenuhi syarat proses c:\mypath apa pun saat memulainya.

Catatan

ASP.NET Halaman web dan kode kontrol server dijalankan dalam konteks proses pekerja ASP.NET di server Web. Jika Anda menggunakan Start metode dalam halaman Web ASP.NET atau kontrol server, proses baru dijalankan di server Web dengan izin terbatas. Proses ini tidak dimulai dalam konteks yang sama dengan browser klien, dan tidak memiliki akses ke desktop pengguna.

Setiap kali Anda menggunakan Start untuk memulai proses, Anda mungkin perlu menutupnya atau Anda berisiko kehilangan sumber daya sistem. Tutup proses menggunakan CloseMainWindow atau Kill. Anda dapat memeriksa apakah proses telah ditutup dengan menggunakan propertinya HasExited .

Catatan tentang status apartemen dalam utas terkelola diperlukan di sini. Saat UseShellExecute berada true di startInfo parameter , pastikan Anda telah mengatur model utas pada aplikasi Anda dengan mengatur atribut [STAThread] pada main() metode . Jika tidak, utas terkelola dapat berada dalam status unknown atau dimasukkan ke MTA dalam status , yang terakhir bertentangan dengan UseShellExecute menjadi true. Beberapa metode mengharuskan status apartemen tidak .unknown Jika status tidak diatur secara eksplisit, ketika aplikasi menemukan metode seperti itu, ia default ke MTA, dan setelah ditetapkan, status apartemen tidak dapat diubah. Namun, MTA menyebabkan pengecualian dilemparkan ketika shell sistem operasi mengelola utas.

Lihat juga

Berlaku untuk

Start()

Sumber:
Process.cs
Sumber:
Process.cs
Sumber:
Process.cs

Memulai (atau menggunakan kembali) sumber daya proses yang ditentukan oleh StartInfo properti komponen ini Process dan mengaitkannya dengan komponen.

public:
 bool Start();
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public bool Start ();
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Start : unit -> bool
Public Function Start () As Boolean

Mengembalikan

true jika sumber daya proses dimulai; false jika tidak ada sumber daya proses baru yang dimulai (misalnya, jika proses yang ada digunakan kembali).

Atribut

Pengecualian

Tidak ada nama file yang ditentukan dalam Process komponen StartInfo.

-atau-

Anggota UseShellExecuteStartInfo properti adalah true sementara RedirectStandardInput, RedirectStandardOutput, atau RedirectStandardError adalah true.

Terjadi kesalahan saat membuka file terkait.

Objek proses telah dibuang.

Metode tidak didukung pada sistem operasi tanpa dukungan shell seperti Nano Server (hanya.NET Core).

Contoh

Contoh berikut menggunakan instans Process kelas untuk memulai proses.

#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

Gunakan kelebihan beban ini untuk memulai sumber daya proses dan mengaitkannya dengan komponen saat ini Process . Nilai true yang dikembalikan menunjukkan bahwa sumber daya proses baru dimulai. Jika sumber daya proses yang ditentukan oleh FileName anggota StartInfo properti sudah berjalan di komputer, tidak ada sumber daya proses tambahan yang dimulai. Sebagai gantinya, sumber daya proses yang sedang berjalan digunakan kembali dan false dikembalikan.

Anda dapat memulai aplikasi ClickOnce dengan menentukan lokasi (misalnya, alamat Web) tempat Anda awalnya menginstal aplikasi. Jangan memulai aplikasi ClickOnce dengan menentukan lokasi yang diinstal pada hard drive Anda.

Penting

Menggunakan instans objek ini dengan data yang tidak tepercaya adalah risiko keamanan. Gunakan objek ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Catatan

Jika Anda menggunakan Visual Studio, kelebihan beban Start metode ini adalah metode yang Anda sisipkan ke dalam kode setelah Anda menyeret Process komponen ke perancang. Gunakan jendela Properties untuk memperluas StartInfo kategori dan menulis nilai yang sesuai ke FileName dalam properti . Perubahan Anda akan muncul dalam prosedur formulir InitializeComponent .

Kelebihan beban Start ini bukan static metode. Anda harus memanggilnya dari instans Process kelas . Sebelum memanggil Start, Anda harus terlebih dahulu menentukan StartInfo informasi properti untuk instans ini Process , karena informasi tersebut digunakan untuk menentukan sumber daya proses yang akan dimulai.

Kelebihan metode lainnya Start adalah static anggota. Anda tidak perlu membuat instans Process komponen sebelum memanggil kelebihan beban metode tersebut. Sebagai gantinya, Anda dapat memanggil Start kelas itu Process sendiri, dan komponen baru Process dibuat jika proses dimulai. Atau, null dikembalikan jika proses digunakan kembali. Sumber daya proses secara otomatis dikaitkan dengan komponen baru Process yang dikembalikan oleh Start metode .

Anggota StartInfo dapat digunakan untuk menduplikasi fungsionalitas Run kotak dialog menu Windows Start . Apa pun yang dapat ditik ke dalam baris perintah dapat dimulai dengan mengatur nilai yang sesuai dalam StartInfo properti . Satu-satunya StartInfo properti yang harus diatur adalah FileName properti . Properti FileName tidak harus berupa file yang dapat dieksekusi. Ini bisa dari jenis file apa pun yang ekstensinya telah dikaitkan dengan aplikasi yang diinstal pada sistem. Misalnya, FileName properti dapat memiliki ekstensi .txt jika Anda memiliki file teks terkait dengan editor, seperti Notepad, atau dapat memiliki ekstensi .doc jika Anda telah mengaitkan file .doc dengan alat pemrosesan kata, seperti Microsoft Word.

Di baris perintah, Anda dapat menentukan tindakan yang akan diambil untuk jenis file tertentu. Misalnya, Anda dapat mencetak dokumen atau mengedit file teks. Tentukan tindakan ini menggunakan Verb anggota StartInfo properti . Untuk jenis file lain, Anda dapat menentukan argumen baris perintah saat memulai file dari kotak Run dialog. Misalnya, Anda dapat meneruskan URL sebagai argumen jika Anda menentukan browser Anda sebagai FileName. Argumen ini dapat ditentukan dalam StartInfo anggota properti Arguments .

Jika Anda memiliki variabel jalur yang dideklarasikan dalam sistem Anda menggunakan tanda kutip, Anda harus sepenuhnya memenuhi syarat jalur tersebut saat memulai proses apa pun yang ditemukan di lokasi tersebut. Jika tidak, sistem tidak akan menemukan jalur. Misalnya, jika c:\mypath tidak berada di jalur Anda, dan Anda menambahkannya menggunakan tanda kutip: path = %path%;"c:\mypath", Anda harus sepenuhnya memenuhi syarat proses c:\mypath apa pun saat memulainya.

Catatan

ASP.NET Halaman web dan kode kontrol server dijalankan dalam konteks proses pekerja ASP.NET di server Web. Jika Anda menggunakan Start metode dalam halaman Web ASP.NET atau kontrol server, proses baru dijalankan di server Web dengan izin terbatas. Proses tidak dimulai dalam konteks yang sama dengan browser klien, dan tidak memiliki akses ke desktop pengguna.

Setiap kali Anda menggunakan Start untuk memulai proses, Anda mungkin perlu menutupnya atau Anda berisiko kehilangan sumber daya sistem. Tutup proses menggunakan CloseMainWindow atau Kill. Anda dapat memeriksa apakah proses telah ditutup dengan menggunakan propertinya HasExited .

Catatan tentang status apartemen di utas terkelola diperlukan di sini. Ketika UseShellExecute berada true di properti komponen StartInfo proses, pastikan Anda telah mengatur model utas pada aplikasi Anda dengan mengatur atribut [STAThread] pada main() metode . Jika tidak, utas terkelola dapat berada dalam status unknown atau dimasukkan ke MTA dalam status , yang terakhir bertentangan dengan UseShellExecute menjadi true. Beberapa metode mengharuskan status apartemen bukan unknown. Jika status tidak diatur secara eksplisit, ketika aplikasi menemukan metode seperti itu, ia default ke MTA, dan setelah ditetapkan, status apartemen tidak dapat diubah. Namun, MTA menyebabkan pengecualian dilemparkan ketika shell sistem operasi mengelola utas.

Lihat juga

Berlaku untuk

Start(String, IEnumerable<String>)

Sumber:
Process.cs
Sumber:
Process.cs
Sumber:
Process.cs

Memulai sumber daya proses dengan menentukan nama aplikasi dan sekumpulan argumen baris perintah.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process

Parameter

fileName
String

Nama file dokumen atau aplikasi yang akan dijalankan dalam proses.

arguments
IEnumerable<String>

Argumen baris perintah yang akan diteruskan saat memulai proses.

Mengembalikan

Process Baru yang terkait dengan sumber daya proses, atau null jika tidak ada sumber daya proses yang dimulai.

Atribut

Keterangan

Setiap argumen akan lolos secara otomatis jika diperlukan.

Penting

Memanggil metode ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Berlaku untuk