 |
|
antoshka333 |
16-07-2014 22:40 2377369 |
Не добавляется в реестр инфа через bat + smart install maker
Собственно сабж, имеем на выходе батник с 1й строкой для теста
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v USerinit /t REG_SZ /d "C:\Windows\System32\userinit.exe, С:\1.vbs" /f
pause
пауза, чтоб видеть ошибки там на всякий случай. запускаю руками - все идеально, в regedit показывает что добавлена запись.
Запускаю smart install maker, добавляю .bat в него, компилирую, при этом стоит галочка "требовать права администратора".
При запуске батник запускается, мы видим искомую запись что импорт реестра успешен, а на самом деле в regedit пусто. Я впервые вижу такой глюк. Чтобы руками норм было а через инсталлятор писало что добавлено а по факту нет..... пытался я и в инсталляторе сделать непосредственно в разделе реестр сделать - тоже самое, добавлял и в execute shell раздел строку - бесполезно. антивирусов и фаерволов не стоит.
Запуская же мышкой все работает ... куда копать?
|
antoshka333, зачем Вам надо писать что-то в «Userinit»?
|
Добрый вечер. Как раз столкнулся с такой же проблемой (я в юзер инит не лезу :D )
Батник примерно такого содержания:
Код:
reg add "HKLM\SOFTWARE\Some_program" /ve /t REG_SZ /d RABOTAY /f
pause
Выводит что операция успешно завершена, но в реестр запись не добавляется и не перезаписывается, в случае существования. Причем если скопировать 1ю строку в командную строку, то все работает. И даже еще интереснее: если вызвать из командной строки этот же самый батник (start C:\1.bat), то все работает. Эта проблема наблюдается на висте, на xp все работает, семерку не пробовал.
|
Заработало после, добавления в начале
Код:
cd C:\Windows\SysWOW64
Как я понял запускалась 32х битная версия reg.exe, которая отрабатывала вот таким вот странным образом.
|
Shtirliz8, может, просто не надо вызывать пакетный файл и командную строку из-под x86-оболочки?!
|
Iska, но я же просто запускаю батник в экслорере, а он получается обрабатывается x86 cmd.exe. Да и "пуск->выполнить->cmd" так же приводит к запуску того же system32\cmd.exe. Может быть я чего-то не понимаю, но по моему не очень логичное поведение системы.
В общем я понял, что пишу какую-то ерунду и ушел курить статьи
|
Цитата:
Цитата Shtirliz8
Iska, но я же просто запускаю батник в экслорере, а он получается обрабатывается x86 cmd.exe. Да и "пуск->выполнить->cmd" так же приводит к запуску того же system32\cmd.exe. »
|
Тогда не знаю, в чём дело.
Цитата:
Цитата Shtirliz8
Может быть я чего-то не понимаю, »
|
Я тоже ;).
|
Цитата:
Цитата Shtirliz8
Заработало после, добавления в начале »
|
Оно и до этого работало. В х64 системе есть два reg.exe (х86 и х64). Некоторые разделы реестра также "разделены" на две группы (х86 и х64). Каждый из reg.exe может "добраться" только до соответствующей ему по разрядности группы в реестре. Проверяли результат работы Вы наверное regedit.exe, коих тоже два (х86 и х64). Так вот если пишущий reg.exe не соответствовал читающему regedit.exe по разрядности, то Вы можете и не увидеть результата.
|
gora, спасибо за исчерпывающий ответ
Цитата:
Некоторые разделы реестра также "разделены" на две группы (х86 и х64)
|
А программы, как я понял, обращаются к реестру Win-Api функции, и направляются системой в соответствующую ветку в зависимости от их разрядности?
|
Цитата:
Цитата Shtirliz8
направляются системой в соответствующую ветку в зависимости от их разрядности? »
|
Угу.
|
Время: 22:16.
© OSzone.net 2001-