semiono
31-12-2009, 00:09
$REG_SZ = '0x0'
$REG_BINARY = '0x1'
$REG_DWORD = '0x10001'
$REG_EXPAND_SZ = '0x20000'
$rKey = 'HKLM'
$sKey = 'Software\Microsoft\Windows\CurrentVersion'
$vName1 = 'ProgramFilesDir'
$vData1 = RegRead($rKey & '\' & $sKey, $vName1)
$vName2 = 'CommonFilesDir'
$vData2 = RegRead($rKey & '\' & $sKey, $vName2)
;IniWrite("myfile.inf", "Version", "Signature", '"$Windows NT$"')
$file = FileOpen("myfile.inf", 2)
FileWrite($file, '[Version]' & @CRLF)
FileWrite($file, 'Signature="$Windows NT$"' & @CRLF)
FileWrite($file, @CRLF)
FileWrite($file, '[Add.Reg]' & @CRLF)
FileWrite($file, $rKey & ',"' & $sKey & '","' & $vName1 & '",' & $REG_SZ & ',"' & $vData1 & '"' & @CRLF)
FileWrite($file, $rKey & ',"' & $sKey & '","' & $vName2 & '",' & $REG_SZ & ',"' & $vData2 & '"' & @CRLF)
FileClose($file)
Вот нечто такое изобретаю... Проблемма в том, что здесь заранее известно тип данных,
но было бы интереснее их получать прямо из реестра!
Вдобавок запись на мой взгляд громоздкая получается, хотя наверное тут нельзя ничего оптимизировать?
Плохо что IniWrite() тут не подходит, было бы намного удобнее,
но этот макрос всегда пишет "=", что в данном случае вообще не уместно при записи реестра в INF формате.
Жаль что в природе нету INFWrite() :)
ЗЫ есть такая утилита reg2inf, но во-первых она работает на dotnetfx, что не очень хорошо для случайного компьютера,
а во-вторых, конвертер это не совсем то что надо, а надо ещё и граббер!
$REG_BINARY = '0x1'
$REG_DWORD = '0x10001'
$REG_EXPAND_SZ = '0x20000'
$rKey = 'HKLM'
$sKey = 'Software\Microsoft\Windows\CurrentVersion'
$vName1 = 'ProgramFilesDir'
$vData1 = RegRead($rKey & '\' & $sKey, $vName1)
$vName2 = 'CommonFilesDir'
$vData2 = RegRead($rKey & '\' & $sKey, $vName2)
;IniWrite("myfile.inf", "Version", "Signature", '"$Windows NT$"')
$file = FileOpen("myfile.inf", 2)
FileWrite($file, '[Version]' & @CRLF)
FileWrite($file, 'Signature="$Windows NT$"' & @CRLF)
FileWrite($file, @CRLF)
FileWrite($file, '[Add.Reg]' & @CRLF)
FileWrite($file, $rKey & ',"' & $sKey & '","' & $vName1 & '",' & $REG_SZ & ',"' & $vData1 & '"' & @CRLF)
FileWrite($file, $rKey & ',"' & $sKey & '","' & $vName2 & '",' & $REG_SZ & ',"' & $vData2 & '"' & @CRLF)
FileClose($file)
Вот нечто такое изобретаю... Проблемма в том, что здесь заранее известно тип данных,
но было бы интереснее их получать прямо из реестра!
Вдобавок запись на мой взгляд громоздкая получается, хотя наверное тут нельзя ничего оптимизировать?
Плохо что IniWrite() тут не подходит, было бы намного удобнее,
но этот макрос всегда пишет "=", что в данном случае вообще не уместно при записи реестра в INF формате.
Жаль что в природе нету INFWrite() :)
ЗЫ есть такая утилита reg2inf, но во-первых она работает на dotnetfx, что не очень хорошо для случайного компьютера,
а во-вторых, конвертер это не совсем то что надо, а надо ещё и граббер!