背景
業務で使用しているツールを自動化するために色々と試しました。その備忘録です。
・ツールを起動する
・ツールを終了する
・ツールが起動するか確認する
プロセスを起動する
//メモ帳を起動する
Process p = Process.Start("notepad.exe");
プロセスを終了させる
//ローカルコンピュータ上で実行されている"notepad"という名前の
//すべてのプロセスを取得
Process[] ps = Process.GetProcessesByName("notepad");
//配列から1つずつ取り出す
foreach (Process p in ps)
{
p.Kill();//プロセスを強制的に終了させる
}
起動中のプロセス一覧を取得する
using System.Diagnostics;
//ローカルコンピュータ上で実行されているすべてのプロセスを取得
Process[] ps = Process.GetProcesses();
//配列から1つずつ取り出す
foreach (Process p in ps)
{
try
{
tbMessage.Text += $"プロセス: {p.ProcessName} {p.Id} {p.MainModule.FileName}" + Environment.NewLine;
}
catch (Exception ex)
{
tbMessage.Text += $"エラー: {ex.Message}";
}
}
メモ帳が閉じない?
p.Close();
を使って「メモ帳を閉じる」ことが出来ると思っていましたが、期待する動作になりませんでした。
もう少しプロセスについて理解を深める必要がありそうです。
参考ページ