Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Работа с реестром

Ответить
Настройки темы
Работа с реестром

Аватара для TERMINAL

Ветеран


Сообщения: 753
Благодарности: 28

Профиль | Отправить PM | Цитировать


Как возможно с помощью Autolt сохранить целую ветку реестра и по возможности её востановить ?

-------
Автоматизация прежде всего....


Отправлено: 12:43, 20-02-2009

 

Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
ShellExecute("reg","save HKLM\software a:\backup.dat", @SystemDir, "", "@SW_HIDE")
сам не проверял, может с ошибками.

-------
Полезное сообщение


Отправлено: 13:44, 20-02-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для TERMINAL

Ветеран


Сообщения: 753
Благодарности: 28

Профиль | Отправить PM | Цитировать


Та да, какието ошибки вылазят...

-------
Автоматизация прежде всего....


Отправлено: 13:48, 20-02-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата TERMINAL:
какието ошибки вылазят »
Какие именно?

Кстати, немного по теме. Есть расширенная библиотека для работы с реестром.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:26, 20-02-2009 | #4


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата TERMINAL:
какието ошибки вылазят... »
может тогда на regedit /e c:\hives заменить?
и может там ещё с правами доступа проблеммы.
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Ну не овтопега ради, напишу здесь, ибо не знаю как назвать!
Нужно:
Код: Выделить весь код
$VST = RegRead("HKLM\Software\VST","VSTPluginPath","REG_SZ")
If $VST = 0 Then
$VST = "myOtherString"
как это по человечески оформить, или это итак верно? Суть я думаю ясна, но скорее это криво с точки зрения языка?
(всмысле = 0 это типа если не существует такого реестра value или key итп)
-------

кстати, еслиб это был InnoSetup я бы здесь применил Flags: createvalueifdoesntexist и создал бы value,
! хотя в любом случае, мне потом это как $переменная нужна чтоб как $Path подставить в GUI,

Кстати, аналог createvalueifdoesntexist тоже подскажите если это в автоит не сложно...

-------
Полезное сообщение


Последний раз редактировалось semiono, 20-02-2009 в 15:14.


Отправлено: 14:49, 20-02-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
как это по человечески оформить »
Как в справке , или вы не заглядываете в неё? в RegRead() всего два параметра.

Цитата semiono:
аналог createvalueifdoesntexist тоже подскажите если это в автоит не сложно »
А какое там должно заполняться значение? В любом случае, для записи используется RegWrite().

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:44, 20-02-2009 | #6


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Как в справке »
Я имею ввиду логические операторы, а не RegRead() хотя и на них справка есть, но боюсь там подобного нет
Код: Выделить весь код
If $VST = 0 Then
$VST = "myOtherString"
Или я это корректно написал? Я даже протестить не осмелился, щас заценю, вдруг работает на самом деле!
Creat0R, я бы поизучал логический код, но там всегда примеры офтопичные, не под мои задачи...
мнеб только файлы и реестр "патчить" и более ничего не надо, правда условия иногда как тут возникают.

createvalueifdoesntexist - буквально создаёт value в том случае если его ещё нет, в противном случае игнорируется... в автоит тут наверное целый блок с операторами надо наворотить, чего я очень боюсь

-------
Полезное сообщение


Отправлено: 16:37, 20-02-2009 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
Я даже протестить не осмелился »
А зря, сначала проверяйте, а потом пишите. Зачем просто так плодить вопросы, когда самому можно их решить? разве самому не интереснее?

Цитата semiono:
я бы поизучал логический код, но там всегда примеры офтопичные, не под мои задачи. »
У вас по всей видимости, просто нет терпения

Цитата semiono:
createvalueifdoesntexist - буквально создаёт value в том случае если его ещё нет, в противном случае игнорируется »
Создаёт где, в реестре, или просто заполняет переменную, как в случае с IniRead()?

Если переменную (как я догадываюсь), тогда так:

Код: Выделить весь код
$Var = _RegReadEx("HKEY_LOCAL_MACHINE\UnexistingKey", "ValueName", "Some Default Value")

MsgBox(4096, "_RegReadEx", _
    StringFormat("Return @Error: %i\nReturn @Extended: %i\nReturn $Var: %s", @error, @extended, $Var))

Func _RegReadEx($sKeyName, $sValueName, $sDefault="")
    Local $sRet_Value = RegRead($sKeyName, $sValueName)

    If $sRet_Value = "" Then $sRet_Value = $sDefault

    Return SetError(@error, @extended, $sRet_Value)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:07, 20-02-2009 | #8


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


аааа! я зделал! ВЫ правы я лентяй! как всё просто на самом деле!
Код: Выделить весь код
$VST = RegRead("HKLM\Software\VST","VSTPluginsPath")

If $VST = "" Then
$VST = @SystemDir & "\Plugins"
EndIf

MsgBox(4096,"VSTPluginPath",$VST)
Буду терпения набираться теперь!
Цитата Creat0R:
Создаёт где, в реестре, »
да, вот кусок
Root: HKLM32; Subkey: "Software\VST"; ValueType: string; ValueName: "VSTPluginsPath";
ValueData: "{sys}\Plugins"; Flags: createvalueifdoesntexist noerror; Permissions: admins-full
очень удобные кстати флаги у инсталлера, просто добавил нужный флаг и готово, хотя там и паскаль есть,
но это когда действительно надо...

ЗЫ как бы тоже получается, что тоже решено -
Код: Выделить весь код
$VST = RegRead("HKLM\Software\VST","VSTPluginsPath")
If $VST = "" Then
$VST = @SystemDir & "\Plugins"
EndIf
RegWrite("HKLM\Software\VST","VSTPluginsPath","REG_SZ",$VST)

-------
Полезное сообщение


Последний раз редактировалось semiono, 20-02-2009 в 17:51.


Отправлено: 17:23, 20-02-2009 | #9


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
да, вот кусок »
Тогда так:

Код: Выделить весь код
#include <Registry_UDFs.au3>

$Var = _RegReadEx("HKCU\UnexistingKey", "ValueName", "Some Default Value")

MsgBox(4096, "_RegReadEx", _
    StringFormat("Return @Error: %i\nReturn @Extended: %i\nReturn $Var: %s", @error, @extended, $Var))

Func _RegReadEx($sKeyName, $sValueName, $sDefault="")
    Local $sRet_Value = RegRead($sKeyName, $sValueName)
    If $sRet_Value = "" Then $sRet_Value = RegWrite($sKeyName, $sValueName, _RegGetExtendedType(@extended), $sDefault)

    Return SetError(@error, @extended, $sRet_Value)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:34, 20-02-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Работа с реестром

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Работа с реестром С++ ShadowMas Программирование и базы данных 15 20-04-2010 11:40
Проблемы с реестром metroid Microsoft Windows 2000/XP 1 23-03-2006 08:02
Работа с реестром semen1967 Хочу все знать 18 27-11-2004 12:05
Работа с реестром на дельфи 7 fossil Программирование и базы данных 6 03-09-2004 13:49
Работа с реестром Artya Программирование и базы данных 3 08-09-2003 10:19




 
Переход