VBでコレをやる方法は検索で見つかりました。
- Programming Library - Visual Basic .NET掲示板 - 他のプログラムのコマンドライン引数を取得する方法は?
C#でのやり方が書いてなかったので書き換えてみました。 System.Managementの参照を追加して、
// Program.cs
using System;
using System.Collections.Generic;
using System.Management;
namespace ShowAllCommandLines
{
class Program
{
static void Main(string[] args)
{
string[] lines = GetCommandLines();
foreach (string line in lines)
Console.WriteLine(line);
//Console.ReadKey();
}
public static string[] GetCommandLines()
{
List<string> lines = new List<string>();
ManagementPath p = new ManagementPath("Win32_Process");
ManagementClass mc = new ManagementClass(p);
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject obj in moc)
{
object commandLineObj = obj["CommandLine"];
if(commandLineObj != null)
{
string caption = obj["Caption"].ToString();
string commandLine = commandLineObj.ToString();
lines.Add(caption + " : " + commandLine);
}
}
return lines.ToArray();
}
}
}
Management系クラスのリファレンスは読んでないし、パーミッションとかに関しても全く調べてません。 というわけで詳細不明。 とりあえずタスクマネージャーで自分のプロセスとして表示されるものについてはリストアップできるようです。