Process.Start Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Inicia un recurso de proceso y lo asocia a un componente Process.
Sobrecargas
Start(String, String, String, SecureString, String) |
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process. |
Start(String, String, SecureString, String) |
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process. |
Start(String, String) |
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, y asocia el recurso a un nuevo componente Process. |
Start(String) |
Inicia un recurso de proceso con la especificación del nombre de un documento o de un archivo de aplicación y asocia el recurso a un nuevo componente Process. |
Start(ProcessStartInfo) |
Inicia el recurso de proceso que se especifica mediante el parámetro que contiene la información de inicio del proceso (por ejemplo, el nombre de archivo del proceso que se va a iniciar) y asocia el recurso a un nuevo componente Process. |
Start() |
Inicia (o reutiliza) el recurso de proceso especificado por la propiedad StartInfo de este componente Process y lo asocia al componente. |
Start(String, IEnumerable<String>) |
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos. |
Start(String, String, String, SecureString, String)
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
Importante
Esta API no es conforme a CLS.
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de 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
Parámetros
- fileName
- String
Nombre de un archivo de aplicación que se va a ejecutar en el proceso.
- arguments
- String
Argumentos de línea de comandos que se van a pasar al iniciar el proceso.
- userName
- String
Nombre de usuario que se va a usar al iniciarse el proceso.
- password
- SecureString
SecureString que contiene la contraseña que se va a utilizar al iniciarse el proceso.
- domain
- String
Dominio que se va a utilizar al iniciarse el proceso.
Devoluciones
Nuevo Process que está asociado al recurso del proceso, o null
si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true
. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.
- Atributos
Excepciones
No se especificó ningún nombre de archivo.
Se produjo un error al abrir el archivo asociado.
o bien
No se encontró el archivo especificado en fileName
.
o bien
La suma de la longitud de los argumentos y la longitud de la ruta de acceso completa al archivo asociado supera 2080. El mensaje de error asociado a esta excepción puede ser uno de los siguientes: "El área de datos que se pasa a una llamada del sistema es demasiado pequeña" o "Acceso denegado".
El objeto del proceso ya se ha desechado.
Este miembro no es compatible en Linux o macOS (solo en .NET Core).
Comentarios
Use esta sobrecarga para crear un nuevo proceso y su subproceso principal especificando su nombre de archivo, argumentos de línea de comandos, nombre de usuario, contraseña y dominio. A continuación, el nuevo proceso ejecuta el archivo ejecutable especificado en el contexto de seguridad de las credenciales especificadas (usuario, dominio y contraseña).
Importante
Llamar a este método con datos que no son de confianza supone un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
Nota
Cuando el archivo ejecutable se encuentra en una unidad remota, debe identificar el recurso compartido de red mediante un identificador uniforme de recursos (URI), no una letra de unidad vinculada.
Nota
Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null
se devuelve.
Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer las FileNamepropiedades , UserNameArguments, Password, y Domain de la StartInfo propiedad y llamar a Start para la Process instancia de .
De forma similar, de la misma manera que el cuadro de diálogo Ejecutar puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName
parámetro . Por ejemplo, puede establecer el fileName
parámetro en "Notepad.exe" o "Bloc de notas". Si el fileName
parámetro representa un archivo ejecutable, el arguments
parámetro podría representar un archivo en el que actuar, como el archivo de texto de Notepad.exe myfile.txt
.
Nota
El nombre de archivo debe representar un archivo ejecutable en las Start sobrecargas que tienen userName
parámetros , password
y domain
.
Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .
Se aplica a
Start(String, String, SecureString, String)
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
Importante
Esta API no es conforme a CLS.
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de 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
Parámetros
- fileName
- String
Nombre de un archivo de aplicación que se va a ejecutar en el proceso.
- userName
- String
Nombre de usuario que se va a usar al iniciarse el proceso.
- password
- SecureString
SecureString que contiene la contraseña que se va a utilizar al iniciarse el proceso.
- domain
- String
Dominio que se va a utilizar al iniciarse el proceso.
Devoluciones
Nuevo Process que está asociado al recurso del proceso, o null
si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true
. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.
- Atributos
Excepciones
No se especificó ningún nombre de archivo.
Se produjo un error al abrir el archivo asociado.
o bien
No se encontró el archivo especificado en fileName
.
El objeto del proceso ya se ha desechado.
Este miembro no es compatible en Linux o macOS (solo en .NET Core).
Ejemplos
En el ejemplo de código siguiente se muestra el uso de esta sobrecarga para iniciar un archivo ejecutable y también se muestra el inicio de un Win32Exception objeto cuando se intenta iniciar una aplicación asociada a un archivo no ejecutable.
// 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
Comentarios
Use esta sobrecarga para crear un nuevo proceso y su subproceso principal especificando su nombre de archivo, nombre de usuario, contraseña y dominio. A continuación, el nuevo proceso ejecuta el archivo ejecutable especificado en el contexto de seguridad de las credenciales especificadas (usuario, dominio y contraseña).
Importante
Llamar a este método con datos que no son de confianza supone un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
Nota
Cuando el archivo ejecutable se encuentra en una unidad remota, debe identificar el recurso compartido de red mediante un identificador uniforme de recursos (URI), no una letra de unidad vinculada.
Nota
Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null
se devuelve.
Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer las FileNamepropiedades , UserNamePassword, y Domain de la StartInfo propiedad y llamar a Start para la Process instancia de .
De forma similar, de la misma manera que el cuadro de diálogo Ejecutar puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName
parámetro . Por ejemplo, puede establecer el fileName
parámetro en "Notepad.exe" o "Bloc de notas". Si el fileName
parámetro representa un archivo ejecutable, el arguments
parámetro podría representar un archivo en el que actuar, como el archivo de texto de Notepad.exe myfile.txt
.
Nota
El nombre de archivo debe representar un archivo ejecutable en las Start sobrecargas que tienen userName
parámetros , password
y domain
.
Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .
Se aplica a
Start(String, String)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, y asocia el recurso a un nuevo componente Process.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process
Parámetros
- fileName
- String
Nombre de un archivo de aplicación que se va a ejecutar en el proceso.
- arguments
- String
Argumentos de línea de comandos que se van a pasar al iniciar el proceso.
Devoluciones
Nuevo Process que está asociado al recurso del proceso, o null
si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true
. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.
- Atributos
Excepciones
El parámetro fileName
o arguments
es null
.
Se produjo un error al abrir el archivo asociado.
o bien
No se encontró el archivo especificado en fileName
.
o bien
La suma de la longitud de los argumentos y la longitud de la ruta de acceso completa al proceso supera 2080. El mensaje de error asociado a esta excepción puede ser uno de los siguientes: "El área de datos pasada a una llamada del sistema es demasiado pequeña" o "Acceso denegado".
El objeto del proceso ya se ha desechado.
La variable de entorno PATH tiene una cadena que contiene comillas.
Ejemplos
En el ejemplo siguiente se genera primero una instancia de Internet Explorer y se muestra el contenido de la carpeta Favoritos en el explorador. A continuación, inicia algunas otras instancias de Internet Explorer y muestra algunas páginas o sitios específicos. Por último, inicia Internet Explorer con la ventana minimizada mientras navega a un sitio específico.
#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
Comentarios
Use esta sobrecarga para iniciar un recurso de proceso especificando su nombre de archivo y argumentos de línea de comandos. La sobrecarga asocia el recurso a un nuevo Process objeto .
Importante
Llamar a este método con datos que no son de confianza supone un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
Nota
Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null
se devuelve.
Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer los FileName miembros y Arguments de la StartInfo propiedad y llamar Start a para la Process instancia.
Iniciar un proceso especificando su nombre de archivo y argumentos es similar a escribir el nombre de archivo y los argumentos de la línea de comandos en el Run
cuadro de diálogo del menú De Windows Start
. Por lo tanto, el nombre de archivo no necesita representar un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, el nombre de archivo puede tener una extensión .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener un .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word. De forma similar, de la misma manera que el Run
cuadro de diálogo puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName
parámetro . Por ejemplo, puede establecer el fileName
parámetro en "Notepad.exe" o "Bloc de notas". Si el fileName
parámetro representa un archivo ejecutable, el parámetro podría representar un archivo sobre el arguments
que actuar, como el archivo de texto en Notepad.exe myfile.txt
. Si el fileName
parámetro representa un archivo de comando (.cmd), el arguments
parámetro debe incluir un argumento "/c
" o "/k
" para especificar si la ventana de comandos sale o permanece después de la finalización.
A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es miembro static
. Use esa sobrecarga cuando ya haya creado una Process instancia y haya especificado información de inicio (incluido el nombre de archivo) y desee iniciar un recurso de proceso y asociarlo a la instancia existente Process . Use una de las static
sobrecargas cuando quiera crear un nuevo Process componente en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros le permiten especificar el nombre de archivo del recurso de proceso para iniciar y los argumentos de la línea de comandos que se van a pasar.
Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar completamente esa ruta de acceso al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath
no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath"
, debe calificar completamente cualquier proceso en c:\mypath
al iniciarlo.
Nota
ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en una página web o un control de servidor de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.
Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o arriesgarse a perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .
Aquí es necesario tener en cuenta los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se encuentra true
en la propiedad del componente de StartInfo proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread]
en el main()
método . De lo contrario, un subproceso administrado puede estar en un unknown
estado o colocarlo, el último de los cuales entra en MTA
conflicto con UseShellExecute ser true
. Algunos métodos requieren que el estado del apartamento no sea unknown
. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTA
y, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA
hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.
Consulte también
Se aplica a
Start(String)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Inicia un recurso de proceso con la especificación del nombre de un documento o de un archivo de aplicación y asocia el recurso a un nuevo componente Process.
public:
static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process
Parámetros
- fileName
- String
Nombre de un archivo de documento o aplicación que se va a ejecutar en el proceso.
Devoluciones
Nuevo Process que está asociado al recurso del proceso, o null
si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true
. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.
- Atributos
Excepciones
Se produjo un error al abrir el archivo asociado.
o bien
No se encontró el archivo especificado en fileName
.
El objeto del proceso ya se ha desechado.
La variable de entorno PATH tiene una cadena que contiene comillas.
Ejemplos
En el ejemplo siguiente se genera primero una instancia de Internet Explorer y se muestra el contenido de la carpeta Favoritos en el explorador. A continuación, inicia algunas otras instancias de Internet Explorer y muestra algunas páginas o sitios específicos. Por último, inicia Internet Explorer con la ventana minimizada mientras navega a un sitio específico.
#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
Comentarios
Use esta sobrecarga para iniciar un recurso de proceso especificando su nombre de archivo. La sobrecarga asocia el recurso a un nuevo Process objeto .
Importante
Llamar a este método con datos que no son de confianza supone un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
Nota
Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null
se devuelve.
Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer el FileName miembro de la StartInfo propiedad y llamar Start a para la Process instancia.
Puede iniciar una aplicación ClickOnce estableciendo el fileName
parámetro en la ubicación (por ejemplo, una dirección web) desde la que instaló originalmente la aplicación. No inicie una aplicación ClickOnce especificando su ubicación instalada en el disco duro.
Iniciar un proceso especificando su nombre de archivo es similar a escribir la información en el Run
cuadro de diálogo del menú de Windows Start
. Por lo tanto, el nombre de archivo no necesita representar un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, el nombre de archivo puede tener una extensión .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener un .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word. De forma similar, de la misma manera que el Run
cuadro de diálogo puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName
parámetro . Por ejemplo, puede establecer el fileName
parámetro en "Notepad.exe" o "Bloc de notas".
Esta sobrecarga no permite argumentos de línea de comandos para el proceso. Si necesita especificar uno o varios argumentos de línea de comandos para el proceso, use las Process.Start(ProcessStartInfo) sobrecargas o Process.Start(String, String) .
A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es miembro static
. Use esa sobrecarga cuando ya haya creado una Process instancia y haya especificado información de inicio (incluido el nombre de archivo) y desee iniciar un recurso de proceso y asociarlo a la instancia existente Process . Use una de las static
sobrecargas cuando quiera crear un nuevo Process componente en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros permiten especificar el nombre de archivo del recurso de proceso que se va a iniciar.
Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar completamente esa ruta de acceso al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath
no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath"
, debe calificar completamente cualquier proceso en c:\mypath
al iniciarlo.
Nota
ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en una página web o un control de servidor de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.
Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o arriesgarse a perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .
Aquí es necesario tener en cuenta los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se encuentra true
en la propiedad del componente de StartInfo proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread]
en el main()
método . De lo contrario, un subproceso administrado puede estar en un unknown
estado o colocarlo, el último de los cuales entra en MTA
conflicto con UseShellExecute ser true
. Algunos métodos requieren que el estado del apartamento no sea unknown
. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTA
y, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA
hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.
Consulte también
Se aplica a
Start(ProcessStartInfo)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Inicia el recurso de proceso que se especifica mediante el parámetro que contiene la información de inicio del proceso (por ejemplo, el nombre de archivo del proceso que se va a iniciar) y asocia el recurso a un nuevo componente Process.
public:
static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process Start (System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process
Parámetros
- startInfo
- ProcessStartInfo
ProcessStartInfo que contiene la información que se usa para iniciar el proceso, incluidos el nombre de archivo y los argumentos de línea de comandos.
Devoluciones
Nuevo Process que está asociado al recurso del proceso, o null
si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true
. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.
- Atributos
Excepciones
No se especificó ningún nombre de archivo en la propiedad FileName del parámetro startInfo
.
o bien
La propiedad UseShellExecute del parámetro startInfo
es true
y las propiedades RedirectStandardInput, RedirectStandardOutput o RedirectStandardError también son true
.
o bien
La propiedad UseShellExecute del parámetro startInfo
es true
y la propiedad UserName no es null
o está vacía, o la propiedad Password no es null
.
El parámetro startInfo
es null
.
El objeto del proceso ya se ha desechado.
Se produjo un error al abrir el archivo asociado.
o bien
El archivo especificado en la propiedad FileName del parámetro startInfo
no se encontró.
o bien
La suma de la longitud de los argumentos y la longitud de la ruta de acceso completa al proceso supera 2080. El mensaje de error asociado a esta excepción puede ser uno de los siguientes: "El área de datos pasada a una llamada del sistema es demasiado pequeña" o "Acceso denegado".
Método que no se admite en sistemas operativos sin la compatibilidad de shell, como Nano Server (solo en .NET Core).
Ejemplos
En el ejemplo siguiente se genera primero una instancia de Internet Explorer y se muestra el contenido de la carpeta Favoritos en el explorador. A continuación, inicia algunas otras instancias de Internet Explorer y muestra algunas páginas o sitios específicos. Por último, inicia Internet Explorer con la ventana minimizada mientras navega a un sitio específico.
Para obtener ejemplos adicionales de otros usos de este método, consulte las propiedades individuales de la ProcessStartInfo clase .
#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
Comentarios
Use esta sobrecarga para iniciar un recurso de proceso especificando una ProcessStartInfo instancia. La sobrecarga asocia el recurso a un nuevo Process objeto .
Importante
Llamar a este método con datos que no son de confianza supone un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
Nota
Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null
se devuelve.
Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. El uso de esta sobrecarga con un ProcessStartInfo parámetro es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer sus StartInfo propiedades y llamar Start a para la Process instancia.
El uso de una ProcessStartInfo instancia como parámetro le permite llamar Start con el mayor control sobre lo que se pasa a la llamada para iniciar el proceso. Si solo necesita pasar un nombre de archivo o un nombre de archivo y argumentos, no es necesario crear una nueva ProcessStartInfo instancia, aunque es una opción. La única Process.StartInfo propiedad que se debe establecer es la FileName propiedad . La FileName propiedad no necesita representar un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, la FileName propiedad puede tener una extensión de .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener una extensión de .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word.
Puede iniciar una aplicación ClickOnce especificando la ubicación (por ejemplo, una dirección web) desde la que instaló originalmente la aplicación. No inicie una aplicación ClickOnce especificando su ubicación instalada en el disco duro.
Si se establecen las ProcessStartInfo.UserName propiedades y ProcessStartInfo.Password de la StartInfo instancia, se llama a la función no administrada CreateProcessWithLogonW
, que inicia el proceso en una nueva ventana incluso si el ProcessStartInfo.CreateNoWindow valor de propiedad es true
o el valor de propiedad ProcessStartInfo.WindowStyle es ProcessWindowStyle.Hidden. Si la ProcessStartInfo.Domain propiedad es null
, la ProcessStartInfo.UserName propiedad debe estar en formato UPN, el usuario@DNS_domain_name.
A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es miembro static
. Use esa sobrecarga cuando ya haya creado una Process instancia y haya especificado información de inicio (incluido el nombre de archivo) y desee iniciar un recurso de proceso y asociarlo a la instancia existente Process . Use una de las static
sobrecargas cuando quiera crear un nuevo Process componente en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros permiten especificar la información de inicio del recurso de proceso mediante una ProcessStartInfo instancia de .
Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar completamente esa ruta de acceso al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath
no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath"
, debe calificar completamente cualquier proceso en c:\mypath
al iniciarlo.
Nota
ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en una página web o un control de servidor de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.
Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o arriesgarse a perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .
Aquí es necesario tener en cuenta los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute esté true
en el startInfo
parámetro , asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread]
en el main()
método . De lo contrario, un subproceso administrado puede estar en un unknown
estado o colocarlo, el último de los cuales entra en MTA
conflicto con UseShellExecute ser true
. Algunos métodos requieren que el estado del apartamento no sea unknown
. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTA
y, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA
hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.
Consulte también
Se aplica a
Start()
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- 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
Devoluciones
Es true
si se inicia un recurso de proceso; es false
si no se inicia ningún recurso de proceso nuevo (por ejemplo, si se vuelve a usar un recurso existente).
- Atributos
Excepciones
No se especificó ningún nombre de archivo en StartInfo del componente Process.
o bien
El miembro UseShellExecute de la propiedad StartInfo es true
mientras RedirectStandardInput, RedirectStandardOutputo RedirectStandardError es true
.
Se produjo un error al abrir el archivo asociado.
El objeto del proceso ya se ha desechado.
Método que no se admite en sistemas operativos sin la compatibilidad de shell, como Nano Server (solo en .NET Core).
Ejemplos
En el ejemplo siguiente se usa una instancia de la Process clase para iniciar un proceso.
#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
Comentarios
Use esta sobrecarga para iniciar un recurso de proceso y asociarlo al componente actual Process . El valor true
devuelto indica que se inició un nuevo recurso de proceso. Si el recurso de proceso especificado por el FileName miembro de la StartInfo propiedad ya se está ejecutando en el equipo, no se inicia ningún recurso de proceso adicional. En su lugar, se reutiliza el recurso de proceso en ejecución y false
se devuelve.
Puede iniciar una aplicación ClickOnce especificando la ubicación (por ejemplo, una dirección web) desde la que instaló originalmente la aplicación. No inicie una aplicación ClickOnce especificando su ubicación instalada en el disco duro.
Importante
Usar una instancia de este objeto con datos que no son de confianza supone un riesgo de seguridad. Utilice este objeto solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
Nota
Si usa Visual Studio, esta sobrecarga del método es la que inserta en el Start código después de arrastrar un Process componente al diseñador. Use la Properties
ventana para expandir la StartInfo
categoría y escribir el valor adecuado en la FileName
propiedad . Los cambios aparecerán en el procedimiento del InitializeComponent
formulario.
Esta sobrecarga de Start no es un static
método . Debe llamarlo desde una instancia de la Process clase . Antes de llamar a Start, primero debe especificar StartInfo información de propiedad para esta Process instancia, ya que esa información se usa para determinar el recurso de proceso que se va a iniciar.
Las demás sobrecargas del Start método son static
miembros. No es necesario crear una instancia del Process componente antes de llamar a esas sobrecargas del método . En su lugar, puede llamar a Start la Process propia clase y se crea un nuevo Process componente si se inició el proceso. O bien, null
se devuelve si se ha reutilizado un proceso. El recurso de proceso se asocia automáticamente al nuevo Process componente devuelto por el Start método .
Los StartInfo miembros se pueden usar para duplicar la funcionalidad del cuadro de Run
diálogo del menú De Windows Start
. Cualquier cosa que se pueda escribir en una línea de comandos se puede iniciar estableciendo los valores adecuados en la StartInfo propiedad . La única StartInfo propiedad que se debe establecer es la FileName propiedad . La FileName propiedad no tiene que ser un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, la FileName propiedad puede tener una extensión de .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener una extensión de .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word.
En la línea de comandos, puede especificar las acciones que se deben realizar para determinados tipos de archivos. Por ejemplo, puede imprimir documentos o editar archivos de texto. Especifique estas acciones mediante el Verb miembro de la StartInfo propiedad . Para otros tipos de archivos, puede especificar argumentos de línea de comandos al iniciar el archivo desde el Run
cuadro de diálogo. Por ejemplo, puede pasar una dirección URL como argumento si especifica el explorador como FileName. Estos argumentos se pueden especificar en el miembro de Arguments la StartInfo propiedad.
Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar completamente esa ruta de acceso al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath
no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath"
, debe calificar completamente cualquier proceso en c:\mypath
al iniciarlo.
Nota
ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en una página web o un control de servidor de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.
Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o arriesgarse a perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .
Aquí es necesario tener en cuenta los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se encuentra true
en la propiedad del componente de StartInfo proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread]
en el main()
método . De lo contrario, un subproceso administrado puede estar en un unknown
estado o colocarlo, el último de los cuales entra en MTA
conflicto con UseShellExecute ser true
. Algunos métodos requieren que el estado del apartamento no sea unknown
. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTA
y, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA
hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.
Consulte también
Se aplica a
Start(String, IEnumerable<String>)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos.
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
Parámetros
- fileName
- String
Nombre de un archivo de documento o aplicación que se va a ejecutar en el proceso.
- arguments
- IEnumerable<String>
Argumentos de línea de comandos que se van a pasar al iniciar el proceso.
Devoluciones
Nuevo Process que está asociado al recurso del proceso, o null
si no se inicia ningún recurso de proceso.
- Atributos
Comentarios
Cada argumento se escapará automáticamente si es necesario.
Importante
Llamar a este método con datos que no son de confianza supone un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.