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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Удаление ярлыков из Quick Launch (http://forum.oszone.net/showthread.php?t=83019)

ChVL 23-04-2007 19:49 578517

[Решено] Удаление ярлыков из Quick Launch
 
Для удаления всех ярлыков из панели быстрого запуска в *.cmd включил такую команду:
DEL "%UserProfile%\Application Data\Microsoft\Internet Explorer\Quick Launch\*"
Пытался запускать через cmdlines.txt и через [GuiRunOnce] - не срабатывает. Интересно, что из системы эта команда исправно выполняется. Что ей не хватает?

Kirk Hammett 24-04-2007 00:13 578641

может стоит попробовать
DEL "%UserProfile%\Application Data\Microsoft\Internet Explorer\Quick Launch\*.*"
или с %AllUsersProfile%

qeraser 24-04-2007 10:22 578729

ChVL
Скорее всего не получается удалить т.к. ярлыки в quiсk launch создаются после этапа GuiRunOnce, RunOnceEx.

Есть другие пути решения, например создать самораспаковывающийся, самоудаляемый архив, выполняющий данную команду. Поместить его в папку автозагрузка.

Murrey 24-04-2007 10:58 578742

Да, qeraser прав. Не совпадает по времени - когда команда выполняется, в QL еще ничего нет.
Есть еще вариант решения проблемы: в RunOnceEx прописать команду по добавлению в реестр в раздел RunOnceEx команду на удаление ярлыков. Таким образом, удаление будет производиться при втором входе в систему. После первой загрузки и выполнения первого RunOnceEx все равно как правило выполняется перезагрузка.

ChVL 24-04-2007 16:59 578909

Kirk Hammett
Нет, не катит.

Очевидно причина заключается, как правильно отметил qeraser, в том, что команда запускается вхолостую, ибо ярлыки загружаются позднее, при загрузке Рабочего стола и Панели Задач.

Murrey
Это я уже пробовал. Удалять надо после загрузки Панели Задач, а тогда уже ничего сделать нельзя, т.к. автоустановка не работает.

qeraser
Спасибо за идею, можно взять на вооружение и на будущее. Нет необходимости, правда, делать самораспаковывающийся архив. С этим делом прекрасно справляется обыкновенный *.cmd файлик из двух строчек: сначала делает своё дело, а затем удаляет сам себя. Осталось проверить на деле уже при автоустановке.

Murrey 25-04-2007 11:02 579261

ChVL
Ты меня не совсем понял. После выполнения RunOnceEx.cmd, у тебя добавляются записи в реестр и после первой загрузки системы выполняются команды, которые были внесены с помощью этого RunOnceEx.cmd, т.е. устанавливаются проги и т.д. Так вот последней командой в этом RunOnceEx.cmd нужно прописать выполнение, например, RunOnceEx_2.cmd, который внесет в реестр команду на удаление ярлыка (ну или на запуск соответствующего батника). Эта команда выполнится у тебя после второй загрузки системы, когда уже панель задач будет установлена. Если я тупо объясняю, скажи - приведу пример

ChVL 25-04-2007 17:28 579453

Murrey
Нет, Вы не правы, загрузка панели задач происходит уже после выполнения всех команд RunOnceEx, а после этого уже никаких действий автоустановки сделать невозможно. Более того, у меня там самой последней командой делается ещё одна перезагрузка (мне так надо), так даже после неё батник на удаление ярлыка не срабатывает, т.к. только после этого загружается панель задач.
Кстати, в справочнике по автоматической установке, в разделе Процесс установки по минутам эта процедура описана именно так.

Murrey 26-04-2007 07:34 579668

ChVL
Цитата:

Нет, Вы не правы, загрузка панели задач происходит уже после выполнения всех команд RunOnceEx
Разве я где-то утверждал обратное?

Приведу пример.
Вот содержание RunOnceEx.cmd, взятого из учебника (жирным выделено то, что добавлено вновь):
Код:

cmdow @ /HID
@echo off

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 "WinRar 3.51" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /f
REG ADD %KEY%\%i% /V 2 /D "REGEDIT /S %systemdrive%\install\Software\rar_set.reg /s" /f
SET /A i+=1

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

REG ADD %KEY%\%i% /VE /D "Download Master" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\Download_Master_4.4.3.947.exe" /f
SET /A i+=1

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

REG ADD %KEY%\%i% /VE /D "Light Alloy" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\Light_Alloy.msi /passive" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "Importing Registry Tweaks" /f
REG ADD %KEY%\%i% /V 1 /D "REGEDIT /S %systemdrive%\install\regtweaks.reg" /f
SET /A i+=1

REG ADD %KEY%\%i% /VE /D "*******" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\RunOnceEx_2.cmd" /f
SET /A i+=1


REG ADD %KEY%\%i% /VE /D "Cleaning Up and Rebooting" /f
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\cleanup.cmd" /f
SET /A i+=1

EXIT

Вот примерное содержание RunOnceEx_2.cmd
Код:

cmdow @ /HID
@echo off

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

REG ADD %KEY% /V TITLE /D "Quick Launch" /f

REG ADD %KEY%\100 /VE /D "Quick Launch cleaning" /f
REG ADD %KEY%\100 /V 1 /D "%systemdrive%\install\1.bat" /f

EXIT

Содержание 1.bat:
Код:

DEL "%UserProfile%\Application Data\Microsoft\Internet Explorer\Quick Launch\*.*"
Соответственно, RunOnceEx_2.cmd и 1.bat должны быть размещены в %systemdrive%\install, т.е. в дистрибутиве это - $OEM$\$1\install

Таким образом происходит следующее:
1) из cmdlines.txt на Т-12 запускается RunOnceEx.cmd, и вносятся соответствующие записи в реестр;
2) при первой загрузке выполняются команды из RunOnceEx, в том числе запускается RunOnceEx_2.cmd;
3) выполняется установка панели задач и ее элементов;
4) перезагрузка;
5) выполняются команды из RunOnceEx, внесенные с помощью RunOnceEx_2.cmd, а именно запускается 1.bat

