![]() |
запись аргументов в формате файлов INF
Исходный текст файла:
Код:
[Version] Код:
HKLM,"Software\Classes\FSTFile\Shell\Open\Command","",0x00004000,"D:\zzz\zzz\FL.exe" "%1" %* Если посмотреть на формат, то получается: ROOT, SubKey, KeyName, Type, значение... с последним параметром могут быть сложности, так как он зависит от типа данных и может содержать пробелы и всякие знаки... Вообщем кто имеет что сказать? :) |
Цитата:
|
Например, в файл
D:\DVD\i386\HIVESYS.INF в секцию [AddReg] нужно добавить строки: HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.BitsPerPel",0x00010001,32 HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.XResolution",0x00010001,1024 HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.YResolution",0x00010001,768 HKLM,"SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000","DefaultSettings.BitsPerPel",0x00010001,32 HKLM,"SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000","DefaultSettings.XResolution",0x00010001,1024 HKLM,"SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000","DefaultSettings.YResolution",0x00010001,768 Но если там уже есть эти параметры реестра, то нужно только изменить их значения чтобы строки не дублировались. Это типично для формата INI, только здесь отсутствует знак равенства: DefaultSettings.BitsPerPel=32 |
Цитата:
Код:
_RegFileWrite(@ScriptDir & '\File.reg', 'Add.Reg', 1, 'данные... 0x00000000 | "C:\zzzz" | 00 01 02 03 итп.') |
а продолжение можно попросить?
Найти: [AddReg] HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.BitsPerPel" и добавить значение: ,0x00010001,32 должно получиться так: [AddReg] HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device1","DefaultSettings.BitsPerPel",0x00010001,16 HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device2","DefaultSettings.BitsPerPel",0x00010001,16 ; ... HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device0","DefaultSettings.BitsPerPel",0x00010001,32 ; ... HKLM,"SYSTEM\CurrentControlSet\Services\VgaSave\Device0","zzDefaultSettings.BitsPerPel",0x00010001,1 6 ; ... Если файл не существует его нужно создать, если секция не существует её нужно создать, если строка не найдена её нужно создать. Я не сразу сообразил, прошу прощения, тут похоже лучше всего поделить строку на две части, для поиска взять всю ссылку реестра, а для редактирования значение и тип параметра, так как значение всегда привязанно к типу данных. И обязательно нужен поиск, так как указание номера строки неудобно в больших файлах когда номера строк вообще не известны и не фиксированны. Не знаю насколько это сложно, но мне бы хотелось такой скрипт иметь. |
Цитата:
|
Время: 02:04. |
Время: 02:04.
© OSzone.net 2001-