Process.Start Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запускает ресурс процесса и связывает его с компонентом Process .
Перегрузки
| Имя | Описание |
|---|---|
| Start(String, String, String, SecureString, String) |
Запускает ресурс процесса, указав имя приложения, набор аргументов командной строки, имя пользователя, пароль и домен и связывает ресурс с новым Process компонентом. |
| Start(String, String, SecureString, String) |
Запускает ресурс процесса, указав имя приложения, имя пользователя, пароль и домен и связывает ресурс с новым Process компонентом. |
| Start(String, String) |
Запускает ресурс процесса, указав имя приложения и набор аргументов командной строки, а также связывает ресурс с новым Process компонентом. |
| Start(String) |
Запускает ресурс процесса, указав имя документа или файла приложения и связывает ресурс с новым Process компонентом. |
| Start(ProcessStartInfo) |
Запускает ресурс процесса, указанный параметром, содержащим сведения о запуске процесса (например, имя файла процесса для запуска) и связывает ресурс с новым Process компонентом. |
| Start() |
Запускает (или повторно использует) ресурс процесса, указанный свойством StartInfo этого Process компонента и связывает его с компонентом. |
| Start(String, IEnumerable<String>) |
Запускает ресурс процесса, указав имя приложения и набор аргументов командной строки. |
Start(String, String, String, SecureString, String)
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
Внимание
Этот API несовместим с CLS.
Запускает ресурс процесса, указав имя приложения, набор аргументов командной строки, имя пользователя, пароль и домен и связывает ресурс с новым 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
Параметры
- fileName
- String
Имя файла приложения, выполняемого в процессе.
- arguments
- String
Аргументы командной строки для передачи при запуске процесса.
- userName
- String
Имя пользователя, используемое при запуске процесса.
- password
- SecureString
Значение SecureString , содержащее пароль, используемый при запуске процесса.
- domain
- String
Домен, используемый при запуске процесса.
Возвращаемое значение
Новое Process , связанное с ресурсом процесса, или null если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный вместе с уже запущенными экземплярами одного процесса, будет независимым от других. Кроме того, Start может возвращать ненулевой процесс со своим HasExited свойством, которым уже задано trueзначение. В этом случае запущенный процесс, возможно, активировал существующий экземпляр самого себя, а затем завершился.
- Атрибуты
Исключения
Имя файла не указано.
При открытии связанного файла произошла ошибка.
–или–
Файл, указанный fileName в не удалось найти.
–или–
Сумма длины аргументов и длина полного пути к связанному файлу превышает 2080. Сообщение об ошибке, связанное с этим исключением, может быть одним из следующих: "Область данных, переданная в системный вызов, слишком мала". Или "Доступ запрещен".
Объект процесса уже удален.
Этот член не поддерживается только в Linux или macOS (только для .NET Core).
Комментарии
Используйте эту перегрузку для создания нового процесса и его основного потока, указав его имя файла, аргументы командной строки, имя пользователя, пароль и домен. Затем новый процесс запускает указанный исполняемый файл в контексте безопасности указанных учетных данных (пользователя, домена и пароля).
Это важно
Вызов этого метода с ненадежными данными является угрозой безопасности. Вызовите этот метод только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.
Замечание
Если исполняемый файл находится на удаленном диске, необходимо определить сетевую папку с помощью универсального идентификатора ресурса (URI), а не связанного буквы диска.
Замечание
Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и null возвращается.
Эта перегрузка позволяет запускать процесс без первого создания нового Process экземпляра. Перегрузка является альтернативой явным действиям по созданию нового Process экземпляра, настройке FileName, UserNameArgumentsPasswordи Domain свойствам StartInfo свойства свойства и вызову Start экземпляра.Process
Аналогичным образом диалоговое окно "Запуск " может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe необязательно в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот".
fileName Если параметр представляет исполняемый файл, arguments параметр может представлять файл для выполнения действий, например текстовый файл.Notepad.exe myfile.txt
Замечание
Имя файла должно представлять исполняемый файл в Start перегрузках, имеющих userNamepasswordи domain параметры.
Каждый раз, когда вы используете Start для запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.
Применяется к
Start(String, String, SecureString, String)
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
Внимание
Этот API несовместим с CLS.
Запускает ресурс процесса, указав имя приложения, имя пользователя, пароль и домен и связывает ресурс с новым 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
Параметры
- fileName
- String
Имя файла приложения, выполняемого в процессе.
- userName
- String
Имя пользователя, используемое при запуске процесса.
- password
- SecureString
Значение SecureString , содержащее пароль, используемый при запуске процесса.
- domain
- String
Домен, используемый при запуске процесса.
Возвращаемое значение
Новое Process , связанное с ресурсом процесса, или null если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный вместе с уже запущенными экземплярами одного процесса, будет независимым от других. Кроме того, Start может возвращать ненулевой процесс со своим HasExited свойством, которым уже задано trueзначение. В этом случае запущенный процесс, возможно, активировал существующий экземпляр самого себя, а затем завершился.
- Атрибуты
Исключения
Имя файла не указано.
Произошла ошибка при открытии связанного файла.
–или–
Файл, указанный fileName в не удалось найти.
Объект процесса уже удален.
Этот член не поддерживается только в Linux или macOS (только для .NET Core).
Примеры
В следующем примере кода показано использование этой перегрузки для запуска исполняемого файла, а также демонстрируется исключение Win32Exception при попытке запустить приложение, связанное с неисключаемым файлом.
// 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();
}
}
}
// NOTE: This example requires a text.txt file file in your Documents folder
open System
open System.Diagnostics
open System.Security
open System.ComponentModel
printf "Enter your domain: "
let domain = stdin.ReadLine()
printf "Enter you user name: "
let uname = stdin.ReadLine()
printf "Enter your password: "
let password = new SecureString()
let mutable key = Console.ReadKey(true)
while key.Key <> ConsoleKey.Enter do
// Ignore any key out of range.
if int key.Key >= 33 && int key.Key <= 90 && key.Key <> ConsoleKey.Enter then
// Append the character to the password.
password.AppendChar key.KeyChar
Console.Write "*"
key <- Console.ReadKey(true)
printfn ""
try
printfn "\nTrying to launch NotePad using your login information..."
Process.Start("notepad.exe", uname, password, domain) |> ignore
with :? Win32Exception as ex ->
printfn $"{ex.Message}"
let path = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments + @"\"
try
// The following call to Start succeeds if test.txt exists.
printfn "\nTrying to launch 'text.txt'..."
Process.Start $"{path}text.txt" |> ignore
with :? Win32Exception as ex ->
printfn $"{ex.Message}"
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.
printfn "\nTrying to launch 'text.txt' with your login information..."
Process.Start($"{path}text.txt", uname, password, domain) |> ignore
with :? Win32Exception as ex ->
printfn $"{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
Комментарии
Используйте эту перегрузку, чтобы создать новый процесс и его основной поток, указав его имя файла, имя пользователя, пароль и домен. Затем новый процесс запускает указанный исполняемый файл в контексте безопасности указанных учетных данных (пользователя, домена и пароля).
Это важно
Вызов этого метода с ненадежными данными является угрозой безопасности. Вызовите этот метод только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.
Замечание
Если исполняемый файл находится на удаленном диске, необходимо определить сетевую папку с помощью универсального идентификатора ресурса (URI), а не связанного буквы диска.
Замечание
Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и null возвращается.
Эта перегрузка позволяет запускать процесс без первого создания нового Process экземпляра. Перегрузка является альтернативой явным действиям по созданию нового Process экземпляра, настройке FileNameи PasswordUserNameDomain свойствам StartInfo свойства свойства и вызову Start экземпляра.Process
Аналогичным образом диалоговое окно "Запуск " может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe необязательно в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот".
fileName Если параметр представляет исполняемый файл, arguments параметр может представлять файл для выполнения действий, например текстовый файл.Notepad.exe myfile.txt
Замечание
Имя файла должно представлять исполняемый файл в Start перегрузках, имеющих userNamepasswordи domain параметры.
Каждый раз, когда вы используете Start для запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.
Применяется к
Start(String, String)
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
Запускает ресурс процесса, указав имя приложения и набор аргументов командной строки, а также связывает ресурс с новым Process компонентом.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(string fileName, 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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
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
Public Shared Function Start (fileName As String, arguments As String) As Process
Параметры
- fileName
- String
Имя файла приложения, выполняемого в процессе.
- arguments
- String
Аргументы командной строки для передачи при запуске процесса.
Возвращаемое значение
Новое Process , связанное с ресурсом процесса, или null если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный вместе с уже запущенными экземплярами одного процесса, будет независимым от других. Кроме того, Start может возвращать ненулевой процесс со своим HasExited свойством, которым уже задано trueзначение. В этом случае запущенный процесс, возможно, активировал существующий экземпляр самого себя, а затем завершился.
- Атрибуты
Исключения
Значение fileName или arguments параметр null.
При открытии связанного файла произошла ошибка.
–или–
Файл, указанный fileName в не удалось найти.
–или–
Сумма длины аргументов и длина полного пути к процессу превышает 2080. Сообщение об ошибке, связанное с этим исключением, может быть одним из следующих: "Область данных, переданная в системный вызов, слишком мала". Или "Доступ запрещен".
Объект процесса уже удален.
Переменная среды PATH содержит строку, содержащую кавычки.
Примеры
В следующем примере сначала создается экземпляр Internet Explorer и отображается содержимое папки Избранного в браузере. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты. Наконец, он запускает Internet Explorer с свернутым окном при переходе на определенный сайт.
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();
}
}
}
module processstartstatic
open System
open System.Diagnostics
// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
// Start Internet Explorer. Defaults to the home page.
Process.Start "IExplore.exe" |> ignore
// Display the contents of the favorites folder in the browser.
Process.Start myFavoritesPath |> ignore
// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
let startInfo = ProcessStartInfo "IExplore.exe"
startInfo.WindowStyle <- ProcessWindowStyle.Minimized
Process.Start startInfo |> ignore
startInfo.Arguments <- "www.northwindtraders.com"
Process.Start startInfo |> ignore
// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites
openApplication myFavoritesPath
openWithArguments ()
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
Комментарии
Используйте эту перегрузку для запуска ресурса процесса, указав его имя файла и аргументы командной строки. Перегрузка связывает ресурс с новым Process объектом.
Это важно
Вызов этого метода с ненадежными данными является угрозой безопасности. Вызовите этот метод только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.
Замечание
Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и null возвращается.
Эта перегрузка позволяет запускать процесс без первого создания нового Process экземпляра. Перегрузка является альтернативой явным действиям по созданию нового Process экземпляра, настройке FileName и Arguments членам StartInfo свойства и вызову Start экземпляра Process .
Запуск процесса путем указания имени файла и аргументов аналогичен вводу имени файла и аргументов командной строки в Run диалоговом окне меню Windows Start . Поэтому имя файла не требует представления исполняемого файла. Он может иметь любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, имя файла может иметь расширение .txt, если у вас есть текстовые файлы с редактором, например Блокнот, или у него может быть .doc, если вы связали .doc файлы с средством обработки слов, например Microsoft Word. Аналогично, так же, как Run диалоговое окно может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe необязательно в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот".
fileName Если параметр представляет исполняемый файл, arguments параметр может представлять файл для выполнения действий, например текстовый файл.Notepad.exe myfile.txt
fileName Если параметр представляет файл команды (.cmd), параметр должен включать аргумент "/c" или "/k", arguments чтобы указать, выходит ли окно команды или остается после завершения.
В отличие от других перегрузк, перегрузка Start , которая не имеет параметров, не static является членом. Используйте эту перегрузку, если вы уже создали Process экземпляр и указали сведения о запуске (включая имя файла), и вы хотите запустить ресурс процесса и связать его с существующим Process экземпляром. Используйте одну из static перегрузок, если вы хотите создать новый Process компонент, а не запустить процесс для существующего компонента. Эта перегрузка и перегрузка, не имеющие параметров, позволяют указать имя файла ресурса процесса для запуска и передачи аргументов командной строки.
Если в системе объявлена переменная пути с помощью кавычки, необходимо полностью указать этот путь при запуске любого процесса, найденного в этом расположении. В противном случае система не найдет путь. Например, если c:\mypath он не находится в пути, и вы добавляете его с помощью кавычки: path = %path%;"c:\mypath"при запуске необходимо полностью указать любой процесс c:\mypath .
Замечание
ASP.NET веб-страница и код управления сервером выполняется в контексте рабочего процесса ASP.NET на веб-сервере. Если вы используете Start метод на веб-странице ASP.NET или серверном элементе управления, новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.
Каждый раз, когда вы используете Start для запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.
Примечание о состояниях квартир в управляемых потоках необходимо здесь. Если UseShellExecute он находится true в свойстве компонента StartInfo процесса, убедитесь, что в приложении задана модель потоковой обработки, задав атрибут [STAThread] для main() метода. В противном случае управляемый unknown поток может находиться в состоянии или помещать его в MTA состояние, последняя из которых конфликтует с UseShellExecute тем, что является true. Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, когда приложение встречает такой метод, оно по умолчанию MTAимеет значение , и после установки состояние квартиры не может быть изменено. Однако при MTA управлении потоком вызывается исключение.
См. также раздел
Применяется к
Start(String)
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
Запускает ресурс процесса, указав имя документа или файла приложения и связывает ресурс с новым Process компонентом.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process
Параметры
- fileName
- String
Имя документа или файла приложения, выполняемого в процессе.
Возвращаемое значение
Новое Process , связанное с ресурсом процесса, или null если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный вместе с уже запущенными экземплярами одного процесса, будет независимым от других. Кроме того, Start может возвращать ненулевой процесс со своим HasExited свойством, которым уже задано trueзначение. В этом случае запущенный процесс, возможно, активировал существующий экземпляр самого себя, а затем завершился.
- Атрибуты
Исключения
При открытии связанного файла произошла ошибка.
–или–
Файл, указанный fileName в не удалось найти.
Объект процесса уже удален.
Переменная среды PATH содержит строку, содержащую кавычки.
Примеры
В следующем примере сначала создается экземпляр Internet Explorer и отображается содержимое папки Избранного в браузере. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты. Наконец, он запускает Internet Explorer с свернутым окном при переходе на определенный сайт.
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();
}
}
}
module processstartstatic
open System
open System.Diagnostics
// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
// Start Internet Explorer. Defaults to the home page.
Process.Start "IExplore.exe" |> ignore
// Display the contents of the favorites folder in the browser.
Process.Start myFavoritesPath |> ignore
// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
let startInfo = ProcessStartInfo "IExplore.exe"
startInfo.WindowStyle <- ProcessWindowStyle.Minimized
Process.Start startInfo |> ignore
startInfo.Arguments <- "www.northwindtraders.com"
Process.Start startInfo |> ignore
// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites
openApplication myFavoritesPath
openWithArguments ()
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
Комментарии
Используйте эту перегрузку для запуска ресурса процесса, указав его имя файла. Перегрузка связывает ресурс с новым Process объектом.
Это важно
Вызов этого метода с ненадежными данными является угрозой безопасности. Вызовите этот метод только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.
Замечание
Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и null возвращается.
Эта перегрузка позволяет запускать процесс без первого создания нового Process экземпляра. Перегрузка является альтернативой явным действиям по созданию нового Process экземпляра, настройке FileName члена StartInfo свойства и вызову Start экземпляра Process .
Вы можете запустить приложение ClickOnce, задав fileName параметр в расположение (например, веб-адрес), из которого изначально установлено приложение. Не запускайте приложение ClickOnce, указав его установленное расположение на жестком диске.
Запуск процесса с указанием его имени файла аналогичен вводу сведений в Run диалоговом окне меню Windows Start . Поэтому имя файла не требует представления исполняемого файла. Он может иметь любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, имя файла может иметь расширение .txt, если у вас есть текстовые файлы с редактором, например Блокнот, или у него может быть .doc, если вы связали .doc файлы с средством обработки слов, например Microsoft Word. Аналогично, так же, как Run диалоговое окно может принимать имя исполняемого файла с расширением .exe или без нее, расширение .exe необязательно в параметре fileName . Например, можно задать fileName для параметра значение "Notepad.exe" или "Блокнот".
Эта перегрузка не разрешает аргументы командной строки для процесса. Если необходимо указать один или несколько аргументов командной строки для процесса, используйте Process.Start(ProcessStartInfo) или Process.Start(String, String) перегрузки.
В отличие от других перегрузк, перегрузка Start , которая не имеет параметров, не static является членом. Используйте эту перегрузку, если вы уже создали Process экземпляр и указали сведения о запуске (включая имя файла), и вы хотите запустить ресурс процесса и связать его с существующим Process экземпляром. Используйте одну из static перегрузок, если вы хотите создать новый Process компонент, а не запустить процесс для существующего компонента. Эта перегрузка и перегрузка, не имеющие параметров, позволяют указать имя файла ресурса процесса для запуска.
Если в системе объявлена переменная пути с помощью кавычки, необходимо полностью указать этот путь при запуске любого процесса, найденного в этом расположении. В противном случае система не найдет путь. Например, если c:\mypath он не находится в пути, и вы добавляете его с помощью кавычки: path = %path%;"c:\mypath"при запуске необходимо полностью указать любой процесс c:\mypath .
Замечание
ASP.NET веб-страница и код управления сервером выполняется в контексте рабочего процесса ASP.NET на веб-сервере. Если вы используете Start метод на веб-странице ASP.NET или серверном элементе управления, новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.
Каждый раз, когда вы используете Start для запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.
Примечание о состояниях квартир в управляемых потоках необходимо здесь. Если UseShellExecute он находится true в свойстве компонента StartInfo процесса, убедитесь, что в приложении задана модель потоковой обработки, задав атрибут [STAThread] для main() метода. В противном случае управляемый unknown поток может находиться в состоянии или помещать его в MTA состояние, последняя из которых конфликтует с UseShellExecute тем, что является true. Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, когда приложение встречает такой метод, оно по умолчанию MTAимеет значение , и после установки состояние квартиры не может быть изменено. Однако при MTA управлении потоком вызывается исключение.
См. также раздел
Применяется к
Start(ProcessStartInfo)
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
Запускает ресурс процесса, указанный параметром, содержащим сведения о запуске процесса (например, имя файла процесса для запуска) и связывает ресурс с новым Process компонентом.
public:
static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
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);
public static System.Diagnostics.Process Start(System.Diagnostics.ProcessStartInfo startInfo);
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
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
Public Shared Function Start (startInfo As ProcessStartInfo) As Process
Параметры
- startInfo
- ProcessStartInfo
Содержит ProcessStartInfo сведения, используемые для запуска процесса, включая имя файла и все аргументы командной строки.
Возвращаемое значение
Новое Process , связанное с ресурсом процесса, или null если ресурс процесса не запущен. Обратите внимание, что новый процесс, запущенный вместе с уже запущенными экземплярами одного процесса, будет независимым от других. Кроме того, Start может возвращать ненулевой процесс со своим HasExited свойством, которым уже задано trueзначение. В этом случае запущенный процесс, возможно, активировал существующий экземпляр самого себя, а затем завершился.
- Атрибуты
Исключения
Имя файла не указано в свойстве startInfo параметра FileName .
–или–
Свойство UseShellExecutestartInfo параметра имеет значениеtrue, а RedirectStandardInputRedirectStandardOutputтакже свойство true, или RedirectStandardError свойство .
–или–
UseShellExecute Свойство startInfo параметра имеет значениеtrue, а UserName свойство не null является или пустым, или Password свойство не nullявляется.
Параметр startInfo имеет значение null.
Объект процесса уже удален.
При открытии связанного файла произошла ошибка.
–или–
Не удалось найти файл, указанный в startInfo свойстве параметра FileName .
–или–
Сумма длины аргументов и длина полного пути к процессу превышает 2080. Сообщение об ошибке, связанное с этим исключением, может быть одним из следующих: "Область данных, переданная в системный вызов, слишком мала". Или "Доступ запрещен".
Метод не поддерживается в операционных системах без поддержки оболочки, например Nano Server (только .NET Core).
Примеры
В следующем примере сначала создается экземпляр Internet Explorer и отображается содержимое папки Избранного в браузере. Затем он запускает некоторые другие экземпляры Internet Explorer и отображает некоторые определенные страницы или сайты. Наконец, он запускает Internet Explorer с свернутым окном при переходе на определенный сайт.
Дополнительные примеры других способов использования этого метода см. в отдельных свойствах ProcessStartInfo класса.
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();
}
}
}
module processstartstatic
open System
open System.Diagnostics
// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
// Start Internet Explorer. Defaults to the home page.
Process.Start "IExplore.exe" |> ignore
// Display the contents of the favorites folder in the browser.
Process.Start myFavoritesPath |> ignore
// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore
// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
let startInfo = ProcessStartInfo "IExplore.exe"
startInfo.WindowStyle <- ProcessWindowStyle.Minimized
Process.Start startInfo |> ignore
startInfo.Arguments <- "www.northwindtraders.com"
Process.Start startInfo |> ignore
// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites
openApplication myFavoritesPath
openWithArguments ()
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
Комментарии
Используйте эту перегрузку для запуска ресурса процесса, указав ProcessStartInfo экземпляр. Перегрузка связывает ресурс с новым Process объектом.
Это важно
Вызов этого метода с ненадежными данными является угрозой безопасности. Вызовите этот метод только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.
Замечание
Если адрес исполняемого файла для запуска является URL-адресом, процесс не запускается и null возвращается.
Эта перегрузка позволяет запускать процесс без первого создания нового Process экземпляра. Использование этой перегрузки с ProcessStartInfo параметром является альтернативой явным шагам по созданию нового Process экземпляра, настройке его StartInfo свойств и вызову Start экземпляра Process .
Использование экземпляра ProcessStartInfo в качестве параметра позволяет вызывать Start с наибольшим контролем над тем, что передается в вызов для запуска процесса. Если необходимо передать только имя файла или имя файла и аргументы, не обязательно создать новый ProcessStartInfo экземпляр, хотя это вариант. Единственным Process.StartInfo свойством, которое должно быть задано FileName , является свойство. Свойство FileName не обязательно представляет исполняемый файл. Это может быть любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, FileName свойство может иметь расширение .txt, если у вас есть текстовые файлы с редактором, например Блокнот, или оно может иметь расширение .doc, если у вас есть связанные .doc файлы с средством обработки слов, например Microsoft Word.
Вы можете запустить приложение ClickOnce, указав расположение (например, веб-адрес), из которого изначально установлено приложение. Не запускайте приложение ClickOnce, указав его установленное расположение на жестком диске.
ProcessStartInfo.UserName Если заданы свойства StartInfoProcessStartInfo.Password экземпляра, вызывается неуправляемая CreateProcessWithLogonW функция, которая запускает процесс в новом окне, даже если ProcessStartInfo.CreateNoWindow значение свойства имеет true значение или ProcessStartInfo.WindowStyle значение ProcessWindowStyle.Hiddenсвойства.
ProcessStartInfo.Domain Если свойство имеет значениеnull, ProcessStartInfo.UserName свойство должно быть в формате имени участника-пользователя,DNS_domain_nameпользователя@.
В отличие от других перегрузк, перегрузка Start , которая не имеет параметров, не static является членом. Используйте эту перегрузку, если вы уже создали Process экземпляр и указали сведения о запуске (включая имя файла), и вы хотите запустить ресурс процесса и связать его с существующим Process экземпляром. Используйте одну из static перегрузок, если вы хотите создать новый Process компонент, а не запустить процесс для существующего компонента. Эта перегрузка и перегрузка, не имеющие параметров, позволяют указать сведения о запуске ресурса процесса с помощью экземпляра ProcessStartInfo .
Если в системе объявлена переменная пути с помощью кавычки, необходимо полностью указать этот путь при запуске любого процесса, найденного в этом расположении. В противном случае система не найдет путь. Например, если c:\mypath он не находится в пути, и вы добавляете его с помощью кавычки: path = %path%;"c:\mypath"при запуске необходимо полностью указать любой процесс c:\mypath .
Замечание
ASP.NET веб-страница и код управления сервером выполняется в контексте рабочего процесса ASP.NET на веб-сервере. Если вы используете Start метод на веб-странице ASP.NET или серверном элементе управления, новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.
Каждый раз, когда вы используете Start для запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.
Примечание о состояниях квартир в управляемых потоках необходимо здесь. Если UseShellExecute параметр находится true в параметре startInfo , убедитесь, что в приложении настроена модель потоков, задав атрибут [STAThread] в методе main() . В противном случае управляемый unknown поток может находиться в состоянии или помещать его в MTA состояние, последняя из которых конфликтует с UseShellExecute тем, что является true. Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, когда приложение встречает такой метод, оно по умолчанию MTAимеет значение , и после установки состояние квартиры не может быть изменено. Однако при MTA управлении потоком вызывается исключение.
См. также раздел
Применяется к
Start()
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
public:
bool Start();
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start();
public bool Start();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start();
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
Public Function Start () As Boolean
Возвращаемое значение
true Значение , если запущен ресурс процесса; false Если новый ресурс процесса не запущен (например, если существующий процесс повторно используется).
- Атрибуты
Исключения
Имя файла не указано в компоненте ProcessStartInfo.
–или–
Элемент UseShellExecuteStartInfo свойства находится true в режиме RedirectStandardInput, RedirectStandardOutputили RedirectStandardError имеет значение true.
Произошла ошибка при открытии связанного файла.
Объект процесса уже удален.
Метод не поддерживается в операционных системах без поддержки оболочки, например Nano Server (только .NET Core).
Примеры
В следующем примере для запуска процесса используется экземпляр Process класса.
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);
}
}
}
}
open System.Diagnostics
try
use 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() |> ignore
// 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.
with e ->
printfn $"{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
Комментарии
Используйте эту перегрузку, чтобы запустить ресурс процесса и связать его с текущим Process компонентом. Возвращаемое значение true указывает, что был запущен новый ресурс процесса. Если ресурс процесса, FileName указанный StartInfo членом свойства, уже запущен на компьютере, не запускается дополнительный ресурс процесса. Вместо этого ресурс запущенного процесса повторно используется и false возвращается.
Вы можете запустить приложение ClickOnce, указав расположение (например, веб-адрес), из которого изначально установлено приложение. Не запускайте приложение ClickOnce, указав его установленное расположение на жестком диске.
Это важно
Использование экземпляра этого типа с ненадежными данными является угрозой безопасности. Используйте этот объект только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.
Замечание
Если вы используете Visual Studio, эта перегрузка Start метода является той, которую вы вставляете в код после перетаскивания Process компонента в конструктор.
Properties Используйте окно, чтобы развернуть StartInfo категорию и записать соответствующее значение в FileName свойство. Изменения будут отображаться в процедуре формы InitializeComponent .
Эта перегрузка Start не является методом static . Его необходимо вызвать из экземпляра Process класса. Перед вызовом Startнеобходимо сначала указать StartInfo сведения о свойстве для этого Process экземпляра, так как эта информация используется для определения ресурса процесса для запуска.
Другие перегрузки Start метода являются static элементами. Перед вызовом этих перегрузок метода не требуется создавать экземпляр Process компонента. Вместо этого можно вызвать StartProcess сам класс и создать новый Process компонент, если процесс был запущен. Или возвращается, null если процесс был повторно использован. Ресурс процесса автоматически связывается с новым Process компонентом, возвращаемым методом Start .
Элементы StartInfo можно использовать для дублирования функциональных возможностей диалогового Run окна меню Windows Start . Все, что можно ввести в командную строку, можно запустить, задав соответствующие значения в свойстве StartInfo . Единственным StartInfo свойством, которое должно быть задано FileName , является свойство. Свойство FileName не должно быть исполняемым файлом. Это может быть любой тип файла, для которого расширение было связано с приложением, установленным в системе. Например, FileName свойство может иметь расширение .txt, если у вас есть текстовые файлы с редактором, например Блокнот, или оно может иметь расширение .doc, если у вас есть связанные .doc файлы с средством обработки слов, например Microsoft Word.
В командной строке можно указать действия для определенных типов файлов. Например, можно распечатать документы или изменить текстовые файлы. Укажите эти действия с помощью Verb элемента StartInfo свойства. Для других типов файлов можно указать аргументы командной строки при запуске файла из диалогового Run окна. Например, можно передать URL-адрес в качестве аргумента, если вы указываете браузер в качестве аргумента FileName. Эти аргументы можно указать в элементе StartInfoArguments свойства.
Если в системе объявлена переменная пути с помощью кавычки, необходимо полностью указать этот путь при запуске любого процесса, найденного в этом расположении. В противном случае система не найдет путь. Например, если c:\mypath он не находится в пути, и вы добавляете его с помощью кавычки: path = %path%;"c:\mypath"при запуске необходимо полностью указать любой процесс c:\mypath .
Замечание
ASP.NET веб-страница и код управления сервером выполняется в контексте рабочего процесса ASP.NET на веб-сервере. Если вы используете Start метод на веб-странице ASP.NET или серверном элементе управления, новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя.
Каждый раз, когда вы используете Start для запуска процесса, может потребоваться закрыть его или вы рискуете потерять системные ресурсы. Закрытие процессов с помощью CloseMainWindow или Kill. Вы можете проверить, был ли процесс уже закрыт с помощью его HasExited свойства.
Примечание о состояниях квартир в управляемых потоках необходимо здесь. Если UseShellExecute он находится true в свойстве компонента StartInfo процесса, убедитесь, что в приложении задана модель потоковой обработки, задав атрибут [STAThread] для main() метода. В противном случае управляемый unknown поток может находиться в состоянии или помещать его в MTA состояние, последняя из которых конфликтует с UseShellExecute тем, что является true. Некоторые методы требуют, чтобы состояние квартиры не было unknown. Если состояние не задано явным образом, когда приложение встречает такой метод, оно по умолчанию MTAимеет значение , и после установки состояние квартиры не может быть изменено. Однако при MTA управлении потоком вызывается исключение.
См. также раздел
Применяется к
Start(String, IEnumerable<String>)
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
- Исходный код:
- Process.cs
Запускает ресурс процесса, указав имя приложения и набор аргументов командной строки.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start(string fileName, System.Collections.Generic.IEnumerable<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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
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
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process
Параметры
- fileName
- String
Имя документа или файла приложения, выполняемого в процессе.
- arguments
- IEnumerable<String>
Аргументы командной строки, которые необходимо передать при запуске процесса.
Возвращаемое значение
Новое Process , связанное с ресурсом процесса, или null если ресурс процесса не запущен.
- Атрибуты
Комментарии
При необходимости каждый аргумент будет автоматически экранирован.
Это важно
Вызов этого метода с ненадежными данными является угрозой безопасности. Вызовите этот метод только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.