C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 42 を表示中)
■21841 / )  Re[1]: 起動しているアプリ名(ファイル名も)の取得のやりかた
□投稿者/ 魔界の仮面弁士 (782回)-(2008/07/10(Thu) 15:39:31)
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 });
        }
    }
}

返信 編集キー/


管理者用

- Child Tree -