184

ユーザーがボタンをクリックしたときに URL を起動するなど、プロセスを開始するにはどうすればよいですか?

4

13 に答える 13

247

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.

この方法では、私が述べたよりもはるかに多くの制御が可能です。

于 2008-10-08T08:42:04.730 に答える
27

System.Diagnostics.Process.Startメソッドを使用して、プロセスを開始できます。URL を文字列として渡すこともでき、デフォルトのブラウザが起動します。

于 2008-10-08T07:49:44.400 に答える
17

Matt が言うように、Process.Startを使用します。

URL またはドキュメントを渡すことができます。それらは、登録されたアプリケーションによって開始されます。

例:

Process.Start("Test.Txt");

これにより、Text.Txt が読み込まれた Notepad.exe が起動します。

于 2008-10-08T08:27:50.233 に答える
10

私は自分のプログラムで以下を使用しました。

Process.Start("http://www.google.com/etc/etc/test.txt")

それは少し基本的ですが、私にとってはうまくいきます。

于 2014-07-18T10:53:52.423 に答える
6
class ProcessStart
{
    static void Main(string[] args)
    {
        Process notePad = new Process();

        notePad.StartInfo.FileName   = "notepad.exe";
        notePad.StartInfo.Arguments = "ProcessStart.cs";

        notePad.Start();
    }
}
于 2016-05-26T11:35:31.317 に答える
6
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe");
Process.Start(new ProcessStartInfo(path));
于 2015-03-30T22:12:05.077 に答える
5

次の構文を使用して、任意のアプリケーションを実行できます。

System.Diagnostics.Process.Start("Example.exe");

URL の場合も同じです。この の間に URL を書くだけ()です。

例:

System.Diagnostics.Process.Start("http://www.google.com");
于 2015-06-30T14:11:00.637 に答える
5

Processクラスを使用します。MSDN のドキュメントには、使用方法の例があります。

于 2008-10-08T07:49:52.900 に答える
3

これを宣言する

[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 の複数のインスタンスが実行されているときにこれが機能するかどうかはわかりません。

于 2015-08-13T16:47:58.343 に答える
3

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();
于 2020-07-14T13:37:45.090 に答える
2

を含めます 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 ページであることに注意してください。ちょっと即興でやってみるといいよ。

于 2014-11-06T05:40:30.227 に答える