Comment démarrer un processus, tel que le lancement d'une URL lorsque l'utilisateur clique sur un bouton?
Comme suggéré par Matt Hamilton, l’approche rapide dans laquelle vous avez un contrôle limité sur le processus consiste à utiliser la méthode statique Start sur la classe System.Diagnostics.Process ...
using System.Diagnostics;
...
Process.Start("process.exe");
L'alternative consiste à utiliser une instance de la classe Process. Cela permet beaucoup plus de contrôle sur le processus, y compris la planification, le type de la fenêtre dans laquelle elle s'exécutera et, ce qui est le plus utile pour moi, la possibilité d'attendre la fin du processus.
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.
Cette méthode permet beaucoup plus de contrôle que ce que j'ai mentionné.
Vous pouvez utiliser la méthode System.Diagnostics.Process.Start pour démarrer un processus. Vous pouvez même transmettre une URL en tant que chaîne et le navigateur par défaut sera lancé.
Comme Matt le dit, utilisez Process.Start .
Vous pouvez transmettre une URL ou un document. Ils seront lancés par l'application enregistrée.
Exemple:
Process.Start("Test.Txt");
Cela va démarrer Notepad.exe avec Text.Txt chargé.
J'ai utilisé ce qui suit dans mon propre programme.
Process.Start("http://www.google.com/etc/etc/test.txt")
C'est un peu basique, mais ça fait le travail pour moi.
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe");
Process.Start(new ProcessStartInfo(path));
Vous pouvez utiliser cette syntaxe pour exécuter n'importe quelle application:
System.Diagnostics.Process.Start("Example.exe");
Et le même pour une URL. Il suffit d'écrire votre URL entre ce ()
.
Exemple:
System.Diagnostics.Process.Start("http://www.google.com");
Utilisez la classe Process . La documentation MSDN contient un exemple d'utilisation.
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
Déclarer ceci
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);
Et mettez ceci dans votre fonction (notez que "checkInstalled" est optionnel, mais si vous l'utilisez, vous devez l'implémenter)
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);
}
}
}
NOTE: Je ne suis pas sûr si cela fonctionne lorsque plusieurs instances du fichier .exe sont en cours d'exécution.
Incluez le using System.Diagnostics;
.
Et puis appelez ceci Process.Start("Paste your URL string here!");
Essayez quelque chose comme ça:
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);
}
}
}
Veuillez noter qu'il s'agit d'un exemple de page ASP.NET. Vous devriez essayer d'improviser un peu.
Pour démarrer Microsoft Word par exemple, utilisez ce code:
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
Pour plus d'explications, consultez ce lien .