例 6-6 のコードセグメントは、特定のシステム上のすべてのプロセスを表示します。この例では、enumInstances メソッドを使用して CIM_Process クラスのインスタンス名を取得します。このコードを Microsoft Windows 32 システムで実行すると、Windows 32 のプロセスが返されます。このコードを Solaris システムで実行すると、Solaris プロセスが返されます。
{ //ネームスペース cns を作成 CIMnameSpace cns = new CIMNameSpace; //CIM Object Manager 上で cns ネームスペースに接続 cc = new CIMClient(cns); /* CIM_Process クラスの CIM オブジェクトパスを CIM Object Manager に渡す (このクラスのインスタンスを取得する)。 */ CIMObjectPath op = new CIMObjectPath("CIM_Process"); /* CIM Object Manager が、オブジェクトパスのベクトル (CIM_Process クラスのインスタンス名) を返す。 */ Vector v = cc.enumInstances(op, true); /* インスタンスオブジェクトパスが入ったベクトルのサイズ分だけ繰り返す。 各オブジェクト名によって参照されるインスタンスを取得するには、 CIM Client の getInstance インタフェースを使用する。 */ for (int i=0; i < v.size(); i++) { // インスタンスを取得 CIMInstance ci = cc.getInstance(v.elementAt(i)); /* CIM_Process の各インスタンスのプロセス ID 文字列を 取得 */ CIMProperty cp = ci.getProperty("Handle"); } |