プロセスを起動する
実行中の .NET アプリから別プロセス(アプリ)を起動するには Process.Start()
を使います。
以下メモ帳を起動する例です。using System.Diagnostics;
で名前空間を追加しておいてください。
C#
// using System.Diagnostics;
// メモ帳起動
Process.Start("notepad");
// メモ帳起動(c:\work\hoge.txt を開く)
Process.Start("notepad", @"c:\work\hoge.txt");
VB.NET
Process.Start("notepad")
Process.Start("notepad", "c:\work\hoge.txt")
Process.Start()
はいくつかの引数をとることができます。上の例では起動するファイル名とパラメータを指定するパターンです。
ProcessStartInfo
で指定することもできます。
C#
// using System.Diagnostics;
var processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = "notepad";
processStartInfo.Arguments = @"c:\work\hoge.txt";
Process.Start(processStartInfo);
VB.NET
Dim ProcessStartInfo = New ProcessStartInfo()
ProcessStartInfo.FileName = "notepad"
ProcessStartInfo.Arguments = "c:\work\hoge.txt"
Process.Start(ProcessStartInfo)
パスワードやユーザー名やいろいろほかにも指定できるみたいです。使いやすいほうを使えばよいかと
プロセスを強制的に停止する
プロセスを強制的に停止する方法です。タスクマネージャーからキルするのと同じなので通常終了とは違います。
プロセス名で起動中のプロセスを検索しそれらをループして順番に Kill していきます。
C#
// using System.Diagnostics;
// メモ帳のプロセスを強制終了する。
var processes = Process.GetProcessesByName("notepad");
foreach (var process in processes)
{
process.Kill();
}
VB.NET
Dim processes = Process.GetProcessesByName("notepad")
For Each process In processes
process.Kill()
Next
起動中のプロセス一覧を確認する
Process.GetProcesses()
ですべての起動中プロセスを取得できます。
以下起動中のプロセスの名前を列挙します。
C#
// using System.Diagnostics;
var processes = Process.GetProcesses();
foreach (var process in processes)
{
var name = process.ProcessName;
Console.WriteLine(name);
}
VB.NET
Dim processes = Process.GetProcesses()
For Each process In processes
Dim name = process.ProcessName
Console.WriteLine(name)
Next
以上。
コメントを書く