1

Тема: VBS: Записать в реестр шестнадцатеричный ключ

Всем добрый день!
Есть такой код:

Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite"HKCU\Control Panel\Input Method\Hot Keys\00000101\Key Modifiers", 660000000, "REG_BINARY"
Set WshShell = Nothing

По идее в реестре должен создаться ключ Key Modifiers и в него должно записаться значение hex:06,c0,00,00.
В реестре в значении ключа должно быть 32000000.
Но записывается туда 00000032.
Я так понимаю, что в реестре обратный порядок следования байтов.

И как быть? Как записать значение ключа в правильном порядке?
В таком порядке, в каком записывается значение, настройка не работает.

2 (изменено: mozers, 2013-03-31 12:08:42)

Re: VBS: Записать в реестр шестнадцатеричный ключ

CreateObject("WScript.Shell").RegWrite "HKCU\Control Panel\Input Method\Hot Keys\00000101\Key Modifiers", CLng(49158), "REG_BINARY"

Смысл трюка в том, что числа Long хранятся в 8 байтах (что нам и требуется).
При использовании команды REG все намного нагляднее:

REG ADD "HKCU\Control Panel\Input Method\Hot Keys\00000101" /v "Key Modifiers" /t REG_BINARY /d 06c00000

3

Re: VBS: Записать в реестр шестнадцатеричный ключ

Большое спасибо! Работает!