ユーザーがボタンをクリックしたときにURLを起動するなどのプロセスを開始するにはどうすればよいですか?
ユーザーがボタンをクリックしたときに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が起動します。
Win32Exception
(0x80004005)「この操作で指定されたファイルに関連付けられているアプリケーションはありません」
自分のプログラムで以下を使用しました。
Process.Start("http://www.google.com/etc/etc/test.txt")
それは少し基本的ですが、私のために仕事をします。
これを宣言する
[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);
}
Windowsで使用する場合
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.Start();
.Net Frameworkで機能しますが、Net Core 3.1でもUseShellExecuteをtrueに設定する必要があります
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();