ユーザーがボタンをクリックしたときにURLを起動するなど、プロセスを開始するにはどうすればよいですか?
Matt Hamiltonが示唆したように、プロセスの制御を制限している簡単なアプローチは、System.Diagnostics.Processクラスで静的なStartメソッドを使用することです...
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.
この方法は、私が言及したよりもはるかに多くの制御を可能にします。
System.Diagnostics.Process.Start メソッドを使用してプロセスを開始できます。 URLを文字列として渡すこともでき、デフォルトのブラウザが起動します。
Mattが言うように、 Process.Start を使用します。
URLまたはドキュメントを渡すことができます。登録されたアプリケーションによって開始されます。
例:
Process.Start("Test.Txt");
これにより、Text.Txtが読み込まれた状態でNotepad.exeが起動します。
私は自分のプログラムで以下を使用しました。
Process.Start("http://www.google.com/etc/etc/test.txt")
それは少し基本的ですが、それは私のために仕事をします。
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe");
Process.Start(new ProcessStartInfo(path));
次の構文を使用して、任意のアプリケーションを実行できます。
System.Diagnostics.Process.Start("Example.exe");
URLについても同じです。この()
の間にURLを書くだけです。
例:
System.Diagnostics.Process.Start("http://www.google.com");
Process クラスを使用します。 MSDNドキュメントには、使用方法の例があります。
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
これを宣言する
[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の複数のインスタンスが実行されているときにこれが機能するかどうかはわかりません。
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ページであることに注意してください。少し試してみてください。
Microsoft Word を開始するには、次のコードを使用します。
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
詳細については、 このリンク をご覧ください。