前提・実現したいこと
https://dobon.net/vb/dotnet/process/getprocesses.html
このサイトを参考にプロセスから
プロセスid,プロセス名,タイトル名,パスを取得しようと考えていましたが,
それができません.ご教授お願い致します.
発生している問題・エラーメッセージ
元々,上記のサイトを参考にさせてもらいながら
GetProcessesメソッドを使ってプロセスから情報を取得しようと考えていました.
しかし,Win32Exceptonとエラーがでてしまうため,WMIのWin32_Processクラスを使用しようと考えました.
そして,大体の情報は取得できたのですが,肝心のタイトル名(GetProcessesメソッドでいうMainWindowTitle)が取得できません.
該当のソースコード
C#
1 private void getPro_Load(object sender, EventArgs e) 2 { 3 dataTable.Columns.Add("pid", typeof(int)); 4 dataTable.Columns.Add("プロセス名", typeof(string)); 5 dataTable.Columns.Add("タイトル名", typeof(string)); 6 dataTable.Columns.Add("パス", typeof(string)); 7 DataRow row; 8 9 System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_Process"); 10 System.Management.ManagementObjectCollection moc = mc.GetInstances(); 11 12 foreach(System.Management.ManagementObject mo in moc) 13 { 14 try 15 { 16 row = dataTable.NewRow(); 17 row["pid"] = mo["ProcessId"]; 18 row["プロセス名"] = mo["Name"]; 19 row["タイトル名"] = mo["status"]; 20 row["パス"] = mo["ExecutablePath"]; 21 dataTable.Rows.Add(row); 22 } 23 catch(Exception ex) 24 { 25 Console.WriteLine("エラーやよー"+ex.Message); 26 } 27 finally 28 { 29 mo.Dispose(); 30 } 31 } 32 moc.Dispose(); 33 mc.Dispose(); 34 35/* 36 //System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcesses(); 37 var processes = Process.GetProcesses(); 38 39 //foreach(System.Diagnostics.Process p in ps) 40 foreach(var process in processes) 41 { 42 try 43 { 44 row = dataTable.NewRow(); 45 row["pid"] = process.Id; 46 47 row["プロセス名"] = process.ProcessName; 48 // row["タイトル名"] = p.MainModule.ModuleName; 49 row["タイトル名"] = process.MainWindowTitle; 50 // row["パス"] = p.MainModule.FileName; 51 row["パス"] = process.MainModule.FileName; 52 dataTable.Rows.Add(row); 53 } 54 catch(Exception ex) 55 { 56 Console.WriteLine(ex.Message); 57 } 58 } 59*/ 60 dataGridView1.DataSource = dataTable; 61 }
試したこと
下記サイトを確認してMainWindowTitleに対応するようなものを探してみました.
https://docs.microsoft.com/ja-jp/windows/win32/cimwin32prov/win32-process
補足情報(FW/ツールのバージョンなど)
Windows 10 Home 20H2
VisualStudioVersion = 16.0.31624.102
C#
.NET framework 4.7.2
回答1件
あなたの回答
tips
プレビュー