他のプログラムのコマンドライン引数を取得する方法は?

解決


プリス  2009-07-02 21:26:28  No: 146045  IP: 192.*.*.*

VB2008を利用しています。
他のプロセスがどのようなコマンドラインで起動したか取得する方法はありますか?
ProcessWalkerというソフトでプロセスの詳細で見られる実行パラメータの
コマンドラインの項目が見られるのですが、
自分が作るソフトでも同じように他プロセスの引数を表示したいと思っています。
VB.NETでも可能なら解説サイトでもいいので教えてください。

編集 削除
オショウ  2009-07-02 21:41:00  No: 146046  IP: 192.*.*.*

探せば出てくるもんですネ〜

http://d.hatena.ne.jp/espresso3389/20080723/1216815501

あったので、ちょっとビックリ〜

以上。参考まで・・・

編集 削除
魔界の仮面弁士  2009-07-02 21:45:17  No: 146047  IP: 192.*.*.*

Win32_Process クラスの CommandLine プロパティを使う事が出来ます。
http://msdn.microsoft.com/en-us/library/aa394372.aspx

System.Management.DLL を参照しておいてください。
(Windows 98 や Windows 2000 では取得できません。XP 以降が必要です。)

Public Function GetCommandLines() As String()
    Dim l As New List(Of String)()
    Using m As New Management.ManagementClass("Win32_Process"), ps = m.GetInstances()
        For Each p In ps
            Dim s = CStr(p("CommandLine"))
            If s <> "" Then
                l.Add(s)
            End If
            p.Dispose()
        Next
    End Using
    Return l.ToArray()
End Function

編集 削除
プリス  2009-07-02 21:55:13  No: 146048  IP: 192.*.*.*

お二方ありがとうございました。
望むような動作が出来そうです。

しかし、探して簡単に出てきましたか…
私の探し方が甘かったみたいで申し訳ないです。

編集 削除