-PR-
解決済み

VBAのレジストリについて、教えて下さい。

  • すぐに回答を!
  • 質問No.80210
  • 閲覧数501
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 40% (30/75)

あるアプリケーションソフトのレジストリ情報を VBA(Excel97 に付いてきた)にてGETしたいので"GetSetting関数"を使用すると
[HKEY_USERS]-[Default]-[Software]-[VB and VBA Program Settings] の下の情報しかGET出来ません。
欲しい情報は、例えば [HKEY_USERS]-[Default]-[Software]-[ODBC]-[ODBC.INI]-[Excel Files] の Driverの値です。
やはりDLLを作成するしか無いのでしょうか??
誰か教えて下さい。出来れば、簡単ならコマンドを記載orHPの紹介でも良いです。ヒントだけでも、本の紹介でも構いません。アドバイス下さい。
お願い致します。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル9

ベストアンサー率 25% (17/66)

GETしたい情報は 文字列?バイナリ?DWORD値?とりあえず、
文字列と想定して(勝手に)↓

Private Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKeyEx Lib "ADVAPI32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegQueryValueExstr Lib "ADVAPI32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByVal lpType As Long, ByVal lpDat As String, lpcbData As Long) As Long

Const HKEY_USERS = &H80000003
Const ERROR_SUCCESS = 0&


'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Sub Samp()

Dim A As String
Dim B As Long
Dim Name As String
Dim Rootkey As String
Dim Subkey As String
Dim C As Long
Dim D As Integer

Rootkey = HKEY_USERS
Subkey = ".Default\Software\ODBC\ODBC.INI\Excel Files"
Ret = RegOpenKeyEx(Rootkey, Subkey, 0, 1, C)
Name = "Driver"
A = String(250, Chr(0))
B = Len(A)
D = RegQueryValueExstr(C, Name, 0, 0, A, B)
If D = ERROR_SUCCESS Then
MsgBox A
Else
MsgBox "NG"
End If
Call RegCloseKey(C)
End Sub

で、取得出来ると思いますが・・・ただしExcel2000のVBAで動作確認です。
趣旨が間違っていればごめんなさい m(_ _)m
お礼コメント
chau

お礼率 40% (30/75)

おりがとうございます。m(__)m Excel97のVBAでも動作いたしました。助かりました。本当に、ありがとうございました。
投稿日時 - 2001-05-25 13:34:46
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル8

ベストアンサー率 46% (22/47)

Win32APIのRegOpenKeyExやRegQueryValueExなどを使いましょう。
VBやVBAから使う場合は、DeclareでDLLの中の関数を宣言する必要があります。
APIビューアがあれば便利なんですが。
とりあえず、検索してみましょう。


このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