Iniciar un proceso en C#
-
¿Qué es un Proceso en
C#
? -
Utilice
Process.Start
para iniciar un proceso enC#
-
Utilice
ProcessStartInfo
para iniciar un proceso enC#
-
Utilice
Process.GetProcesses
para iniciar un proceso enC#
-
Utilice
Process.GetProcessesByName
para iniciar un proceso enC#
-
Utilice
StandardOutput
para iniciar un proceso enC#
-
Use
Process.Kill
para detener un proceso enC#
Este artículo analizará numerosas formas de iniciar un proceso en C#.
¿Qué es un Proceso en C#
?
Un Proceso
permite a los desarrolladores acceder a procesos locales y remotos e iniciar y finalizar procesos del sistema local.
ProcessStartInfo
define una colección de valores utilizados cuando se inicia un proceso
. La clase Process
está en el espacio de nombres System.Diagnostics
.
Utilice Process.Start
para iniciar un proceso en C#
Sigue estos pasos para iniciar un proceso con Process.Start
.
Importe las bibliotecas a continuación.
using System;
using System.Diagnostics;
Cree la clase Main
, y dentro de la clase Main
, escriba este código para iniciar un proceso (especifique el programa, la URL o el archivo que desea iniciar).
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
Código fuente:
using System;
using System.Diagnostics;
class ProcesswithProcessStart {
public static void Main() {
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
Console.WriteLine("Done");
}
}
La función Start
se utiliza para iniciar el proceso. Obtendremos este resultado después de ejecutar la clase ProcesswithProcessStart
.
Utilice ProcessStartInfo
para iniciar un proceso en C#
Podemos ejecutar cualquier ejecutable. Sin embargo, es posible que se requieran atributos en ProcessStartInfo
.
Inicie un proceso utilizando el método ProcessStartInfo
siguiendo los pasos a continuación.
Importe las bibliotecas a continuación.
using System;
using System.Diagnostics;
El atributo StartInfo.FileName
especifica el programa o documento a ejecutar. Usaremos el programa Microsoft Word como ejemplo. Es un editor y escritor de texto básico.
process.StartInfo.FileName = "WINWORD.EXE";
El nombre del archivo se pasa a StartInfo.Arguments
como parámetro. Aquí lanzaremos un archivo de Word llamado process.docx
.
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
Código fuente:
using System;
using System.Diagnostics;
Process process = new Process();
process.StartInfo.FileName = "WINWORD.EXE";
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
process.Start();
Producción:
Utilice Process.GetProcesses
para iniciar un proceso en C#
El método Process.GetProcesses
genera una lista de nuevos componentes Process
vinculados a recursos de proceso existentes.
Importe las bibliotecas a continuación.
using System;
using System.Diagnostics;
Este código producirá una lista de todos los procesos.
Process[] LinkedProcesses = Process.GetProcesses();
Después de eso, obtenemos una matriz de procesos.
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
La función ReadKey()
mantendrá la pantalla.
Console.ReadKey();
Código fuente:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcesses();
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
Producción:
Utilice Process.GetProcessesByName
para iniciar un proceso en C#
El método Process.GetProcessesByName
genera una matriz de nuevos componentes de Process
y los correlaciona con los recursos de proceso existentes con el mismo nombre que el proceso proporcionado.
Importe las bibliotecas a continuación.
using System;
using System.Diagnostics;
Todos los procesos asociados con Internet Download Manager se generan en el ejemplo. Se generan sus ID y nombres de proceso.
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
Los usuarios obtienen la lista de procesos con el nombre IDM
.
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
Para acceder a todos los procesos devueltos por la función, utilizamos un bucle foreach
.
Se accede al ID de cada Proceso. Finalmente, mostramos el número total de procesos descubiertos.
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Código fuente:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
Producción:
Utilice StandardOutput
para iniciar un proceso en C#
La propiedad StandardOutput
devuelve una ruta que puede usarse para leer la salida basada en texto de la aplicación.
Podemos redirigir la salida del proceso estándar utilizando esta propiedad (disponible en ProcessStartInfo
). Podemos observar la salida de un programa de otro.
Importe las bibliotecas a continuación.
using System;
using System.Diagnostics;
using System.IO;
Especificaremos el nombre del proceso que deseamos generar aquí.
Prs.StartInfo.FileName = "ipconfig.exe";
Podemos redirigir los flujos de entrada, salida y error configurando UseShellExecute
en falso.
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
Este código iniciará el proceso utilizando la información que ha proporcionado.
Prs.Start();
Para la salida estándar, obtenemos el StreamReader
.
StreamReader sr = Prs.StandardOutput;
La función ReadToEnd()
se utiliza para leer todos los datos.
string dataoutput = sr.ReadToEnd();
ReadKey()
mantendrá la pantalla para mostrar la salida.
Console.ReadKey();
Código fuente:
using System;
using System.Diagnostics;
using System.IO;
class StandarOutput {
public static void Main() {
using (Process Prs = new Process()) {
Prs.StartInfo.FileName = "ipconfig.exe";
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
Prs.Start();
StreamReader sr = Prs.StandardOutput;
string dataoutput = sr.ReadToEnd();
Console.WriteLine(dataoutput);
Console.ReadKey();
}
}
}
Producción:
Use Process.Kill
para detener un proceso en C#
El siguiente ejemplo inicia un programa y luego lo termina después de unos segundos.
Importe las bibliotecas a continuación.
using System;
using System.Diagnostics;
using System.Threading;
Usando Thread.Sleep(5000)
, el proceso inicia el Bloc de notas y lo finaliza después de tres segundos.
Thread.Sleep(5000);
La función Kill()
se utiliza para terminar el proceso.
process.Kill();
Código fuente:
using System;
using System.Diagnostics;
using System.Threading;
class KillProcess {
public static void Main() {
Process process = Process.Start("notepad.exe");
Thread.Sleep(1000);
process.Kill();
}
}
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn