PDA

Показать полную графическую версию : [решено] Не запускаются программы из RunOnceEx при входе в XP


Страниц : [1] 2

coolbuck
27-10-2006, 14:24
Пытаюсь добавить в дистрибутив установку некоторых обновлений по методу RunOnceEx. Делаю всё, как написано в учебнике, в реестр всё заносится как надо, но при первом входе в систему ничего не происходит. Т.е. параметр Title из ключа HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx удаляется, но ни один раздел далее не выполняется и не удаляется соответственно. На сайте MSDN написано, что перед выполняемой командой необходимо ставить || (две палки). Если делать так, то всё работает, но только при условии, что не установлено значение "(по умолчанию)" в соответствующем разделе. Но при этом не открывается никакого графического окна со списком производимых действий.

Что я делаю не так? Облазил все форумы по теме, но такой проблемы не обнаружил :fool:

Простейший пример (для проверки уже сошел до минимума) файла RunOnceEx.cmd, сделанный по аналогии с прочитанным:

-----------------------------
@echo off

SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100

REG ADD %KEY% /V TITLE /D "Установка приложений" /f

REG ADD %KEY%\%i% /VE /D "Windows Media 10" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\OEMinst\MP10Setup.exe /q" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Удаление временных файлов" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\OEMinst\cleanup.cmd" /f
SET /A i+=1

EXIT
-----------------------------[hr]Решение. Виновником проблемы оказался Internet Explorer 7 (RC).

prokazzza
27-10-2006, 14:33
Можешь мой попробывать 100% работает,
Вопрос добавил ли ты в файл cmdlines.txt следующую команду
[COMMANDS]
"RunOnceEx.cmd"
RunOnceEx.cmd
cmdow @ /HID
@echo off

SET CDROM=%~d0

SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100

REG ADD %KEY% /V TITLE /D "Installing Applications" /f

REG ADD %KEY%\%i% /VE /D "Preparing Installation..." /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Preparing Installation..." /f

REG ADD %KEY%\%i% /VE /D "RAINLENDAR" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Rainlendar.exe" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "ADOBEREADER" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\AdbeRdr705_rus_lite.exe" /f
SET /A i+=1

EXIT

coolbuck
27-10-2006, 15:04
prokazzza
Вопрос добавил ли ты в файл cmdlines.txt следующую команду

Код:
[COMMANDS]
"RunOnceEx.cmd"

Конечно, добавил. Я же говорю, что в реестр все значения попадают нормально. Проблема именно в том, что оттуда ничего не запускается.
А чем твой способ отличается от приведенного, кроме того, что все сообщения на английском? Я на английском тоже писал, мне не помогло :(

Можно даже проще сделать, чтобы не париться со скриптами... На уже установленной винде в реестр ручками забить то, что нужно. Если писать так, как тут, то эти ключи просто игнорируются. Пробовал прописать значение ||C:\OEMinst\MP10Setup.exe /q вместо C:\OEMinst\MP10Setup.exe /q. При этом, если значение по умолчанию не установлено, то запуск пройдет, а если там написать что-нибудь типа "Windows Media 10", то результат опять тот же. :angry2:

Вот этого я и не могу понять. И почему у всех работает?

AlexVP
27-10-2006, 15:47
coolbuck
а можешь привести ветку реестра RunOnceEx?
после выполнения конечно твоего cmd файла ....

prokazzza
27-10-2006, 17:17
coolbuck

остается тока запустить RunOnceEx на уже установленной винде, и если она запускается после перезагрузки системы, то все с твоим RunOnceEx нормально, (кстате я запустил твой RunOnceEx на своем компе все запускается, тока скорее всего вместо русских букв получишь кракозабры, в какой то теме тут есть как это убрать), также можешь попробывать запустить RunOnceEx без перезегрузки системы дописав в конец RunOnceEx перед END следующие строки

rundll32.exe iernonce.dll,RunOnceExProcess

Если все запустилось и установилось нормально посмотри в файле winnt.sif (I386) нет ли у тя следующих строк например:
[GuiRunOnce]

"%systemdrive%\install\batch_file1.cmd"
Если есть то удали эти строки

MaxDELETE
27-10-2006, 17:23
у меня кстати такая же проблема! Поэтому и не пользуюсь

AlexVP
27-10-2006, 17:41
MaxDELETE
проблем нет! разберемся... вот ветку регистра пришлет тогда и увидим....

alcos
29-10-2006, 10:35
тока скорее всего вместо русских букв получишь кракозабры, в какой то теме тут есть как это убрать
Берёшь блокнот с поддержкой DOS кодировки (например: DOSPad, TigerPad, Bred-3), рисуешь в нём свой файл RunOnceEx.cmd и никаких крякозябриков с русским текстом.

coolbuck
А у тебя случайно при перезагрузке не удаляется твоя папка OEMinst с дистрибутивами, написано вроде всё правильно, может какой твик реестра на это влияет. И попробуй начать отсчёт хотя бы с 10, а не с 100.

coolbuck
30-10-2006, 06:16
Уважаемые участники конференции, почему нельзя топики читать внимательно? Я же написал, что в реестр всё импортируется нормально. Т.е. кодировки, RunOnceEx.cmd, winnt.sif и прочие подобные причины ни при чем.

Папка OEMinst не удаляется, потому как команда, удаляющая ее, тоже не запускается. И вообще, я пробовал тупо забивать в реестр всё ручками, без всяких скриптов, о чем тоже уже писал.

Тестирование провожу в VMware Workstation 5.0.0 build 13124. Windows XP Professional VLK с Service Pack 2. Пробовал ставить как с голым сервис-паком, так и с накатанными патчами. Ветка реестра выглядит так:



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
"TITLE"="Установка приложений"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\100]
@="Windows Media 10"
"1"="C:\\OEMinst\\MP10Setup.exe /q"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\101]
@="Удаление временных файлов"
"1"="C:\\OEMinst\\cleanup.cmd"



rundll32.exe iernonce.dll,RunOnceExProcess делает тоже самое, то есть ничего. Удаляется только "TITLE"="Установка приложений".

Попробовал проделать то же самое на рабочей системе, т.е. выполнил RunOnceEx.cmd и затем перезагрузился. Результат тот же самый. Смена названий веток, например со 100 на 10 или на 1, тоже ни к чему не приводит.

coolbuck
30-10-2006, 09:22
Обнаружил сейчас одну интересную особенность. Если во время установки не включать компутер в домен, то при первом входе в систему всё отработает как надо. Я же сразу включал комп в домен, и у меня нифига не работало. Где подводный камень? :o

prokazzza
30-10-2006, 09:44
coolbuck

попробуй запустить мой RunOnce и перезагрузиться, напишешь потом что получиться:)

coolbuck
30-10-2006, 10:06
Чистоты эксперимента ради, поставил винду по-новому, но сразу зашел в домен - всё отработало. Значит, проблема была в другом. Сейчас буду искать. Найду - скажу.
Эх, дистриб исковырял весь...

coolbuck
30-10-2006, 10:24
Вражеский шпиён изобличён!!! Им оказался Internet Explorer 7. После его установки перестаёт отрабатывать запуск указанным способом из ветки реестра RunOnceEx. После сноса IE опять всё работает. Обидно :sorry:

vek
30-10-2006, 11:09
coolbuck
В смысле Internet Explorer 7? А на каком этапе он у Вас ставиться из сmdlines.txt или вообще интегрирован? И какая версия? У меня раньше IE7 интегрировался аддоном с заменой файлов (версию уже не помню. Т.е при первом входе IE7 уже стоял в системе) и таких проблем не было. Странно!

coolbuck
30-10-2006, 11:25
IE 7 я ставил на этапе Т-13, запускал из секции [SetupHotfixesToRun] файла svcpack.inf
Сейчас убрал его (и только его), всё стало нормально.

Кроме того, провел простой эксперимент. На поставленную ХР с IE 6 поставил IE 7, после чего попробовал запустить RunOnceEx.cmd, перезагрузился. После перезагрузки секции RunOnceEx реестра не отработали, а остались в нем. После этого снес IE 7, перезагрузился, всё прошло нормально. Причина проблемы очевидна. Непонятно только, почему так происходит. Почему IE 7 так влияет на запуск системы. Может быть, просто баг, который со временем подправят.

vek
30-10-2006, 11:40
coolbuck
У меня почему-то такого не было! Секции RunOnceEx реестра отрабатываются всегда нормально. (Ранее устанавливал пакет обновлений c аддоном IE75296RUS, сейчас правда аддон исключил ставлю IE7RC1Rus из RunOnceEx.cmd)

coolbuck
30-10-2006, 11:51
Может быть, проблема в конкретной версии. В любом случае, нужно ждать официального русского релиза, потом пробовать и делать выводы.

zver2k
25-11-2006, 08:29
проблема именно с IE7 - интегрировал его аддоном - RunOnceEx.cmd не отрабатывает. проверил работу RunOnceEx.cmd на установленной системе с IE7 тоже не отрабатывал - удалил его - всё нормально. Версия - русская финал.

coolbuck
27-11-2006, 06:53
Нашел на форуме разработчиков мелкософта:

I've encountered the same problem and have found that this is occuring due to a change in the iernonce.dll file. After a bit of testing, I have found that you can still launch the runonceex process by copying the IE6 version of the iernonce.dll file into any location and executing the runonceex command using it.

MSDN Forums » Internet Explorer Development » Internet Explorer Extension Development » RunOnceEx Broken w/IE7?

Сам ещё не пробовал, но ИМХО кто-то накосячил. Интересно, кто-нибудь службу поддержки уже известил?

caveman007
11-01-2007, 08:49
coolbuck
Проверено. Работает. Сохранил iernonce.dll из IE6 и после установки IE7 вернул его взад (т.е. перезаписал тот, который шел с IE7)




© OSzone.net 2001-2012