VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/01/17(Wed) 19:01
投稿者わんこ
Eメール
URL
タイトルRe^2: WMIの利用条件について

ご回答頂きありがとう御座居ます。

> For Each〜の部分で実行が止まってしまい、
>見た感じでは、For Each 部分に、処理を積み込みすぎだと思います。まずは、
> Set a = GetObject("winmgmts:")
> Set b = a.InstancesOf("Win32_Process")
> For Each c In b
>のように分割して、どの部分に問題があるのかを確認すべきかと。

先程修正して、

Set A = GetObject("winmgmts:{impersonationLevel=impersonate}")
Set B = A.InstancesOf("Win32_Process")
    
'実行中のプロセス情報を取得する
For Each C In B


のようにして実行させたのですが、NGでした。

>On Error トラップで、エラーが無視されている、とか…。
>いずれかのオブジェクトのインスタンス生成に長い時間がかかっている、とか…。
>.InstancesOf("Win32_Process") の件数が 0 件と看做されている、とか…。

誠に申し訳ありません。On Frror に入った際に以下のエラーが出力されておりました。
「ErrorCode:-2147221020,オートメーション エラーです。構文が無効です 」

構文に問題があるのでしょうか??

> あとは、環境面でチェックする項目として、
>  1) そもそも、WMI のサービスが起動しているか否か。
こちらは起動している事を確認致しました。

>  2) Win32_Process クラスは存在しているのか。
あります。参考までに↓
http://msdn2.microsoft.com/en-us/library/aa394372.aspx

>  3) 省略表記せず、名前空間まで明示指定した場合には動作するのか。
省略しない場合もNGです。上記サンプルの通り↑

>  4) GetObject からのシンタックスではなく、CreateObject から順に生成した場合はどうか。
> などでしょうか。(未経験ゆえ、具体的な確認方法まではアドバイスはできませんが…)
私もこの方法は分かりません。ちょっと調べます。

> > #VB6.0等が入っているPCだと正常に実行できます。
> これは、「(XP Proではなく) XPe に、VB6 開発環境を入れると動作した」という意味ですか?
入れるとというか、XPeにVB6.0が入っていたPCではOKでした。
ちょっと他のPCでも確認致します。

以上、宜しくお願い致します。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -