Kullanıcı bir düğmeyi tıkladığında URL başlatmak gibi bir işlemi nasıl başlatırım?
Kullanıcı bir düğmeyi tıkladığında URL başlatmak gibi bir işlemi nasıl başlatırım?
Yanıtlar:
Matt Hamilton tarafından önerildiği gibi, süreç üzerinde sınırlı kontrole sahip olduğunuz hızlı yaklaşım, System.Diagnostics.Process sınıfında statik Start yöntemini kullanmaktır ...
using System.Diagnostics;
...
Process.Start("process.exe");
Alternatif olarak Process sınıfının bir örneğini kullanmaktır. Bu, zamanlama, içinde çalışacağı pencerenin türü ve benim için en yararlı olanı, sürecin bitmesini bekleme yeteneği dahil olmak üzere süreç üzerinde çok daha fazla kontrole izin verir.
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.
Bu yöntem bahsettiğimden çok daha fazla kontrole izin veriyor.
Bir işlemi başlatmak için System.Diagnostics.Process.Start yöntemini kullanabilirsiniz. Bir URL'yi dize olarak da aktarabilirsiniz ve varsayılan tarayıcıyı başlatacaktır.
Matt'in dediği gibi Process.Start'ı kullanın .
Bir URL veya belge iletebilirsiniz. Kayıtlı uygulama tarafından başlatılacaklardır.
Misal:
Process.Start("Test.Txt");
Bu, Notepad.exe'yi Text.Txt yüklü olarak başlatacaktır.
Win32Exception
(0x80004005) "Bu işlem için belirtilen dosyayla ilişkili uygulama yok"
Kendi programımda aşağıdakileri kullandım.
Process.Start("http://www.google.com/etc/etc/test.txt")
Biraz basit, ama bu işi benim için yapıyor.
Bu sözdizimini herhangi bir uygulamayı çalıştırmak için kullanabilirsiniz:
System.Diagnostics.Process.Start("Example.exe");
URL için de aynı. URL'nizi bunun arasına yazmanız yeterlidir ()
.
Misal:
System.Diagnostics.Process.Start("http://www.google.com");
Process sınıfını kullanın . MSDN belgelerinde bunun nasıl kullanılacağı ile ilgili bir örnek vardır.
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
Bunu beyan et
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);
Ve bunu işlevinizin içine koyun ("checkInstalled" öğesinin isteğe bağlı olduğunu unutmayın, ancak kullanırsanız, uygulamanız gerekir)
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);
}
}
}
Not: birden fazla .exe örneği çalışırken, bu çalışıp çalışmadığından emin değilim.
Ekleyin using System.Diagnostics;
.
Ve sonra buna Process.Start("Paste your URL string here!");
Bunun gibi bir şey deneyin:
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);
}
}
}
Lütfen örnek bir ASP.NET sayfası olduğunu unutmayın. Biraz denemelisin ve doğaçlama yapmalısın.
Örneğin Microsoft Word'ü başlatmak için şu kodu kullanın:
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
Daha fazla açıklama için bu bağlantıya göz atın .
Windows'ta kullanıyorsanız
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.Start();
Net Framework için çalışır, ancak Net core 3.1 için de UseShellExecute öğesini true değerine ayarlamanız gerekir
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();