Delphi超初心者です。
レジストリからWindowsのProductIDを取ってきたいのですが、Administratorの権限がないと読み込めないのです。
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey(AppKey,False) then
begin
try
//ProductIdに入っている DWORDデータを取得
ID:=ReadString('ProductId');
except
Exit;
ソースはこんな感じなのですが・・・
ヘルプなどを見ても、権限の話はどこにも出てこないのでできるかと思ったのですが・・・
ご存知の方がいたら、教えて下さい。
よろしくお願いします。
初心者でも、達人でも、環境を書かないとコメントしようがありません。
Administrator権限が必要なOSは、NT, 2000, XPと、様々です。
ということで、ヒントだけ。
プログラムを書く人が、「この項目を読み込む」と考えてつくっても、OSは「管理者以外には書き込ませないぞ」とエラーを返すことがあります。
OSに、「この項目を読み込むだけで、書き込まないよ」と教えてあげればよいのです。
にしのさんのヒントで解決しました!
OpneKeyをOpenKeyReadOnlyにしたところ、動きました。
ありがとうございました。
OSなど環境も書かないといけないんですね。すみません。
OSによって違うという発想は全然ありませんでした。(汗)
プログラミング言語以外にも、勉強することたくさんありそうですね^^;;
ちなみに、環境はWindows NTです。
このプログラムを、95や98でも試してみたいと思います。
ツイート | ![]() |