ChVL 15-05-2007 17:47 587253

Murrey
Тщательно проверил предложенную Вами двухступенчатую систему. Не работает. Как оказалось, ошибка заключается в том, что не может быть прописан в раздел 100 ветки реестра батник 1.bat.

Одно из возможных решений следующее.
Пишем батник QLClean.cmd:
Код:

@echo off
DEL /q "%UserProfile%\Application Data\Microsoft\Internet Explorer\Quick Launch\*"
shutdown /r /t 00
DEL /q /f "%AllUsersProfile%\Главное меню\Программы\Автозагрузка\QLClean.cmd

Перезагрузка необходима для внеcения изменений.
Последней строчкой батник удаляет сам себя.
Батник помещаем сюда:
Код:

$OEM$\$Docs\All Users\Главное меню\Программы\Автозагрузка\QLClean.cmd
Может у кого-то есть более грамотное решение, но у этого есть явное преимущество: проверено, работает.
Проблема решена.

Murrey 21-05-2007 13:06 589244

Цитата:

Тщательно проверил предложенную Вами двухступенчатую систему. Не работает. Как оказалось, ошибка заключается в том, что не может быть прописан в раздел 100 ветки реестра батник 1.bat.
Вообще-то это странно. Тщательно перепроверил предложенный вариант. Все работает на 100%. В принципе, может не получаться из-за известной проблемы с iernonce.exe, когда не отрабатывает RunOnceEx. Скажем, без интеграции обновления KB931768 все должно пройти нормально. Но с другой стороны, данное обновление никак не мешает внесению записей в реестр.

Craager 21-05-2007 13:09 589247

А как наоборот добавить ярлык ??? Например, медиаплеера ???

Murrey 21-05-2007 13:27 589255

Где-то был подобный вопрос. Насколько помню, совет был - настроить ярлык на действующей системе, скопировать его в дистрибутив, и при установке закинуть в Quick Launch (или просто скопировать с помощью батника, или через sfx-архив). Речь же идет про WMP?

Craager 21-05-2007 13:35 589260

да, про медиаплеер 11

Murrey 21-05-2007 13:46 589268

Он при первом запуске настраивается и в одном из диалогов спрашивает, надо ли поместить ярлык в Quick Launch. Соответственно можно с помощью AutoIt скрипта осуществить первый запуск, размещение ярлыка и закрытие программы. Может, есть еще менее извращенные способы, но в голову так сразу не приходят :)

Craager 21-05-2007 14:21 589288

Мне надо, чтобы сразу появлялся ярлык в панели, без запуска плеера!

qeraser 21-05-2007 18:08 589382

Craager
Создайте батник, который будет копировать заранее созданный ярлык (например с CD) куда нам надо и удалять себя.
Поместите в папку "Автозагрузка".
Также вместо батника можно создать SFX или Autoit, который будет создавать ярлык.

Murrey 22-05-2007 06:03 589496

Цитата:

Мне надо, чтобы сразу появлялся ярлык в панели, без запуска плеера!
Действительно нужно, чтобы WMP именно не запускался? Или просто есть необходимость не делать этого руками? Если второе, то с помощью AutoIt можно все сделать автоматически, в том числе и ассоциации файлов расставить. И при следующем запуске WMP не будет диалогов настройки.
Если первое, то создавайте ярлык заранее


Время: 13:23.

Время: 13:23.
© OSzone.net 2001-