• ベストアンサー

windowsVISTAを使用しています。

windowsVISTAを使用しています。 http://msdn.microsoft.com/en-us/library/aa394542(VS.85).aspx このWMIを使用したVBSを作り、デュアルモニタのシリアルを二つとも習得したいのですが、 どのように構文を書けばいいのかさっぱりで・・・・ どなたかご教授ください。 XPでは使用できないみたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

環境が無いのがもどかしい、、、 >短い構文ではシリアル取得は出来ませんでした ってことは、#1の10550Monitor Serial Number.zipのサンプルは取得できたってことですね? Process_Other_Displays という関数が関係するかも知れません。 レジストリを読むところで、デュアルの処理をしているのかな? おまけに、こういった履歴もありましたので載せておきます。 http://okwave.jp/qa/q4265007.html WmiMonitorIDについては、環境が無いためこちらからの的確なアドバイスはできません。 http://msdn.microsoft.com/en-us/library/Aa394542 http://social.technet.microsoft.com/Forums/en/configmgrinventory/thread/cf223ca9-f05b-4eca-85be-e3b486d25f2e という解説からすると、、、 \root\cimv2 が \root\wmi となって、SQL文が select * from WmiMonitorID となるようなことぐらいしかわかりません。 ところでこのクラスでデュアルモニタの取得ができるって書いてありました? 想像の中ですが、結局最初に示したサンプルの「Process_Other_Displays」関数のようにレジストリを読みに行く処理になりそうな気が、、、 う~環境が欲しい^^; うまく行かないときは、うまくいっていないと伝えてくれると、環境のある人から的確なアドバイスをしてくれるかもですよ~

mugifujiko
質問者

お礼

とりあえずXPからのVBSで乗り切りました。 長い間放置してもうしわけございません。 本当にお知恵を貸していただき、私に足りないものは根本的なVBSへの理解だと いうことがわかりました。一生懸命勉強してきます。 ありがとう、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3

失礼しました。 WMIですね。。。 Dim WMI Dim info Dim l_prp Set WMI = GetObject("winmgmts:\\.\root\CIMV2") For Each info In WMI.ExecQuery("SELECT * FROM Win32_DesktopMonitor") Dim l_strBuff l_strBuff = "" For Each l_prp In info.Properties_ l_strBuff = l_strBuff & l_prp.Name & "=" & l_prp.Value & Chr(10) Next MsgBox l_strBuff MsgBox ("プロパティには、こういうアクセスもできる→" & vbTab & info.PNPDeviceID) Next 最近シリアル取得が流行中なのかな? 似たような質問がありました。 http://okwave.jp/qa/q5885125.html

mugifujiko
質問者

補足

ありがとうございます。 なぜか短い構文ではシリアル取得は出来ませんでした。 例えばWin32_BIOSの場合、 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS",,48) For Each objItem in colItems と始められますが、 WmiMonitorIDではどのように書けばいいのか・・・・

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

確かに長いですね。。。 でも要約しちゃうと、以下のような感じです。 これでデュアルモニタまで拾えるかはわかりませんが、、、 Imports System.Management '要:参照設定[System.Management] Module Module1   Sub Main()     Dim l_objQry As New ObjectQuery("SELECT * FROM Win32_DesktopMonitor")     Dim l_Scope As New ManagementScope("\\.\root\cimv2")     Dim l_mng As New ManagementObjectSearcher(l_Scope, l_objQry)     For Each info As ManagementObject In l_mng.Get()       Dim l_strBuff As String = ""       For Each l_prp As PropertyData In info.Properties         l_strBuff &= String.Format("{0}:={1}", l_prp.Name, l_prp.Value) & vbCrLf       Next       MsgBox(l_strBuff)     Next   End Sub End Module

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

Vista持ってないので、WmiMonitorIDが使える環境がないのですが、、、 WmiMonitorIDを使うのが必須ですか? 下のページはもう既にご覧になられたかも知れませんが、、、、 http://q.hatena.ne.jp/1259751587 からリンクが張られているページの一番下の方にある 10550Monitor Serial Number.zip これは試されましたか? 必須であれば、すいません。 この発言を読み飛ばしてください。

mugifujiko
質問者

補足

