デバイス情報の取得方法 – プログラミング – Home

デバイス情報の取得方法
 
通知
すべてクリア

[解決済] デバイス情報の取得方法


ゆきなり
 ゆきなり
(@ゆきなり)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

VC++ 6.0のMFC.exeで以下のアプリを作成しています。

デバイスマネージャに表示されている文字列
(例えばネットワークアダプタの「1394 ネットアダプタ #3」や
「Realtek RTL8139/810x~」等の文字列のことです)
を取得し、コンボボックスにリスト表示させるプログラムを課題として
提示されました。

RegOpenKeyEx関数、RegQueryValueEx関数を用いてレジストリから
デバイス情報を取得しようとしたのですが、まずデバイス情報が
格納されているキーをOpenすることが出来ません。

参照したパスは
HKEY_LOCAL_MACHINEの「SYSTEM\\ControlSet001\\Enum~」なのですが、
Enum以下を指定するとエラーが返ってきてしまいます。

自分でテストキーを作成し、その文字列をリスト表示させる事は出来たので、
あとはレジストリからデバイス情報を取得し、表示させるだけなのですが…

お手数かと思いますが、皆様のお知恵を少し貸してください。


引用未解決
トピックタグ
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

まずはどんなエラーが返ってきているのかを確認するのが先決でしょう。
どういう状況でどういうエラーが起こっているのか、状況を把握するのが
最初の仕事です。
それ以降は状況によって対処が異なるので何ともいえません。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

俺の環境で見たら、ControlSet001 は Administrator にフルアクセスを許可している
が、Enum に書き込み権限を持つのは System だけなので、安直に KEY_ALL_ACCESS で開
いてたりすると失敗するかと。
ところで、見るべきは CurrentControlSet じゃないんだろうか。


返信引用
ゆきなり
 ゆきなり
(@ゆきなり)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

>ところで、見るべきは CurrentControlSet じゃないんだろうか。
そのとおりです。間違えていました。

>Enum に書き込み権限を持つのは System だけなので、安直に KEY_ALL_ACCESS で
>開いてたりすると失敗
KEY_READに変更したら問題なくレジストリを読むことが出来ました。
ありがとうございました!


返信引用
ゆきなり
 ゆきなり
(@ゆきなり)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

また何かあったらよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました