Come si avvia un processo, ad esempio l'avvio di un URL quando l'utente fa clic su un pulsante?
Come si avvia un processo, ad esempio l'avvio di un URL quando l'utente fa clic su un pulsante?
Risposte:
Come suggerito da Matt Hamilton, l'approccio rapido in cui si ha un controllo limitato sul processo, consiste nell'utilizzare il metodo Start statico nella classe System.Diagnostics.Process ...
using System.Diagnostics;
...
Process.Start("process.exe");
L'alternativa è utilizzare un'istanza della classe Process. Ciò consente un maggiore controllo sul processo, inclusa la pianificazione, il tipo di finestra in cui verrà eseguito e, utilmente per me, la possibilità di attendere il completamento del processo.
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.
Questo metodo consente un controllo molto maggiore di quello che ho menzionato.
È possibile utilizzare il metodo System.Diagnostics.Process.Start per avviare un processo. Puoi persino passare un URL come stringa e dare il via al browser predefinito.
Proprio come dice Matt, usa Process.Start .
Puoi passare un URL o un documento. Saranno avviati dall'applicazione registrata.
Esempio:
Process.Start("Test.Txt");
Ciò avvierà Notepad.exe con Text.Txt caricato.
Win32Exception
(0x80004005) "Nessuna applicazione associata al file specificato per questa operazione"
Ho usato quanto segue nel mio programma.
Process.Start("http://www.google.com/etc/etc/test.txt")
È un po 'semplice, ma fa il lavoro per me.
È possibile utilizzare questa sintassi per eseguire qualsiasi applicazione:
System.Diagnostics.Process.Start("Example.exe");
E lo stesso per un URL. Basta scrivere il tuo URL tra questo ()
.
Esempio:
System.Diagnostics.Process.Start("http://www.google.com");
Utilizzare la classe Process . La documentazione MSDN ha un esempio su come usarlo.
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
Dichiaralo
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);
E inseriscilo nella tua funzione (nota che "checkInstalled" è facoltativo, ma se lo utilizzerai, devi 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: non sono sicuro che funzioni quando sono in esecuzione più di un'istanza di .exe.
Includi il using System.Diagnostics;
.
E poi chiama questo Process.Start("Paste your URL string here!");
Prova qualcosa del genere:
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);
}
}
}
Si noti che è una pagina ASP.NET di esempio come esempio. Dovresti provare e improvvisare un po '.
Per avviare Microsoft Word, ad esempio, utilizzare questo codice:
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
Per ulteriori spiegazioni, consulta questo link .
Se si utilizza su Windows
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.Start();
Funziona con .Net Framework ma anche per Net core 3.1 è necessario impostare UseShellExecute su true
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();