Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


60297 / 76732 ←次へ | 前へ→

【21075】Re:レジストリの変更
回答  ちゃっぴ  - 05/1/10(月) 19:40 -

引用なし
パスワード
   >>2の方法でやったほうがいいかもしれません。
>と、いわれてやろうと思ったのですが、
>うまく実行できないので、アドバイスお願いします

具体的にどこがわからないのでしょう?

とりあえず、Sampleを簡単に解説します。

Sub EnumPrinters()
  Dim objRegProv   As Object
  Dim strKeyPath   As String
  Dim vntValueNames  As Variant
  Dim vntValueTypes  As Variant
  Dim strValueName  As String
  Dim strValue    As String
  Dim i        As Long
  
  Const HKCU = &H80000001
  
  ' StdRegProvを取得
  Set objRegProv = _
    GetObject("winmgmts:\\.\root\default:StdRegProv")
  strKeyPath = _
    "Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts"

  ' strKeyPath以下のRegstry名を配列として、vntValueNamesに格納
  objRegProv.EnumValues HKCU, strKeyPath, _
    vntValueNames, vntValueTypes
  
  For i = 0 To UBound(vntValueNames)
    strValueName = vntValueNames(i)
    
    ' 文字列の値を取得
    objRegProv.GetStringValue HKCU, strKeyPath, _
      strValueName, strValue
    
    ' 出力  
    Debug.Print strValueName & " on " _
      & Split(strValue, ",", -1, 0)(1)
  Next i
End Sub

この方法では、まず、StdRegProv Class の Instance を
取得する必要があります。

  ' StdRegProvを取得
  Set objRegProv = _
    GetObject("winmgmts:\\.\root\default:StdRegProv")

まあ、呪文のようなものです。とりあえず、そのまま覚えてください。

詳しく知りたければ・・・
WMI スクリプト入門 : 第 1 部
http://www.microsoft.com/japan/msdn/columns/scripting/scripting06112002.asp


で、StdRegProv Class の Instance が出来たら、それに対して、
StdRegProv Class の Method を使用してやればいいわけです。

たとえば、文字列型の値を取得したい場合には、GetStringValue
文字列型の値を書き込みたい場合には、SetStringValueといった風に・・・

あとは、GetStringValue, SetStringValue の Link 先をたどって
Reference を参照してください。

0 hits

【20272】レジストリの変更 ランバダ 04/12/4(土) 2:08 質問
【20273】Re:レジストリの変更 ちゃっぴ 04/12/4(土) 9:23 回答
【20274】Re:レジストリの変更 ちゃっぴ 04/12/4(土) 9:30 発言
【21062】Re:レジストリの変更 りゃんわん 05/1/9(日) 14:36 質問
【21075】Re:レジストリの変更 ちゃっぴ 05/1/10(月) 19:40 回答
【20292】Re:レジストリの変更 Kein 04/12/4(土) 14:38 回答

60297 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free