HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0921
Mottsu一般ユーザ権限で "HKEY_LOCAL_MACHINE" は読み込めない?2解決


Mottsu

リンク

2009/9/21(Mon) 16:23:31|NO.27852

はじめまして、Mottsuといいます。

sysinfo(16) より詳しい情報を取得したくて、HKEY_LOCAL_MACHINE 配下の情報に目をとめました。
Administrator権限では実行できますが、一般ユーザ権限では「RegKey(CPU) でエラー」が出てしまいます。
「HKEY_LOCAL_MACHINE 配下は一般ユーザでは書込み不可」という情報は見つけたのですが、読み込みすら出来ないのは、こちらの設定ミス(コーディングミス)でしょうか。


#include "hspext.as" #const HKEY_LOCAL_MACHINE 1 sdim RetMoji,256 ; ; CentralProcessor を指定 regkey HKEY_LOCAL_MACHINE,"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", 0 if stat !=0 { dialog "RegKey(CentralProcessor) でエラー",1 end } ; ProcessorNameString を習得 getreg RetMoji,"ProcessorNameString",1,256 if stat !=0 { dialog "GetReg(ProcessorNameString) でエラー。",1 end } mes RetMoji ; stop

同様に OS の SP 情報などもHKEY_LOCAL_MACHINE 配下から取得したいのですが、
一般ユーザ権限でできる良い手を知っていたら、ご指導願います。



この記事に返信する


inovia

リンク

2009/9/21(Mon) 17:36:29|NO.27855

OpenHSPのソースコードを覗いたところ、
RegOpenKeyExにKEY_ALL_ACCESS(読み書き)を指定してました。
http://dev.onionsoft.net/trac/browser/trunk/plugins/win32/Hspext/Hspext.cpp

これが制限ユーザーでエラーになる原因かと思います。

http://yokohama.cool.ne.jp/chokuto/urawaza/registry.html
を参考にHSP側で処理すれば問題ないはずです。



Mottsu

リンク

2009/9/21(Mon) 18:12:35|NO.27856

inovia さん、早速の RES ありがとうございます。

> RegOpenKeyExにKEY_ALL_ACCESS(読み書き)を指定してました。

102行目の a=RegOpenKeyEx( k, (char *)p2, 0, KEY_ALL_ACCESS, &hKey);
って所ですね。
KEY_ALL_ACCESS だから I/Oモードで開いているのが原因ということですか。
これって近い将来直るのでしょうか?


> http://yokohama.cool.ne.jp/chokuto/urawaza/registry.html
> を参考にHSP側で処理すれば問題ないはずです。

あ、ここのHP、質問する直前に見ていました。「レジストリから読み取る」以降のところですよね。今のところは、Win32APIを直接叩くしか方法はなさそうですね。

ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.