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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   xrg2inf - экспорт данных реестра в ini/inf формат?... нужно! (http://forum.oszone.net/showthread.php?t=164379)

semiono 23-01-2010 03:04 1327468

xrg2inf - экспорт данных реестра в ini/inf формат?... нужно!
 
Если автор не против http://forum.oszone.ru/post-1154520-27.html, то надо переделать (даже-упростить) выходной формат в INF синопс.
Формат заголовка таков
Код:

[Version]
Signature="$Windows NT$"

[DefaultInstall]
AddReg=Add.Reg

[Add.Reg]
<тут будeт сохраняться стринги - запрос экспорта в валидном формате>

всё.

Тут даже проще, так как нету переносов строк и expandsz по-моему не надо конвертировать.
(если я что-то не учитываю по незнанию формата поправте меня)

Было уже собирался сам написать, но у меня это выйдет примитивно и дубово, а тут такой готовый скрипт уже с логикой типов,
да ещё и с вводом в консоли! Уж лучше пусть знающие люди напишут. И я надеюсь ещё кому-то тоже пригодиться такая утилита.
Фреймворк-зависимый Reg2Inf.exe только пол дела делает... Please!!! :Beer:

semiono 24-01-2010 01:34 1328226

Нужен паттерн для переворота строки задомнаперёд: 123 to 321, ABC 2 CBA итп.
Ни в гугле ни в справке ничего порядочного типа reverse string или указания abc cba не нахожу.
Как у них там countdown или playback чтоли :)
offtop: пока искал прикольчег нашёл, сам сабж мне не понравился видимо я в фальклор не врубаюсь,
но то, что много языков это интересно!
http://www.encyklopedia.biolog.pl/in...ottles_of_beer

Yashied, большое спасибо!

Yashied 24-01-2010 01:55 1328236

Цитата:

Цитата semiono
Нужен паттерн для переворота строки задомнаперёд: 123 to 321, ABC 2 CBA итп.
Ни в гугле ни в справке ничего порядочного типа reverse string или указания abc cba не нахожу.
Как у них там countdown или playback чтоли...»

А зачем паттерн, есть функция _StringReverse().

semiono 24-01-2010 02:17 1328242

Ура, пашет!
Код:

#Include <string.au3>
RegWrite('HKLM\Software\$reg.exe','New Value #1','REG_DWORD',0x11abcdef)
$a = RegRead('HKLM\Software\$reg.exe','New Value #1')
$r = '0x' & _StringReverse(StringLower(Hex(Int($a), 8)))
MsgBox(4096, 'ГгY', 'REG_DWORD: INF: ' & $r & " ;-)")

С типами я пожалуй справлюсь, а вот консольное управление "утилитой" лучше бы помог кто нибудь.

Нужно нечто такое:
# xrg2inf.exe /v InstallDir,"Content Dir" /k "HKLM\Software\My Prog" "C:\my path\new 1.inf" /add
И чтоб /v * тоже поддерживалось для всех value, когда не надо указывать конкретный ключ.

Особенно проблеммы связаны с "квотами", так как пробелы в параметрах всюду встречаются,
а кавычки сам скрипт тоже юзает, поэтому тут внимание ещё требуется :)

---
NEW.INF мои фантастические исследования типов, может пригодиться для тестов. :moil:

Yashied 24-01-2010 11:15 1328315

Цитата:

Цитата semiono
С типами я пожалуй справлюсь...»

AutoIt поддерживает далеко не все типы, встречающиеся в реестре.

Цитата:

Цитата semiono
Особенно проблеммы связаны с "квотами" »

$CmdLine - массив содержащий все переданные скрипту параметры, нужно просто проанализировать строки в нем... Кавычки не передаются.

semiono 25-01-2010 00:25 1328957

Вот здесь ошибка http://forum.oszone.ru/post-1154520-27.html, /val: я её не могу найти.
Там "параметры имеющие пробел" глючат, а кавычки игнорируются.
Цитата:

Цитата Yashied
AutoIt поддерживает далеко не все типы, встречающиеся в реестре. »

Понятно, но это и не нужно, просто для тестирования лучше проверить на всякие обстоятельства.
В итоге я бы даже лишние HIVEs убрал, скажем достаточно лишь HKLM, HKCU.
.DEFAULT обычно мне не нужен бывает, а в HKCR я через HKLM\Classes всегда захожу.
Поэтому REG_FULL_RESOURCE_DESCRIPTOR разумеется тоже на практике не нужен :)
Но попарсить на всякий случай это интересно.
Вот интересный тип: HKLM,"Software\$reg.exe","REG_MULTI_SZ",0x10000,',"123","1 2 3"," 2","3 "," " (INF file синтакс)
в котором передать кавычки в виде данных уже даже затруднительно, и вообще не знаю какие символы тут
нужно учесть, чтоб достаточно было для пользования. Этот тип иногда может встречаться хотя и реже.

Вот всё что нужно:
HKLM/HKCU
0x00000000 REG_SZ
0x00000001 REG_BINARY
0x00010000 REG_MULTI_SZ
0x00020000 REG_EXPAND_SZ
0x00010001 REG_DWORD

Цитата:

Цитата Yashied
Кавычки не передаются. »

Спасибо за инфу! Пригодится.


Время: 12:18.

Время: 12:18.
© OSzone.net 2001-