アプリ版:「スタンプのみでお礼する」機能のリリースについて

「SQL\INSTANCE」という名前のキーをレジストリに作成したいのですが、円マークを入れると階層化されてしまうので、困っています。
カンタンな質問かもしれませんがどなたか教えてください。

以下、VBSで作成
Option Explicit
On Error Resume Next

Dim objWshShell ' WshShell オブジェクト

Set objWshShell = WScript.CreateObject("WScript.Shell")
If Err.Number = 0 Then

objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\SQL\INSTANCE", "SQL", "REG_SZ"

WScript.Echo "ODBC設定変更:完了"
Else
WScript.Echo "エラー: " & Err.Description
End If

Set objWshShell = Nothing

A 回答 (1件)

RegWriteの仕様なのでどうしようもない。


別な方法をとるべし。(RESOLUTIONのコード参考)
http://support.microsoft.com/kb/281309/en-us

#実際にRESOLUTIONを試してみたわけじゃないので
#うまくいくかどうかは知らない
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やっぱり仕様なのでどうしようもないってところですか・・・
以下で行ってみたら、あっさりできました。

Const HKEY_LOCAL_MACHINE = &H80000002
Dim lRC
Dim sPath
Dim objRegistry

Set objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv")

sPath = "SOFTWARE\ODBC\ODBC.INI"
lRC = objRegistry.SetStringValue(HKEY_LOCAL_MACHINE, sPath, _
"SQL\INSTANCE", "SQL")
If (lRC = 0) And (Err.Number = 0) Then
WScript.Echo "Write successful!"
Else
WScript.Echo "An error occurred. The return code is " & lRC & "."
End If

これからは、WSHとWMI併用でやりくりしていきます。
ありがとうございました。

お礼日時:2009/01/06 13:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!