VB2003でのレジストリの書き込み


下駄はかせ  2008-01-13 18:02:56  No: 138615  IP: 192.*.*.*

普段、参考にさせています。
Declare ステートメントで宣言するときに、引数および戻り値のデータ型に As Any を指定できましたが VB.netではできません。

Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long  

下記の宣言を使って、レジストリに値を書き込もうとするとき、Anyのところで、コンパイラーに怒られるので stringに変えましたが、うまく書き込まれません。

例文
RegSetValueEx(hKey, vbNullString, 0, REG_SZ, myStrValue, Len(myStrValue) + 1)

もし、修正の方法をご存じでしたら、お教え下さい

編集 削除
Hongliang  2008-01-13 18:58:41  No: 138616  IP: 192.*.*.*

Registry / RegistryKey クラスを使えば Declare が不要になりますが。
// .NET 1.x だと RegistryValueKind が使えないので一部の型に制限があります。

編集 削除
下駄はかせ  2008-01-13 22:46:39  No: 138617  IP: 192.*.*.*

Dim regkey As Microsoft.Win32.RegistryKey



regkey.SetValue("string", "StringValue")

で解決できました

ありがとうございます

編集 削除