Bagaimana cara memulai proses, seperti meluncurkan URL ketika pengguna mengklik tombol?
Bagaimana cara memulai proses, seperti meluncurkan URL ketika pengguna mengklik tombol?
Jawaban:
Seperti yang disarankan oleh Matt Hamilton, pendekatan cepat di mana Anda memiliki kontrol terbatas atas proses, adalah dengan menggunakan metode Mulai statis pada System.Diagnostics. Kelas proses ...
using System.Diagnostics;
...
Process.Start("process.exe");
Alternatifnya adalah menggunakan turunan dari kelas Proses. Ini memungkinkan lebih banyak kontrol atas proses termasuk penjadwalan, jenis jendela yang akan dijalankan dan, yang paling berguna bagi saya, kemampuan untuk menunggu proses selesai.
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.
Metode ini memungkinkan kontrol jauh lebih banyak daripada yang saya sebutkan.
Anda dapat menggunakan metode System.Diagnostics.Process.Start untuk memulai proses. Anda bahkan dapat meneruskan URL sebagai string dan itu akan memulai peramban default.
Seperti yang Matt katakan, gunakan Process.Start .
Anda dapat mengirimkan URL, atau dokumen. Mereka akan dimulai oleh aplikasi terdaftar.
Contoh:
Process.Start("Test.Txt");
Ini akan memulai Notepad.exe dengan Text.Txt dimuat.
Win32Exception
(0x80004005) "Tidak ada aplikasi yang dikaitkan dengan file yang ditentukan untuk operasi ini"
Saya menggunakan yang berikut ini di program saya sendiri.
Process.Start("http://www.google.com/etc/etc/test.txt")
Ini agak mendasar, tetapi itu berhasil bagi saya.
Anda dapat menggunakan sintaks ini untuk menjalankan aplikasi apa pun:
System.Diagnostics.Process.Start("Example.exe");
Dan yang sama untuk URL. Cukup tulis URL Anda di antara ini ()
.
Contoh:
System.Diagnostics.Process.Start("http://www.google.com");
Gunakan kelas Proses . Dokumentasi MSDN memiliki contoh cara menggunakannya.
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
Nyatakan ini
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);
Dan letakkan ini di dalam fungsi Anda (perhatikan bahwa "checkInstalled" adalah opsional, tetapi jika Anda akan menggunakannya, Anda harus mengimplementasikannya)
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);
}
}
}
CATATAN: Saya tidak yakin apakah ini berfungsi ketika lebih dari satu instance dari .exe berjalan.
Sertakan using System.Diagnostics;
.
Dan kemudian panggil ini Process.Start("Paste your URL string here!");
Coba sesuatu seperti ini:
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);
}
}
}
Harap perhatikan bahwa ini adalah contoh halaman ASP.NET sebagai contoh. Anda harus mencoba dan berimprovisasi sedikit.
Untuk memulai Microsoft Word misalnya, gunakan kode ini:
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
Untuk penjelasan lebih lanjut, lihat tautan ini .
Jika menggunakan Windows
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.Start();
Bekerja untuk .Net Framework tetapi untuk Net core 3.1 juga perlu mengatur UseShellExecute menjadi true
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();