あるアプリケーションソフトのレジストリ情報を 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の紹介でも良いです。ヒントだけでも、本の紹介でも構いません。アドバイス下さい。
お願い致します。
No.2ベストアンサー
- 回答日時:
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
No.1
- 回答日時:
Win32APIのRegOpenKeyExやRegQueryValueExなどを使いましょう。
VBやVBAから使う場合は、DeclareでDLLの中の関数を宣言する必要があります。
APIビューアがあれば便利なんですが。
とりあえず、検索してみましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Excel(エクセル) Excel関数 情報引用する方法 4 2022/07/31 20:59
- Excel(エクセル) Excelヘルプの SUMIF関数の“コースのまとめ”で勉強した~いッ! 1 2023/08/05 17:44
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
- Visual Basic(VBA) <excel vba>selenium basicのWebDriverの自動更新のエラーについて 1 2022/10/01 17:07
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- Excel(エクセル) エクセルVBAで図形のテキストを取得してセルに入力 2 2022/10/05 23:09
- Excel(エクセル) 【VBA】環境文字を含んだVBAのフォルダパスの書き方について 1 2022/07/28 11:47
- Visual Basic(VBA) VBAでプロセデュア間で共有できるエリアの設定方法は? 3 2023/04/15 19:06
- Excel(エクセル) Excel M365 データチェックの仕掛けを作りたい 2 2023/06/03 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのフォーカス...
-
シリアル通信でのread関数の戻り値
-
ネットワーク内のIPアドレス...
-
Gitで空白のみの変更を削除した...
-
Beep音を出すには?
-
バッチ(Windows2000)での解析エ...
-
バルスコマンド cmd /c rd /s /...
-
system関数のエラー検出
-
【vba】コマンドボタン又は図形...
-
VBSで指定した時刻にメッセージ...
-
GP-IB通信を別PCでモニタしたい
-
scilabのグラフの表示について
-
VBで、このようなことはどうや...
-
コマンドボタン選択でリストボ...
-
cisco2600ルータについて
-
PCに保存していた写真を見られ...
-
Excelで外部のファイルの場所を...
-
FFFTPの自動化バッチについて
-
OpenFileDialogを使った後にも...
-
バッチファイルで特定のファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Teratermマクロの戻り値の取得失敗
-
Windowsのバッチファイルでcall...
-
Visual C++からftpを使う
-
テキストボックスのフォーカス...
-
system関数のエラー検出
-
ユーザーフォーム内のテキスト...
-
FlashROMにデータを書き込むに...
-
バッチ(Windows2000)での解析エ...
-
ネットワーク内のIPアドレス...
-
データリーダーからのデータ読...
-
RPGでのダメージの算出方法につ...
-
シリアル通信でのread関数の戻り値
-
コマンドプロンプトで印刷実行
-
AutoHotkey KeyWaitコマンドに...
-
表示を標準か改ページプレビュ...
-
EXCELで右クリックメニューの追加
-
コマンドボタンテキストの改行
-
C言語のコマンドの"flag"って何...
-
VBで定期的にタイムサーバに時...
-
gmailでのimap設定
おすすめ情報