PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
17276 | 02/04/18 15:00:35 | RE(3):PB7.0: レジストリサブキーの削除について By JSD |
17275 | 02/04/18 15:00:33 | RE(2):PB7.0: レジストリサブキーの削除について By JSD |
17268 | 02/04/18 00:41:37 | RE(1):PB7.0: レジストリサブキーの削除について By Taka |
17257 | 02/04/15 11:07:58 | PB7.0: レジストリサブキーの削除について By JSD |
カテゴリ:スクリプトの記述
日付:2002年04月15日 11:07 発信者:JSD
題名:PB7.0: レジストリサブキーの削除について
こんにちわ いつも大変お世話になっております。
質問させてください。
レジストリキー操作に関してですが、サブキーの削除が思うようにいかなく
困っています。
【パス】
HKEY_LOCAL_MACHINE\\SOFTWARE\\TEST\\TEST1\\ORACLE\\ABCD
【値】
ABCDの直下のキーと値は
TEST_KEY = \"OK\"
というレジストリがあると過程します。
値の削除自体はできるのですが、ABCDの中身ではなく、ABCDそのものを削除したいのです。
こういった場合、PBのシステム関数ではできないので、APIを利用すると良いと思って
以下の処理をやっているのですがうまくいきません。
/**************** API ****************/
【宣言】
//レジストリキーのハンドルオープン
FUNCTION Long RegOpenKeyEx(ULong hKey, String lpSubKey, Long ulOption, Long samdesired, ref ULong
phkResult) Library \"advapi32.dll\" Alias For \"RegOpenKeyExA\"
//レジストリキーのハンドルクローズ
FUNCTION Long RegCloseKey(ULong hKey) Library \"advapi32.dll\"
//レジストリキーの削除
FUNCTION LONG RegDeleteKey(ULong hKey,String lpSubKey) Library \"advapi32.dll\" Alias
For \"RegDeleteKeyA\"
/********** 外部関数定数宣言 API **********/
constant Ulong HKEY_CLASSES_ROOT = 2147483648
constant Ulong HKEY_CURRENT_USER = 2147483649
constant Ulong HKEY_CURRENT_CONFIG = 2147483653
constant Ulong HKEY_DYN_DATA = 2147483654
constant Ulong HKEY_LOCAL_MACHINE = 2147483650
constant Ulong HKEY_USERS = 2147483651
constant Ulong ERROR_SUCCESS = 0
【処理】
long l_rtn
ulong hKey
l_rtn = RegOpenKeyEx(HKEY_LOCAL_MACHINE , \"SOFTWARE\\TEST\\TEST1\\ORACLE\\ABCD\",0,1, hKey)
l_rtn = RegDeleteKey(hKey,\"SOFTWARE\\TEST\\TEST1\\ORACLE\\ABCD\")
l_rtn = RegCloseKey(hKey)
使い方、書き方など間違っているのでしょうか?どうかアドバイスお願いします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.