Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   export-reg2inf (как узнать тип данных в реестре) (http://forum.oszone.net/showthread.php?t=161964)

semiono 31-12-2009 00:09 1307975

export-reg2inf (как узнать тип данных в реестре)
 
Код:

$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, что не очень хорошо для случайного компьютера,
а во-вторых, конвертер это не совсем то что надо, а надо ещё и граббер!

Creat0R 31-12-2009 00:34 1307987

Тип данных возвращается в @extended (после RegRead), см. справку по этой функций.
По остольному могу только сказать что это всё возможно ;).


Время: 03:40.

Время: 03:40.
© OSzone.net 2001-