そちらのリンクは以前参考にさせていただきました。 そのVBSでもシリアルの取得はできるのですが、 何ぶん構文が長すぎて短くできないかなと思い、wmimonitorIDを 使ってみようと思った次第でございます。 既存のポインティングデバイスを参照する構文をいじったりしてみましたが、 さっぱりで・・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • WMIでファイル/フォルダの監査の取得について・・

    Windows2000 Serverで ファイルまたはフォルダの監査の設定状況を 取得したいのですが、WMIでどう書けばよいのか 困っております。 http://support.microsoft.com/default.aspx?scid=kb;ja;300549 関数はあるようなのですが、 この関数をどう利用すれば良いのかわからず 大変困っております。 http://207.46.248.109/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_securitysettingauditing.asp どなたか・・・ご教授下さい。 よろしくお願い致します。

  • If FolderItem.type == "JPEG Image" Then

    「フォルダ内の JPEG を表示する HTML」 を生成する VBS を作ってます。 タイトルの構文が間違ってるらしいのですが、解決法ご存知でしょうか? type プロパティのマニュアルはこちらです。 初心者な質問ですいません。。 http://msdn2.microsoft.com/en-us/library/ms723203.aspx If FolderItem.type == "JPEG Image" Then WriteLine "<img src=""" & FolderItem.Path & """>" End If

  • このページの下記にあるプログラムを実行したいです。

    このページの下記にあるプログラムを実行したいです。 wavファイルを音声認識させるコードです。 http://msdn.microsoft.com/en-us/library/ms717071(VS.85).aspx COM/C++ Developers で実行したいと思いますが、どこのプログラムに組み込めばいいのか、どこでwavファイルを指定すればいいのかがまったくわかりません。 あとC++にはない表現()の中に;などがあり、本当にC++なのかも疑問です。 アドバイスをお願いします

  • MSDNライブラリを VS2010に適用するには

    http://msdn.microsoft.com/ja-jp/library/ms123401.aspx 上記URLのライブラリをVisualStudio2010にインストールする方法が分かりません。 2008や2013向けのインストーラーは見つかるのですが、2010用が見つかりません。 MSDNライブラリをVS2010で使用する方法について、分かる方が居れば、ご教授お願いいたします。

  • VBScriptでWindows Updateの実行

    以下のURLで公開されているAPIを使用して、VBScriptでWindows Updateを行なうようにしたいと考えています。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wua_sdk/wua/windows_update_agent_object_model.asp このうち、BeginSearchという関数を使いたいのですが、使い方がよくわかりません。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wua_sdk/wua/iupdatesearcherbeginsearch.asp 上記URLに解説してある内容は、VBScript向けではないので、そのままでは、書き方がちょっと違うようです。 どなたか、VBScriptで、BeginSearchを使ったことある方はいませんか? ググっても、あまり参考になるところが見つからなかったので、お願いします。

  • prnportコマンドを使用するとエラーとなる

    DOSでバッチプログラムを作成しておりますが、以下の構文でprnportコマンドを使用すると、エラーとなります。 原因等お分かりになる方がいらっしゃいましたら、ご教示下さい。 構文 @echo off cscript c:\windows\system32\prnport.vbs -a -s test -r IP_192.168.100.100 pause >nul エラー内容 「WMI サービスに接続できません エラー 0x800706BA RPC サーバーを利用できません。」 環境 WindowsXP Pro SP2 よろしくお願いします。

  • このRunの意味が分かりません。

    このRunの意味が分かりません。 http://msdn.microsoft.com/en-us/library/documentformat.openxml.math.run(v=office.14).aspxを見ています。 このなかで、 This element specifies a run of math text. とあり、このHTMLの中の、「Run」が日本語いうなんなのか意味が不明です。 お分かりの方、ご教授いただけると助かります。

  • CoGetObjectでデータ無効エラー

    お世話になります。 WindowsVista上で、VisualStudio2005を使用して プログラムを作成しています。 UIPI機能とやらにより、 2つのアプリの一方だけを管理者権限で起動されると 特権レベルの低いプロセスから高いプロセスへの 通信が失敗してしまい、アプリ間の連携がうまくいっていません。 下記ページによるとCOMオブジェクトとして通信周りを分離すれば アプリ実行中にCOM部分だけ昇格させて通信可能ということなので これにて対応しようとしています。 <http://msdn.microsoft.com/ja-jp/windows/dd883236.aspx> InProcessでならCOMの作成、COM使用側の作成ともに経験があり、 下記ページを見ながらやってみたのですが、うまくいきません。 <http://msdn.microsoft.com/en-us/library/ms679687.aspx> CoGetObject関数でエラーとなっているのですが、戻り値が 0x8007000d(データが無効です) となっています。 「データが無効」というのは 引数が不正なのか、レジストリの設定が悪いのか、 COMに何か問題があるのか、全く分かりません。 MSDNでCoGetObjectを調べてみても そのような戻り値を返す可能性については言及がありません。 下記ページも参照しましたが得られるものはありませんでした。 <http://social.msdn.microsoft.com/Forums/ja/vcgeneralja/thread/e855fb25-ee88-4b8f-b57e-d65cc8aa5ef4> 「データが無効」というのはどの辺りを見直すべきなのか、 何かご存じの方は教えていただけないでしょうか。 以上です。よろしくお願いします。

  • アイコンの意味がわからない msdn

    例えば、 http://msdn.microsoft.com/ja-jp/library/microsoft.visualbasic.filesystem_members(v=vs.85).aspx のページなのですが、このアイコンの説明のページがないのですが、 どういう意味か説明しているページはありますか?

  • Office Onlineが英語で表示されます

    Excel2003を使用しています。 作業ウィンドウのOffice Onlineロゴをクリックすると英語のOffice Online(http://office.microsoft.com/en-us/default.aspx)に飛ばされます。 日本語のOffice Onlineを表示出来るようにするにはどうしたら良いか教えて下さい。