remarks cref c# .net windows process process.start

cref - ¿Cómo comienzo un proceso desde C#?



remarks c# (11)

¿Cómo comienzo un proceso, como el inicio de una URL cuando el usuario hace clic en un botón?


Declara esto

[DllImport("user32")] private static extern bool SetForegroundWindow(IntPtr hwnd); [DllImport("user32")] private static extern bool ShowWindowAsync(IntPtr hwnd, int a);

Y ponga esto dentro de su función (tenga en cuenta que "checkInstalled" es opcional, pero si lo va a usar, debe implementarlo)

if (ckeckInstalled("example")) { int count = Process.GetProcessesByName("example").Count(); if (count < 1) Process.Start("example.exe"); else { var proc = Process.GetProcessesByName("example").FirstOrDefault(); if (proc != null && proc.MainWindowHandle != IntPtr.Zero) { SetForegroundWindow(proc.MainWindowHandle); ShowWindowAsync(proc.MainWindowHandle, 3); } } }

NOTA: No estoy seguro de si esto funciona cuando se está ejecutando más de una instancia de .exe.


Incluye el using System.Diagnostics; .

Y luego llame a este Process.Start("Paste your URL string here!");

Pruebe algo como esto:

using System.Web.UI; using System.Web.UI.WebControls; using System.Diagnostics; namespace btnproce { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string t ="Balotelli"; Process.Start("http://google.com/search?q=" + t); } } }

Tenga en cuenta que es una página de muestra ASP.NET como ejemplo. Deberías intentar improvisar un poco.


Para iniciar Microsoft Word, por ejemplo, use este código:

private void button1_Click(object sender, EventArgs e) { string ProgramName = "winword.exe"; Process.Start(ProgramName); }

Para obtener más explicaciones, consulte este enlace .


Puede usar esta sintaxis para ejecutar cualquier aplicación:

System.Diagnostics.Process.Start("Example.exe");

Y el mismo para una URL. Simplemente escriba su URL entre esto () .

Ejemplo:

System.Diagnostics.Process.Start("http://www.google.com");


Puede utilizar el método System.Diagnostics.Process.Start para iniciar un proceso. Incluso puede pasar una URL como una cadena e iniciará el navegador predeterminado.


Según lo sugerido por Matt Hamilton, el enfoque rápido donde tiene un control limitado sobre el proceso, es utilizar el método de inicio estático en la clase System.Diagnostics.Process ...

using System.Diagnostics; ... Process.Start("process.exe");

La alternativa es usar una instancia de la clase Process. Esto permite mucho más control sobre el proceso, incluida la programación, el tipo de ventana en la que se ejecutará y, lo que es más útil para mí, la capacidad de esperar a que finalice el proceso.

using System.Diagnostics; ... Process process = new Process(); // Configure the process using the StartInfo properties. process.StartInfo.FileName = "process.exe"; process.StartInfo.Arguments = "-n"; process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; process.Start(); process.WaitForExit();// Waits here for the process to exit.

Este método permite mucho más control de lo que he mencionado.


Tal como dice Matt, use System.Diagnostics.Process.Start .

Puede pasar una URL o un documento. Serán iniciados por la aplicación registrada.

Ejemplo:

Process.Start("Test.Txt");

Esto iniciará Notepad.exe con Text.Txt cargado.


Usé lo siguiente en mi propio programa.

Process.Start("http://www.google.com/etc/etc/test.txt")

Es un poco básico, pero hace el trabajo por mí.


Usa la clase de Process . La documentación de MSDN tiene un ejemplo de cómo usarlo.


class ProcessStart { static void Main(string[] args) { Process notePad = new Process(); notePad.StartInfo.FileName = "notepad.exe"; notePad.StartInfo.Arguments = "ProcessStart.cs"; notePad.Start(); } }


var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe"); Process.Start(new ProcessStartInfo(path));