tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル他のプロセスのコマンドラインを取得する方法
記事No5683
投稿日: 2007/06/22(Fri) 11:29
投稿者みけ
他のプロセスのコマンドラインは、取得可能でしょうか?
もし可能なら、取得方法を教えてください。
よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: 他のプロセスのコマンドラインを取得する方法
記事No5686
投稿日: 2007/06/22(Fri) 17:42
投稿者魔界の仮面弁士
> 他のプロセスのコマンドラインは、取得可能でしょうか?
WinXP 以降が相手なら、こんな感じかな。

Imports System.Management
Public Class Form1
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        Dim L As New ListBox()
        L.Dock = DockStyle.Fill
        Controls.Add(L)
        Dim processes As New ManagementClass("Win32_Process")
        For Each proc As ManagementObject In processes.GetInstances()
            Dim commandLine As Object = proc("CommandLine")
            If TypeOf commandLine Is String Then
                L.Items.Add(commandLine)
            End If
        Next
    End Sub
End Class

[ツリー表示へ]
タイトルRe^2: 他のプロセスのコマンドラインを取得する方法
記事No5687
投稿日: 2007/06/22(Fri) 18:26
投稿者みけ
魔界の仮面弁士さん、早速レスいただきありがとうございます!!
申し訳ありません。
開発環境がWin2000、Framework Ver 1.1
であることを書いていませんでした。
Win2000でも試してみれば・・・と思い
まず System.Managementをインポートしようとしたのですが
コーディング時にManagement名前空間がない、というエラーが
出てしまいます。
これは、Win2000であるためなんでしょうか?

[ツリー表示へ]
タイトルRe^3: 他のプロセスのコマンドラインを取得する方法
記事No5688
投稿日: 2007/06/22(Fri) 19:26
投稿者花ちゃん
> まず System.Managementをインポートしようとしたのですが
> コーディング時にManagement名前空間がない、というエラーが

プロジェクト→参照の追加で System.Management を追加しましたか?

[ツリー表示へ]
タイトルRe^4: 他のプロセスのコマンドラインを取得する方法
記事No5689
投稿日: 2007/06/22(Fri) 20:48
投稿者みけ
花ちゃん、ご指摘ありがとうございます。
おっしゃるとおり追加していませんでした。
基本的なところが抜けており、お恥ずかしい限りです。

魔界の仮面弁士さん、教えていただいたコードを
Win2000で実行してみましたが、エラーが出ました。
WMIを少し調べてみたところ、CommandLineが使用できるのは
WinXP から なのですね。
とりあえず、教えていただいた方法でプロセス名を
取得できました。WMIとは何かも理解できていなかったので
とても勉強になりました。

[ツリー表示へ]
タイトルRe^5: 他のプロセスのコマンドラインを取得する方法
記事No5691
投稿日: 2007/06/22(Fri) 20:55
投稿者魔界の仮面弁士
> Win2000で実行してみましたが、エラーが出ました。
これなんてどうでしょう? 試してはいませんけど。
http://www.develop.com/technology/resourcedetail.aspx?id=ebf17b42-c3ee-47ee-8c53-73381e710c45


> WMIを少し調べてみたところ、CommandLineが使用できるのは
> WinXP から なのですね。
ですます。

> とりあえず、教えていただいた方法でプロセス名を
> 取得できました。WMIとは何かも理解できていなかったので
プロセス名を取得するだけなら、WMI を使う必要はないかも。

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    For Each P As Process In Process.GetProcesses()
      ListBox1.Items.Add(P.ProcessName)
    Next
  End Sub

[ツリー表示へ]
タイトルRe^4: 他のプロセスのコマンドラインを取得する方法
記事No5692
投稿日: 2007/06/23(Sat) 09:02
投稿者みけ
魔界の仮面弁士さん、お返事ありがとうございます。

ある特定のプロセス名のとき
コマンドラインを取得しようとしています。

教えていただいたリンク先の内容、英語なので
ゆっくり読んで 試してみます。

(すみません。レスのつけ方がずれてしまいました。)

[ツリー表示へ]