|
■No21829 (えるも さん) に返信
> 起動しているすべてのアプリ名とウィンドウのファイル名の取得の
> やり方をご存知の方がいればよろしくお願いします。
アプリによってファイルの扱いは異なるので、完全な方法は無いと思います。
たとえば Excel で xls ファイルを開くと、閉じるまでファイルはロックされていますが、
メモ帳の場合、txt ファイルを開いてもロックされませんよね。(開いたらすぐに閉じられている)
起動時のコマンドライン パラメータ程度で良ければ、下記のようにして得られますけれども。
// using System.Management
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Clear();
listView1.Columns.Add("Caption", 100);
listView1.Columns.Add("Application", 100);
listView1.Columns.Add("Command", 300);
listView1.FullRowSelect = true;
string query = @"SELECT * FROM Win32_Process";
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
using (ManagementObjectCollection list = searcher.Get())
{
foreach (ManagementObject o in list)
{
string cap = (string)o.GetPropertyValue("Caption");
string app = (string)o.GetPropertyValue("ExecutablePath");
string cmd = (string)o.GetPropertyValue("CommandLine");
listView1.Items.Add(cap).SubItems.AddRange(new string[] { app, cmd });
}
}
}
|