Как запустить процесс, например, запустить URL-адрес, когда пользователь нажмет кнопку?
Как начать процесс с С#?
Ответ 1
Как было предложено Мэттом Хэмилтоном, быстрый подход, когда вы ограничены в управлении процессом, заключается в использовании статического метода Start в классе System.Diagnostics.Process...
using System.Diagnostics;
...
Process.Start("process.exe");
Альтернативой является использование экземпляра класса Process. Это позволяет значительно контролировать процесс, включая планирование, тип окна, в котором он будет работать, и, что наиболее полезно для меня, возможность дождаться завершения процесса.
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.
Этот метод позволяет гораздо больше контроля, чем я уже упоминал.
Ответ 2
Вы можете использовать метод System.Diagnostics.Process.Start для запуска процесса. Вы даже можете передать URL как строку, и он начнет использовать браузер по умолчанию.
Ответ 3
Как говорит Мэтт, используйте Process.Start.
Вы можете передать URL-адрес или документ. Они будут запускаться зарегистрированным приложением.
Пример:
Process.Start("Test.Txt");
Это запустит Notepad.exe с загруженным Text.Txt.
Ответ 4
Я использовал следующее в своей собственной программе.
Process.Start("http://www.google.com/etc/etc/test.txt")
Это немного базовый, но он выполняет эту работу для меня.
Ответ 5
Используйте класс Process. В документации MSDN приведен пример использования.
Ответ 6
Этот синтаксис можно использовать для запуска любого приложения:
System.Diagnostics.Process.Start("Example.exe");
И то же самое для URL. Просто напишите свой URL-адрес между этим ()
.
Пример:
System.Diagnostics.Process.Start("http://www.google.com");
Ответ 7
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe");
Process.Start(new ProcessStartInfo(path));
Ответ 8
Объявите это
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);
И поместите это внутри своей функции (обратите внимание, что "checkInstalled" не является обязательным, но если вы его используете, вы должны его реализовать)
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);
}
}
}
ПРИМЕЧАНИЕ. Я не уверен, что это работает, когда работает более одного экземпляра .exe.
Ответ 9
Включите using System.Diagnostics;
.
И затем назовите это Process.Start("Paste your URL string here!");
Попробуйте что-то вроде этого:
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);
}
}
}
Обратите внимание, что это пример страницы ASP.NET в качестве примера. Вы должны попробовать и импровизировать немного.
Ответ 10
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
Ответ 11
Чтобы запустить Microsoft Word, используйте этот код:
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
Для получения дополнительных пояснений ознакомьтесь с этой ссылкой.