Process.Start Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir işlem kaynağı başlatır ve bunu bir Process bileşenle ilişkilendirir.
Aşırı Yüklemeler
Start(String, String, String, SecureString, String) |
Bir uygulamanın adını, bir dizi komut satırı bağımsız değişkenini, kullanıcı adını, parolayı ve etki alanını belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir. |
Start(String, String, SecureString, String) |
Bir uygulamanın adını, kullanıcı adını, parolayı ve etki alanını belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir. |
Start(String, String) |
Bir uygulamanın adını ve bir dizi komut satırı bağımsız değişkenini belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir. |
Start(String) |
Belge veya uygulama dosyasının adını belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir. |
Start(ProcessStartInfo) |
İşlem başlatma bilgilerini içeren parametresi tarafından belirtilen işlem kaynağını başlatır (örneğin, başlatacak işlemin dosya adı) ve kaynağı yeni Process bir bileşenle ilişkilendirir. |
Start() |
Bu Process bileşenin özelliği tarafından StartInfo belirtilen işlem kaynağını başlatır (veya yeniden kullanabilir) ve bileşenle ilişkilendirir. |
Start(String, IEnumerable<String>) |
Bir uygulamanın adını ve bir dizi komut satırı bağımsız değişkenini belirterek bir işlem kaynağı başlatır. |
Start(String, String, String, SecureString, String)
- Kaynak:
- Process.Unix.cs
- Kaynak:
- Process.Unix.cs
- Kaynak:
- Process.Unix.cs
Önemli
Bu API, CLS uyumlu değildir.
Bir uygulamanın adını, bir dizi komut satırı bağımsız değişkenini, kullanıcı adını, parolayı ve etki alanını belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir.
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
Parametreler
- fileName
- String
İşlemde çalıştırılacak bir uygulama dosyasının adı.
- arguments
- String
İşlemi başlatma sırasında geçirilecek komut satırı bağımsız değişkenleri.
- userName
- String
İşlemi başlatırken kullanılacak kullanıcı adı.
- password
- SecureString
SecureString İşlemi başlatırken kullanılacak parolayı içeren bir.
- domain
- String
İşlemi başlatırken kullanılacak etki alanı.
Döndürülenler
Process İşlem kaynağıyla ilişkili yeni bir kaynak veya null
hiçbir işlem kaynağı başlatılmadıysa. Aynı işlemin zaten çalışan örnekleriyle birlikte başlatılan yeni bir işlemin diğerlerinden bağımsız olacağını unutmayın. Ayrıca, Start özelliği zaten olarak ayarlanmış true
null olmayan bir İşlem HasExited döndürebilir. Bu durumda, başlatılan işlem kendi mevcut bir örneğini etkinleştirmiş ve ardından çıkılmış olabilir.
- Öznitelikler
Özel durumlar
Hiçbir dosya adı belirtilmedi.
İlişkili dosya açılırken bir hata oluştu.
-veya-
içinde fileName
belirtilen dosya bulunamadı.
-veya-
Bağımsız değişkenlerin uzunluğu ve ilişkili dosyanın tam yolunun uzunluğu 2080'i aşıyor. Bu özel durumla ilişkili hata iletisi aşağıdakilerden biri olabilir: "Sistem çağrısına geçirilen veri alanı çok küçük." veya "Erişim reddedildi."
İşlem nesnesi zaten atılmış.
Bu üye Linux veya macOS'ta desteklenmez (yalnızca.NET Core).
Açıklamalar
Dosya adını, komut satırı bağımsız değişkenlerini, kullanıcı adını, parolasını ve etki alanını belirterek yeni bir işlem ve birincil iş parçacığı oluşturmak için bu aşırı yüklemeyi kullanın. Yeni işlem daha sonra belirtilen yürütülebilir dosyayı belirtilen kimlik bilgilerinin (kullanıcı, etki alanı ve parola) güvenlik bağlamında çalıştırır.
Önemli
Bu yöntemin güvenilmeyen verilerle çağrılması bir güvenlik riskidir. Bu yöntemi yalnızca güvenilir verilerle çağır. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Not
Yürütülebilir dosya bir uzak sürücüde bulunduğunda, bağlı sürücü harfini değil, tekdüzen kaynak tanımlayıcısını (URI) kullanarak ağ paylaşımını tanımlamanız gerekir.
Not
Başlatacak yürütülebilir dosyanın adresi bir URL ise, işlem başlatılmaz ve null
döndürülür.
Bu aşırı yükleme, önce yeni Process bir örnek oluşturmadan bir işlem başlatmanıza olanak tanır. Aşırı yükleme, yeni Process bir örnek oluşturma, özelliğin , , UserNameArguments, Passwordve özelliklerini StartInfo ayarlamanın FileNameve Domain örneği çağırmanın Start açık adımlarına Process bir alternatiftir.
Benzer şekilde, Çalıştır iletişim kutusunun .exe uzantısıyla veya uzantı olmadan yürütülebilir dosya adını kabul edebilmesi gibi, .exe uzantısı parametresinde fileName
isteğe bağlıdır. Örneğin, parametresini fileName
"Notepad.exe" veya "Not Defteri" olarak ayarlayabilirsiniz. fileName
parametresi yürütülebilir bir dosyayı temsil ederse, arguments
parametresi işlem yapmak için bir dosyayı temsil edebilir, örneğin içindeki Notepad.exe myfile.txt
metin dosyası.
Not
Dosya adı, , password
ve domain
parametreleri olan StartuserName
aşırı yüklemelerde yürütülebilir bir dosyayı temsil etmelidir.
Bir işlemi başlatmak için kullandığınızda Start , işlemi kapatmanız gerekebilir veya sistem kaynaklarını kaybetme riskiyle karşı karşıya olabilirsiniz. veya Killkullanarak CloseMainWindow işlemleri kapatın. Bir işlemin zaten kapatılıp kapatılmadığını denetlemek için özelliğini HasExited kullanabilirsiniz.
Şunlara uygulanır
Start(String, String, SecureString, String)
- Kaynak:
- Process.Unix.cs
- Kaynak:
- Process.Unix.cs
- Kaynak:
- Process.Unix.cs
Önemli
Bu API, CLS uyumlu değildir.
Bir uygulamanın adını, kullanıcı adını, parolayı ve etki alanını belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir.
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
Parametreler
- fileName
- String
İşlemde çalıştırılacak bir uygulama dosyasının adı.
- userName
- String
İşlemi başlatırken kullanılacak kullanıcı adı.
- password
- SecureString
SecureString İşlemi başlatırken kullanılacak parolayı içeren bir.
- domain
- String
İşlemi başlatırken kullanılacak etki alanı.
Döndürülenler
Process İşlem kaynağıyla ilişkili yeni bir kaynak veya null
hiçbir işlem kaynağı başlatılmadıysa. Aynı işlemin zaten çalışan örnekleriyle birlikte başlatılan yeni bir işlemin diğerlerinden bağımsız olacağını unutmayın. Ayrıca, Start özelliği zaten olarak ayarlanmış true
null olmayan bir İşlem HasExited döndürebilir. Bu durumda, başlatılan işlem kendi mevcut bir örneğini etkinleştirmiş ve ardından çıkılmış olabilir.
- Öznitelikler
Özel durumlar
Hiçbir dosya adı belirtilmedi.
İlişkili dosya açılırken bir hata oluştu.
-veya-
içinde fileName
belirtilen dosya bulunamadı.
İşlem nesnesi zaten atılmış.
Bu üye Linux veya macOS'ta desteklenmez (yalnızca.NET Core).
Örnekler
Aşağıdaki kod örneği, yürütülebilir bir dosyayı başlatmak için bu aşırı yüklemenin Win32Exception kullanımını gösterir ve ayrıca yürütülemeyen bir dosyayla ilişkili bir uygulamayı başlatma girişiminde bulunulduğunda bir oluşturma işlemini gösterir.
// 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
Açıklamalar
Dosya adını, kullanıcı adını, parolasını ve etki alanını belirterek yeni bir işlem ve birincil iş parçacığı oluşturmak için bu aşırı yüklemeyi kullanın. Yeni işlem daha sonra belirtilen yürütülebilir dosyayı belirtilen kimlik bilgilerinin (kullanıcı, etki alanı ve parola) güvenlik bağlamında çalıştırır.
Önemli
Bu yöntemin güvenilmeyen verilerle çağrılması bir güvenlik riskidir. Bu yöntemi yalnızca güvenilir verilerle çağır. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Not
Yürütülebilir dosya bir uzak sürücüde bulunduğunda, bağlı sürücü harfini değil, tekdüzen kaynak tanımlayıcısını (URI) kullanarak ağ paylaşımını tanımlamanız gerekir.
Not
Başlatacak yürütülebilir dosyanın adresi bir URL ise, işlem başlatılmaz ve null
döndürülür.
Bu aşırı yükleme, önce yeni Process bir örnek oluşturmadan bir işlem başlatmanıza olanak tanır. Aşırı yükleme, yeni Process bir örnek oluşturma, özelliğin , UserName, Passwordve özelliklerini StartInfo ayarlamanın FileNameve Domain örneği çağırmanın Start açık adımlarına Process bir alternatiftir.
Benzer şekilde, Çalıştır iletişim kutusunun .exe uzantısıyla veya uzantı olmadan yürütülebilir dosya adını kabul edebilmesi gibi, .exe uzantısı parametresinde fileName
isteğe bağlıdır. Örneğin, parametresini fileName
"Notepad.exe" veya "Not Defteri" olarak ayarlayabilirsiniz. fileName
parametresi yürütülebilir bir dosyayı temsil ederse, arguments
parametresi işlem yapmak için bir dosyayı temsil edebilir, örneğin içindeki Notepad.exe myfile.txt
metin dosyası.
Not
Dosya adı, , password
ve domain
parametreleri olan StartuserName
aşırı yüklemelerde yürütülebilir bir dosyayı temsil etmelidir.
Bir işlemi başlatmak için kullandığınızda Start , işlemi kapatmanız gerekebilir veya sistem kaynaklarını kaybetme riskiyle karşı karşıya olabilirsiniz. veya Killkullanarak CloseMainWindow işlemleri kapatın. Bir işlemin zaten kapatılıp kapatılmadığını denetlemek için özelliğini HasExited kullanabilirsiniz.
Şunlara uygulanır
Start(String, String)
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
Bir uygulamanın adını ve bir dizi komut satırı bağımsız değişkenini belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir.
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
Parametreler
- fileName
- String
İşlemde çalıştırılacak bir uygulama dosyasının adı.
- arguments
- String
İşlemi başlatma sırasında geçirilecek komut satırı bağımsız değişkenleri.
Döndürülenler
Process İşlem kaynağıyla ilişkili yeni bir kaynak veya null
hiçbir işlem kaynağı başlatılmadıysa. Aynı işlemin zaten çalışan örnekleriyle birlikte başlatılan yeni bir işlemin diğerlerinden bağımsız olacağını unutmayın. Ayrıca, Start özelliği zaten olarak ayarlanmış true
null olmayan bir İşlem HasExited döndürebilir. Bu durumda, başlatılan işlem kendi mevcut bir örneğini etkinleştirmiş ve ardından çıkılmış olabilir.
- Öznitelikler
Özel durumlar
fileName
veya arguments
parametresidirnull
.
İlişkili dosya açılırken bir hata oluştu.
-veya-
içinde fileName
belirtilen dosya bulunamadı.
-veya-
Bağımsız değişkenlerin uzunluğu ve işlemin tam yolunun uzunluğu 2080'i aşıyor. Bu özel durumla ilişkili hata iletisi aşağıdakilerden biri olabilir: "Sistem çağrısına geçirilen veri alanı çok küçük." veya "Erişim reddedildi."
İşlem nesnesi zaten atılmış.
PATH ortam değişkeni tırnak işaretleri içeren bir dizeye sahiptir.
Örnekler
Aşağıdaki örnek ilk olarak bir Internet Explorer örneği oluşturur ve Sık Kullanılanlar klasörünün içeriğini tarayıcıda görüntüler. Ardından Internet Explorer'ın diğer bazı örneklerini başlatır ve bazı belirli sayfaları veya siteleri görüntüler. Son olarak, belirli bir siteye giderken pencere simge durumuna küçültülmüş olarak Internet Explorer'ı başlatır.
#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
Açıklamalar
Dosya adını ve komut satırı bağımsız değişkenlerini belirterek işlem kaynağını başlatmak için bu aşırı yüklemeyi kullanın. Aşırı yükleme, kaynağı yeni Process bir nesneyle ilişkilendirir.
Önemli
Bu yöntemin güvenilmeyen verilerle çağrılması bir güvenlik riskidir. Bu yöntemi yalnızca güvenilir verilerle çağır. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Not
Başlatacak yürütülebilir dosyanın adresi bir URL ise, işlem başlatılmaz ve null
döndürülür.
Bu aşırı yükleme, önce yeni Process bir örnek oluşturmadan bir işlem başlatmanıza olanak tanır. Aşırı yükleme, yeni Process bir örnek oluşturma, özelliğin ve üyelerini ayarlama FileName ve Arguments örnek için çağırma Start açık adımlarının StartInfo bir alternatifidirProcess.
Dosya adını ve bağımsız değişkenlerini belirterek bir işlem başlatmak, Windows Start
menüsünün iletişim kutusuna dosya adı ve komut satırı bağımsız değişkenlerini Run
yazmaya benzer. Bu nedenle, dosya adının yürütülebilir bir dosyayı temsil etmesine gerek yoktur. Uzantının sistemde yüklü bir uygulamayla ilişkilendirildiği herhangi bir dosya türünde olabilir. Örneğin, not defteri gibi bir düzenleyiciyle ilişkili metin dosyalarınız varsa dosya adının .txt bir uzantısı olabilir veya microsoft Word gibi bir sözcük işleme aracıyla .doc dosyaları ilişkilendirdiyseniz bir .doc olabilir. Benzer şekilde, Run
iletişim kutusunun .exe uzantısıyla veya uzantı olmadan yürütülebilir dosya adını kabul edebilmesi gibi, .exe uzantısı parametresinde fileName
isteğe bağlıdır. Örneğin, parametresini fileName
"Notepad.exe" veya "Not Defteri" olarak ayarlayabilirsiniz. fileName
parametresi yürütülebilir bir dosyayı temsil ederse, arguments
parametresi işlem yapmak için bir dosyayı temsil edebilir, örneğin içindeki Notepad.exe myfile.txt
metin dosyası. fileName
Parametre bir komut (.cmd) dosyasını temsil ediyorsa, komut penceresinin arguments
tamamlandıktan sonra çıkıp çıkmayacağını veya kalacağını belirtmek için parametrenin bir "/c
" veya "/k
" bağımsız değişkeni içermesi gerekir.
Diğer aşırı yüklemelerden farklı olarak, parametresi olmayan aşırı yüklemesi Start bir static
üye değildir. Zaten bir Process örnek oluşturduğunuzda ve başlangıç bilgilerini (dosya adı dahil) belirttiğinizde ve bir işlem kaynağı başlatıp bunu mevcut Process örnekle ilişkilendirmek istediğinizde bu aşırı yüklemeyi kullanın. Mevcut bir bileşen için işlem başlatmak yerine yeni Process bir bileşen oluşturmak istediğinizde aşırı yüklemelerden birini static
kullanın. Hem bu aşırı yükleme hem de parametresi olmayan aşırı yükleme, başlatılacak işlem kaynağının dosya adını ve geçirilmesi gereken komut satırı bağımsız değişkenlerini belirtmenize olanak sağlar.
Sisteminizde tırnak işaretleri kullanılarak bildirilen bir yol değişkeniniz varsa, bu konumda bulunan herhangi bir işlemi başlatırken bu yolu tam olarak nitelemeniz gerekir. Aksi takdirde sistem yolu bulamaz. Örneğin, yolunuz içinde değilse c:\mypath
ve tırnak işaretlerini path = %path%;"c:\mypath"
kullanarak eklerseniz, başlarken içindeki tüm işlemleri tam olarak nitelemeniz c:\mypath
gerekir.
Not
ASP.NET Web sayfası ve sunucu denetim kodu, Web sunucusundaki ASP.NET çalışan işlemi bağlamında yürütülür. yöntemini bir ASP.NET Web sayfasında veya sunucu denetiminde kullanırsanız Start , yeni işlem kısıtlı izinlerle Web sunucusunda yürütülür. İşlem istemci tarayıcısıyla aynı bağlamda başlamaz ve kullanıcı masaüstüne erişimi yoktur.
Bir işlemi başlatmak için kullandığınızda Start , işlemi kapatmanız gerekebilir veya sistem kaynaklarını kaybetme riskiyle karşı karşıya olabilirsiniz. veya Killkullanarak CloseMainWindow işlemleri kapatın. Bir işlemin zaten kapatılıp kapatılmadığını denetlemek için özelliğini HasExited kullanabilirsiniz.
Yönetilen iş parçacıklarındaki apartman durumları hakkında burada bir not gereklidir. İşlem bileşeninin StartInfo özelliğinde olduğunda UseShellExecutetrue
, yönteminde özniteliğini [STAThread]
ayarlayarak uygulamanızda bir iş parçacığı modeli ayarladığınızdan main()
emin olun. Aksi takdirde, yönetilen bir iş parçacığı bir unknown
durumda olabilir veya durumuna yerleştirilebilir MTA
; ikincisi ile UseShellExecutetrue
çakılabilir. Bazı yöntemler, apartman durumunun olmamasını unknown
gerektirir. Durum açıkça ayarlanmazsa, uygulama böyle bir yöntemle karşılaştığında varsayılan olarak MTA
olarak ayarlanır ve ayarlandıktan sonra daire durumu değiştirilemez. Ancak, MTA
işletim sistemi kabuğu iş parçacığını yönetirken bir özel durumun oluşmasına neden olur.
Ayrıca bkz.
Şunlara uygulanır
Start(String)
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
Belgenin veya uygulama dosyasının adını belirterek bir işlem kaynağı başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir.
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
Parametreler
- fileName
- String
İşlemde çalıştırılacak belgenin veya uygulama dosyasının adı.
Döndürülenler
İşlem kaynağıyla ilişkilendirilmiş veya null
hiçbir işlem kaynağı başlatılmadıysa yeni Process bir. Aynı işlemin zaten çalışan örneklerinin yanı sıra başlatılan yeni bir işlemin diğerlerinden bağımsız olacağını unutmayın. Ayrıca, Start özelliği zaten olarak ayarlanmış true
null olmayan bir İşlem HasExited döndürebilir. Bu durumda, başlatılan işlem kendi mevcut bir örneğini etkinleştirmiş ve sonra çıkılmış olabilir.
- Öznitelikler
Özel durumlar
İlişkili dosya açılırken bir hata oluştu.
-veya-
içinde fileName
belirtilen dosya bulunamadı.
İşlem nesnesi zaten atılmış.
PATH ortam değişkeni tırnak işaretleri içeren bir dizeye sahiptir.
Örnekler
Aşağıdaki örnek ilk olarak bir Internet Explorer örneği oluşturur ve Sık Kullanılanlar klasörünün içeriğini tarayıcıda görüntüler. Ardından Internet Explorer'ın diğer bazı örneklerini başlatır ve bazı belirli sayfaları veya siteleri görüntüler. Son olarak, belirli bir siteye giderken pencere simge durumuna küçültülmüş olarak Internet Explorer'ı başlatır.
#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
Açıklamalar
İşlem kaynağının dosya adını belirterek başlatmak için bu aşırı yüklemeyi kullanın. Aşırı yükleme, kaynağı yeni Process bir nesneyle ilişkilendirir.
Önemli
Bu yöntemin güvenilmeyen verilerle çağrılması bir güvenlik riskidir. Bu yöntemi yalnızca güvenilir verilerle çağır. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Not
Başlatacak yürütülebilir dosyanın adresi bir URL ise, işlem başlatılmaz ve null
döndürülür.
Bu aşırı yükleme, önce yeni Process bir örnek oluşturmadan bir işlem başlatmanıza olanak tanır. Aşırı yükleme, yeni Process bir örnek oluşturma, özelliğin StartInfo üyesini FileName ayarlama ve örnek için çağırma Start açık adımlarına Process bir alternatiftir.
Bir ClickOnce uygulamasını başlatmak için parametresini fileName
uygulamayı ilk yüklediğiniz konuma (örneğin, bir Web adresi) ayarlayabilirsiniz. Bir ClickOnce uygulamasını sabit sürücünüzde yüklü konumunu belirterek başlatmayın.
Dosya adını belirterek bir işlem başlatmak, Windows Start
menüsünün Run
iletişim kutusuna bilgileri yazmaya benzer. Bu nedenle, dosya adının yürütülebilir bir dosyayı temsil etmesine gerek yoktur. Uzantının sistemde yüklü bir uygulamayla ilişkilendirildiği herhangi bir dosya türünde olabilir. Örneğin, not defteri gibi bir düzenleyiciyle ilişkili metin dosyalarınız varsa dosya adının .txt bir uzantısı olabilir veya microsoft Word gibi bir sözcük işleme aracıyla .doc dosyaları ilişkilendirdiyseniz bir .doc olabilir. Benzer şekilde, Run
iletişim kutusunun .exe uzantısıyla veya uzantı olmadan yürütülebilir dosya adını kabul edebilmesi gibi, .exe uzantısı parametresinde fileName
isteğe bağlıdır. Örneğin, parametresini fileName
"Notepad.exe" veya "Not Defteri" olarak ayarlayabilirsiniz.
Bu aşırı yükleme, işlem için komut satırı bağımsız değişkenlerine izin vermez. İşlem için bir veya daha fazla komut satırı bağımsız değişkeni belirtmeniz gerekiyorsa veya Process.Start(String, String) aşırı yüklemelerini kullanınProcess.Start(ProcessStartInfo).
Diğer aşırı yüklemelerden farklı olarak, parametresi olmayan aşırı yüklemesi Start bir static
üye değildir. Zaten bir Process örnek oluşturduğunuzda ve başlangıç bilgilerini (dosya adı dahil) belirttiğinizde ve bir işlem kaynağı başlatıp bunu mevcut Process örnekle ilişkilendirmek istediğinizde bu aşırı yüklemeyi kullanın. Mevcut bir bileşen için işlem başlatmak yerine yeni Process bir bileşen oluşturmak istediğinizde aşırı yüklemelerden birini static
kullanın. Hem bu aşırı yükleme hem de parametresi olmayan aşırı yükleme, başlatılacak işlem kaynağının dosya adını belirtmenize olanak sağlar.
Sisteminizde tırnak işaretleri kullanılarak bildirilen bir yol değişkeniniz varsa, bu konumda bulunan herhangi bir işlemi başlatırken bu yolu tam olarak nitelemeniz gerekir. Aksi takdirde sistem yolu bulamaz. Örneğin, yolunuz içinde değilse c:\mypath
ve tırnak işaretlerini path = %path%;"c:\mypath"
kullanarak eklerseniz, başlarken içindeki tüm işlemleri tam olarak nitelemeniz c:\mypath
gerekir.
Not
ASP.NET Web sayfası ve sunucu denetim kodu, Web sunucusundaki ASP.NET çalışan işlemi bağlamında yürütülür. yöntemini bir ASP.NET Web sayfasında veya sunucu denetiminde kullanırsanız Start , yeni işlem kısıtlı izinlerle Web sunucusunda yürütülür. İşlem istemci tarayıcısıyla aynı bağlamda başlamaz ve kullanıcı masaüstüne erişimi yoktur.
Bir işlemi başlatmak için kullandığınızda Start , işlemi kapatmanız gerekebilir veya sistem kaynaklarını kaybetme riskiyle karşı karşıya olabilirsiniz. veya Killkullanarak CloseMainWindow işlemleri kapatın. Bir işlemin zaten kapatılıp kapatılmadığını denetlemek için özelliğini HasExited kullanabilirsiniz.
Yönetilen iş parçacıklarındaki apartman durumları hakkında burada bir not gereklidir. İşlem bileşeninin StartInfo özelliğinde olduğunda UseShellExecutetrue
, yönteminde özniteliğini [STAThread]
ayarlayarak uygulamanızda bir iş parçacığı modeli ayarladığınızdan main()
emin olun. Aksi takdirde, yönetilen bir iş parçacığı bir unknown
durumda olabilir veya durumuna yerleştirilebilir MTA
; ikincisi ile UseShellExecutetrue
çakılır. Bazı yöntemler, apartman durumunun olmamasını unknown
gerektirir. Durum açıkça ayarlanmazsa, uygulama böyle bir yöntemle karşılaştığında varsayılan olarak MTA
olur ve ayarlandıktan sonra, daire durumu değiştirilemez. Ancak, MTA
işletim sistemi kabuğu iş parçacığını yönetirken bir özel durumun oluşmasına neden olur.
Ayrıca bkz.
Şunlara uygulanır
Start(ProcessStartInfo)
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
İşlem başlangıç bilgilerini (örneğin, başlatacak işlemin dosya adı) içeren parametresi tarafından belirtilen işlem kaynağını başlatır ve kaynağı yeni Process bir bileşenle ilişkilendirir.
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
Parametreler
- startInfo
- ProcessStartInfo
dosya ProcessStartInfo adı ve komut satırı bağımsız değişkenleri de dahil olmak üzere işlemi başlatmak için kullanılan bilgileri içeren.
Döndürülenler
İşlem kaynağıyla ilişkilendirilmiş veya null
hiçbir işlem kaynağı başlatılmadıysa yeni Process bir. Aynı işlemin zaten çalışan örneklerinin yanı sıra başlatılan yeni bir işlemin diğerlerinden bağımsız olacağını unutmayın. Ayrıca, Start özelliği zaten olarak ayarlanmış true
null olmayan bir İşlem HasExited döndürebilir. Bu durumda, başlatılan işlem kendi mevcut bir örneğini etkinleştirmiş ve sonra çıkılmış olabilir.
- Öznitelikler
Özel durumlar
Parametrenin FileName özelliğinde startInfo
hiçbir dosya adı belirtilmedi.
-veya-
UseShellExecute parametresinin startInfo
özelliği ve RedirectStandardInputtrue
, RedirectStandardOutputveya RedirectStandardError özelliği de true
şeklindedir.
-veya-
parametresinin startInfo
özelliğidir true
ve UserName özelliği boş veya boş değildir null
ya da Password özelliği değildirnull
.UseShellExecute
startInfo
parametresidirnull
.
İşlem nesnesi zaten atılmış.
İlişkili dosya açılırken bir hata oluştu.
-veya-
Parametrenin startInfo
FileName özelliğinde belirtilen dosya bulunamadı.
-veya-
Bağımsız değişkenlerin uzunluğu ve işlemin tam yolunun uzunluğu 2080'i aşıyor. Bu özel durumla ilişkili hata iletisi aşağıdakilerden biri olabilir: "Sistem çağrısına geçirilen veri alanı çok küçük." veya "Erişim reddedildi."
Nano Sunucu gibi kabuk desteği olmayan işletim sistemlerinde yöntem desteklenmiyor (yalnızca.NET Core).
Örnekler
Aşağıdaki örnek ilk olarak bir Internet Explorer örneği oluşturur ve sık kullanılanlar klasörünün içeriğini tarayıcıda görüntüler. Ardından Internet Explorer'ın diğer bazı örneklerini başlatır ve bazı belirli sayfaları veya siteleri görüntüler. Son olarak, Internet Explorer'ı belirli bir siteye giderken pencere simge durumuna küçültülmüş olarak başlatır.
Bu yöntemin diğer kullanımlarına ilişkin ek örnekler için sınıfının tek tek özelliklerine ProcessStartInfo bakın.
#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
Açıklamalar
Bir örnek belirterek ProcessStartInfo işlem kaynağını başlatmak için bu aşırı yüklemeyi kullanın. Aşırı yükleme, kaynağı yeni Process bir nesneyle ilişkilendirir.
Önemli
Bu yöntemi güvenilmeyen verilerle çağırmak bir güvenlik riskidir. Bu yöntemi yalnızca güvenilen verilerle çağır. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Not
Başlatacak yürütülebilir dosyanın adresi bir URL ise, işlem başlatılmaz ve null
döndürülür.
Bu aşırı yükleme, önce yeni Process bir örnek oluşturmadan bir işlem başlatmanızı sağlar. Bu aşırı yüklemeyi bir ProcessStartInfo parametreyle kullanmak, yeni Process örnek oluşturma, özelliklerini ayarlama ve örnek için çağırma Start adımlarının StartInfo bir alternatifidirProcess.
Parametre olarak bir ProcessStartInfo örneği kullanmak, işlemi başlatmak için çağrıya geçirilenler üzerinde en fazla denetime sahip çağrı yapmanızı Start sağlar. Yalnızca bir dosya adı veya dosya adı ve bağımsız değişkenleri geçirmeniz gerekiyorsa, yeni ProcessStartInfo bir örnek oluşturmanız gerekmez, ancak bu bir seçenektir. Ayarlanması gereken tek Process.StartInfo özellik özelliğidir FileName . özelliğinin FileName yürütülebilir bir dosyayı temsil etmeye ihtiyacı yoktur. Uzantının sistemde yüklü bir uygulamayla ilişkilendirildiği herhangi bir dosya türünde olabilir. Örneğin, FileName Not Defteri gibi bir düzenleyiciyle ilişkili metin dosyalarınız varsa özelliğin .txt uzantısı olabilir veya Microsoft Word gibi bir sözcük işleme aracıyla .doc dosyalarınız varsa .doc uzantısına sahip olabilir.
Uygulamayı ilk yüklediğiniz konumu (örneğin, bir Web adresi) belirterek bir ClickOnce uygulaması başlatabilirsiniz. Yüklü konumunu sabit sürücünüzde belirterek clickOnce uygulamasını başlatmayın.
ProcessStartInfo.UserName Örneğin ve ProcessStartInfo.Password özellikleri StartInfo ayarlanırsa, yönetilmeyen CreateProcessWithLogonW
işlev çağrılır. Bu işlev, özellik değeri veya ProcessStartInfo.WindowStyle özellik değeri ProcessWindowStyle.Hiddenolsa ProcessStartInfo.CreateNoWindowtrue
bile işlemi yeni bir pencerede başlatır. ProcessStartInfo.Domain özelliği isenull
ProcessStartInfo.UserName, özellik UPN biçiminde olmalıdır, kullanıcı@DNS_domain_name.
Diğer aşırı yüklemelerin aksine, parametresi olmayan aşırı yüklemesi Start üye static
değildir. Zaten bir Process örnek oluşturduğunuzda ve başlangıç bilgilerini (dosya adı dahil) belirttiğinizde ve bir işlem kaynağı başlatmak ve bunu mevcut Process örnekle ilişkilendirmek istediğinizde bu aşırı yüklemeyi kullanın. Mevcut bir bileşen için işlem başlatmak yerine yeni Process bir bileşen oluşturmak istediğinizde aşırı yüklemelerden birini static
kullanın. Hem bu aşırı yükleme hem de parametresi olmayan aşırı yükleme, bir ProcessStartInfo örnek kullanarak işlem kaynağı için başlangıç bilgilerini belirtmenize olanak tanır.
Sisteminizde tırnak işaretleri kullanılarak bildirilen bir yol değişkeniniz varsa, bu konumda bulunan herhangi bir işlemi başlatırken bu yolu tam olarak nitelemeniz gerekir. Aksi takdirde sistem yolu bulamaz. Örneğin, yolunuz içinde değilse c:\mypath
ve tırnak işaretlerini path = %path%;"c:\mypath"
kullanarak eklerseniz, başlarken içindeki tüm işlemleri tam olarak nitelemeniz c:\mypath
gerekir.
Not
ASP.NET Web sayfası ve sunucu denetim kodu, Web sunucusundaki ASP.NET çalışan işlemi bağlamında yürütülür. yöntemini bir ASP.NET Web sayfasında veya sunucu denetiminde kullanırsanız Start , yeni işlem kısıtlı izinlerle Web sunucusunda yürütülür. İşlem istemci tarayıcısıyla aynı bağlamda başlamaz ve kullanıcı masaüstüne erişimi yoktur.
Bir işlemi başlatmak için her kullandığınızda Start , işlemi kapatmanız gerekebilir veya sistem kaynaklarını kaybetme riskiyle karşı karşıya olabilirsiniz. veya Killkullanarak CloseMainWindow işlemleri kapatın. Bir işlemin zaten kapatılıp kapatılmadığını denetlemek için özelliğini HasExited kullanabilirsiniz.
Yönetilen iş parçacıklarındaki apartman durumları hakkında burada bir not gereklidir. parametresinde olduğunda UseShellExecutetrue
, yönteminde startInfo
özniteliğini [STAThread]
ayarlayarak uygulamanızda bir iş parçacığı modeli ayarladığınızdan main()
emin olun. Aksi takdirde, yönetilen bir iş parçacığı bir unknown
durumda olabilir veya durumuna yerleştirilebilir MTA
; ikincisi ile UseShellExecutetrue
çakılır. Bazı yöntemler, apartman durumunun olmamasını unknown
gerektirir. Durum açıkça ayarlanmazsa, uygulama böyle bir yöntemle karşılaştığında varsayılan olarak MTA
olur ve ayarlandıktan sonra, daire durumu değiştirilemez. Ancak, MTA
işletim sistemi kabuğu iş parçacığını yönetirken bir özel durumun oluşmasına neden olur.
Ayrıca bkz.
Şunlara uygulanır
Start()
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- 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
Döndürülenler
true
bir işlem kaynağı başlatılırsa; false
yeni bir işlem kaynağı başlatılmazsa (örneğin, mevcut bir işlem yeniden kullanılırsa).
- Öznitelikler
Özel durumlar
Bileşenin ProcessStartInfodosyasında hiçbir dosya adı belirtilmedi.
-veya-
UseShellExecute özelliğinin true
StartInfo üyesi iken RedirectStandardInput, RedirectStandardOutputveya RedirectStandardError şeklindedirtrue
.
İlişkili dosya açılırken bir hata oluştu.
İşlem nesnesi zaten atılmış.
Nano Sunucu gibi kabuk desteği olmayan işletim sistemlerinde yöntem desteklenmiyor (yalnızca.NET Core).
Örnekler
Aşağıdaki örnek, bir işlemi başlatmak için sınıfının bir örneğini Process kullanır.
#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
Açıklamalar
İşlem kaynağını başlatmak ve geçerli Process bileşenle ilişkilendirmek için bu aşırı yüklemeyi kullanın. Dönüş değeri true
, yeni bir işlem kaynağının başlatıldığını gösterir. Özelliğin üyesi StartInfo tarafından FileName belirtilen işlem kaynağı bilgisayarda zaten çalışıyorsa, ek işlem kaynağı başlatılmaz. Bunun yerine, çalışan işlem kaynağı yeniden kullanılır ve false
döndürülür.
Uygulamayı ilk yüklediğiniz konumu (örneğin, bir Web adresi) belirterek bir ClickOnce uygulaması başlatabilirsiniz. Yüklü konumunu sabit sürücünüzde belirterek clickOnce uygulamasını başlatmayın.
Önemli
Güvenilmeyen verilerle bu nesnenin bir örneğini kullanmak bir güvenlik riskidir. Bu nesneyi yalnızca güvenilen verilerle kullanın. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.
Not
Visual Studio kullanıyorsanız, bir bileşeni tasarımcıya Start sürükledikten Process sonra kodunuza eklediğiniz yöntemin bu aşırı yüklemesidir. Kategoriyi Properties
genişletmek ve özelliğine StartInfo
uygun değeri FileName
yazmak için pencereyi kullanın. Değişiklikleriniz formun InitializeComponent
yordamında görüntülenir.
bu aşırı yüklemesi Start bir static
yöntem değildir. Sınıfın bir örneğinden Process çağırmanız gerekir. çağrısından Startönce bu Process örnek için özellik bilgilerini belirtmeniz StartInfo gerekir, çünkü bu bilgiler başlatılacak işlem kaynağını belirlemek için kullanılır.
yönteminin Start diğer aşırı yüklemeleri üyelerdir static
. Yönteminin Process bu aşırı yüklemelerini çağırmadan önce bileşenin bir örneğini oluşturmanız gerekmez. Bunun yerine, sınıfın kendisini çağırabilirsiniz Start ve işlem başlatıldıysa yeni Process bir bileşen oluşturulur.Process Veya bir null
işlem yeniden kullanıldıysa döndürülür. İşlem kaynağı, yöntemi tarafından Start döndürülen yeni Process bileşenle otomatik olarak ilişkilendirilir.
ÜyelerStartInfo, Windows Start
menüsünün iletişim kutusunun işlevselliğini Run
yinelemek için kullanılabilir. Komut satırına yazılabilir her şey özelliğinde StartInfo uygun değerler ayarlanarak başlatılabilir. Ayarlanması gereken tek StartInfo özellik özelliğidir FileName . Özelliğin FileName yürütülebilir dosya olması gerekmez. Uzantının sistemde yüklü bir uygulamayla ilişkilendirildiği herhangi bir dosya türünde olabilir. Örneğin, FileName metin dosyalarını Not Defteri gibi bir düzenleyiciyle ilişkilendirdiyseniz özelliğin .txt bir uzantısı olabilir veya microsoft Word gibi bir sözcük işleme aracıyla .doc dosyaları ilişkilendirdiyseniz .doc uzantısına sahip olabilir.
Komut satırında, belirli dosya türleri için yapılması gereken eylemleri belirtebilirsiniz. Örneğin, belgeleri yazdırabilir veya metin dosyalarını düzenleyebilirsiniz. Özelliğinin üyesini VerbStartInfo kullanarak bu eylemleri belirtin. Diğer dosya türleri için, dosyayı iletişim kutusundan Run
başlattığınızda komut satırı bağımsız değişkenlerini belirtebilirsiniz. Örneğin, tarayıcınızı olarak belirtirseniz bağımsız değişken olarak FileNamebir URL geçirebilirsiniz. Bu bağımsız değişkenler özelliğin Arguments üyesinde StartInfo belirtilebilir.
Sisteminizde tırnak işaretleri kullanılarak bildirilen bir yol değişkeniniz varsa, bu konumda bulunan herhangi bir işlemi başlatırken bu yolu tam olarak nitelemeniz gerekir. Aksi takdirde sistem yolu bulamaz. Örneğin, yolunuz içinde değilse c:\mypath
ve tırnak işaretlerini path = %path%;"c:\mypath"
kullanarak eklerseniz, başlarken içindeki tüm işlemleri tam olarak nitelemeniz c:\mypath
gerekir.
Not
ASP.NET Web sayfası ve sunucu denetim kodu, Web sunucusundaki ASP.NET çalışan işlemi bağlamında yürütülür. yöntemini bir ASP.NET Web sayfasında veya sunucu denetiminde kullanırsanız Start , yeni işlem kısıtlı izinlerle Web sunucusunda yürütülür. İşlem istemci tarayıcısıyla aynı bağlamda başlamaz ve kullanıcı masaüstüne erişimi yoktur.
Bir işlemi başlatmak için kullandığınızda Start , işlemi kapatmanız gerekebilir veya sistem kaynaklarını kaybetme riskiyle karşı karşıya olabilirsiniz. veya Killkullanarak CloseMainWindow işlemleri kapatın. Bir işlemin zaten kapatılıp kapatılmadığını denetlemek için özelliğini HasExited kullanabilirsiniz.
Yönetilen iş parçacıklarındaki apartman durumları hakkında burada bir not gereklidir. İşlem bileşeninin StartInfo özelliğinde olduğunda UseShellExecutetrue
, yönteminde özniteliğini [STAThread]
ayarlayarak uygulamanızda bir iş parçacığı modeli ayarladığınızdan main()
emin olun. Aksi takdirde, yönetilen bir iş parçacığı bir unknown
durumda olabilir veya durumuna yerleştirilebilir MTA
; ikincisi ile UseShellExecutetrue
çakılabilir. Bazı yöntemler, apartman durumunun olmamasını unknown
gerektirir. Durum açıkça ayarlanmazsa, uygulama böyle bir yöntemle karşılaştığında varsayılan olarak MTA
olarak ayarlanır ve ayarlandıktan sonra daire durumu değiştirilemez. Ancak, MTA
işletim sistemi kabuğu iş parçacığını yönetirken bir özel durumun oluşmasına neden olur.
Ayrıca bkz.
Şunlara uygulanır
Start(String, IEnumerable<String>)
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
- Kaynak:
- Process.cs
Bir uygulamanın adını ve bir dizi komut satırı bağımsız değişkenini belirterek bir işlem kaynağı başlatır.
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
Parametreler
- fileName
- String
İşlemde çalıştırılacak belgenin veya uygulama dosyasının adı.
- arguments
- IEnumerable<String>
İşlemi başlatırken geçirilebilir komut satırı bağımsız değişkenleri.
Döndürülenler
Process İşlem kaynağıyla ilişkili yeni bir kaynak veya null
hiçbir işlem kaynağı başlatılmadıysa.
- Öznitelikler
Açıklamalar
Gerekirse her bağımsız değişken otomatik olarak atlanır.
Önemli
Bu yöntemin güvenilmeyen verilerle çağrılması bir güvenlik riskidir. Bu yöntemi yalnızca güvenilir verilerle çağır. Daha fazla bilgi için bkz. Tüm Girişleri Doğrulama.