Process.Start Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 userName
parameter , 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 userName
parameter , 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
.UserNametrue
startInfo
UseShellExecute
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
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.