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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
1229
makeレジストリのセクション削除について6解決


make

リンク

2007/12/29(Sat) 22:50:58|NO.12939

レジストリのセクション(文字列、バイナリ、Dword値)削除を調べていて、
さくらさんのmodule「stdlib110」を見つけたので実行してみましたがうまく作動しません

例としてHKEY_USERS\test01のキーにあるtest02というセクションの文字列を削除する場合
はどのように書けばいいんでしょうか?
(以下のように書いていてエラーがでます)

#include "sysval.as"
#include "gblconst.as"
#include "winapi32.as"

#ifdef __hsp30__
#ifndef __EXREGFILE__
#define __EXREGFILE__
#module

#deffunc zregdelval str prm1

sdim subkey,MAX_PATH
subkey = prm1 : if strlen(subkey)==0 : sdim subkey,0 : return -1
RegDeleteValue hkey,varptr(subkey)
sdim subkey,0
return stat

#global
#endif
#endif

regkey 2,"test01",0;HKEY_USERS
getreg hensu,"test02",1,
zregdelval hensu



この記事に返信する


eller

リンク

2007/12/30(Sun) 07:28:26|NO.12941

こんにちは、ellerです。
レジストリの削除はちょっと危ない操作に入る(と思っている)ので、サンプルスクリは書かずに情報源だけ書いておきます。
ご自分で調べて、自己責任で利用してください。

stdlibを利用する場合は、レジストリ操作関連モジュール「exregfile.as」を参照してください。
各命令が内部でどういった処理を行っているかを理解しない状態でのモジュール利用は危険だと思います。

HSP標準のDLLを利用する場合はhspext.dllの説明書を、Win32APIを直接利用する場合はちょくとさんのサイト(下記URL)を参照すると良いと思います。
http://yokohama.cool.ne.jp/chokuto/urawaza/registry.html
どの手法を取るにしてもレジストリについて知らなければならないので、ちょくとさんのサイトは役に立つと思います。必ず目を通してください。

※#module〜#globalはexregfile.asからの引用みたいですが、他にも必要な命令があるので一部をコピペするのではなくインクルードして利用することをお勧めします。



make

リンク

2008/1/26(Sat) 06:20:31|NO.13279

遅くなってすみません、返答ありがとうございます
紹介して頂いたHPは参考になりました
ただHPに書いてあった事は別のやり方になってしまうので
今後の為にも、できれば正しいスクリプトの書き方を習得しておきたいので
ご存知の方はよろしくお願い致します
原因は下の3行だと思って色々と書いてみましたが、どうしても解決できなくて困っています



Kpan

リンク

2008/1/26(Sat) 09:50:24|NO.13280

HSP拡張プラグインhspext.dll(regkey/getreg命令) & さくらさんモジュール(zregdelval命令)
を勝手に組み合わせてもダメですよ。(^^;

さくらさんモジュールを使うのであれば、モジュールの命令一本に統一しないと。
モジュール本体(stdlib\exregfile.as)とサンプル(sample1\sample33.hsp と
sample34.hsp)をよくチェックしてください。処理の流れは下のような感じかと思います。

 zcreateregkey → zregdelval → zcloseregkey


====
> 例としてHKEY_USERS\test01のキーにあるtest02
HKEY_USERSは、個人的なデータを置いとくとこではないので、ellerさんが紹介されてる
ちょくとさんページを読んでおいてください。

> HPに書いてあった事は別のやり方になってしまうので
値の削除は、一応それが唯一の方法です(Win32APIを使う)。さくらさんモジュールは
それをやっているわけで・・・。



a

リンク

2008/1/26(Sat) 11:03:00|NO.13281


newcom WshShell, "WScript.Shell" //書き WshShell->"RegWrite" "HKEY_CURRENT_USER\\Software\\hoge\\data", "fuga", "REG_SZ" //読み s = WshShell("RegRead", "HKEY_CURRENT_USER\\Software\\hoge\\data") mes "["+s+"]" //削除 WshShell->"RegDelete" "HKEY_CURRENT_USER\\Software\\hoge\\"



Kpan

リンク

2008/1/26(Sat) 11:41:01|NO.13282

おー、WSHでも。



make

リンク

2008/1/26(Sat) 21:30:05|NO.13292

zcreateとzcloseで解決しました
ありがとうございました



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