PDA

Показать полную графическую версию : [решено] Запуск при загрузке рабочего стола или копирование если не загружен рабочий стол


Pozia
03-02-2010, 23:55
Как батником можно проверить загружен или нет рабочий стол? Мне нужно чтобы при запуске батника определялось запущен ли рабочий стол, если да - то происходит выполнение определенных команд, если нет - то команда копирования в автозагрузку

Vadikan
04-02-2010, 01:25
Pozia, нет такого процесса "рабочий стол", есть explorer.exe.

Pozia
04-02-2010, 01:29
есть explorer.exe. »
стало быть по тому есть он в диспетчере или нет можно судить о полной загрузке системы? А как будет выглядить команда проверки наличия нужного процесса? в частности explorer.exe.

Vadikan
04-02-2010, 01:59
стало быть по тому есть он в диспетчере или нет можно судить о полной загрузке системы? »
Система загружается еще до входа пользователя. Судить же о полной загрузке профиля по explorer.exe можно с натяжкой. Я бы смотрел в сторону RunOnceEx и не надо никаких автозагрузок.

А как будет выглядить команда проверки наличия нужного процесса? в частности explorer.exe. »
Как фильтр в этом форуме по слову процесс...

Pozia
04-02-2010, 07:28
Я бы смотрел в сторону RunOnceEx и не надо никаких автозагрузок. »
вы меня немножко не поняли. Подробнее описываю. У меня есть SFX файл который при запуске делает ярлыки на рабочий стол всех установленных программ. Выбор запуска этого SFX возможен через BSPI. BSPI запускается через RunOnceEx или же потом на рабочей системе. Так вот если запуск SFX идет на рабочей системе то нужно запустить SFX, если через RunOnceEx посредствам BSPI то нужно его скопировать в автозагрузку и он отработает при загрузке сам и самоудалится. Вот как то так... Так по какому процессу можно судить о полной загрузке Windows? Или еще какие методы есть?

amel27
04-02-2010, 08:54
если запуск SFX идет на рабочей системе то нужно запустить SFX, если через RunOnceEx»
ИМХО проще распознать запуск из RunOnceEx, чем зафиксировать "полную загрузку" (кстати, весьма расплывчатое понятие)... например, по наличию BSPI-ключа в ветке RunOnceEx (ключ удаляется только после отработки всех параметров-команд):


@Echo Off

REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\BSPI 2>Nul

If ErrorLevel 1 (
Echo Script run from Console
) Else (
Echo Script run from RunOnceEx
)

PAUSE >Nul

Vadikan
04-02-2010, 10:01
если через RunOnceEx посредствам BSPI то нужно его скопировать в автозагрузку и он отработает при загрузке сам и самоудалится »
А почему нельзя запуск SFX сделать последним в списке устанавливаемых программ BSPI? Там же наверняка есть возможность задать порядок установки отмеченных элементов. Зачем перезагрузка и автозагрузка? Не понимаю...

Да и вообще, какой-то странный подход - собирать ярлыки в один SFX... А если какие-то программы не будут установлены? Проще уж с nircmd второй командой создавать ярлыки для каждой программы, если она выбрана.

Pozia
04-02-2010, 11:41
Vadikan, просто делаю сборку на любой вкус. Я лично не люблю ярлыки на рабочем столе, поэтому специальный скрипт делает мне ярлыки в торале тех программ что стоят. Кому то нравятся ярлыки, вот пусть и выбирают установку ярлыков для выбранных программ. А ярлыки на рабочем столе появятся только тех программ которые стоят. Там есть проверка на наличе программы перед созданием ярлыка.

Vadikan
05-02-2010, 02:21
Pozia, гм... как я понял, у вас 58 программ и 1 SFX, который создает ярлыки, если программа установлена. Назначьте для SFX такой порядок запуска, чтобы он выполнялся последним, после всех программ. Если выбрано 39 программ и SFX, то он сделает ярлыки для 39 программ.

Pozia
05-02-2010, 02:30
как я понял, у вас 58 программ »
Откуда цифра? ))Назначьте для SFX такой порядок запуска, чтобы он выполнялся последним, после всех программ. Если выбрано 39 программ и SFX, то он сделает ярлыки для 39 программ. »
Так было до недавнего времени. Ща хочу чуть суть изменить...

PS Накрылся винт со всем после програмного сбоя ((( Если верну данные к жизни растолкую что хочу, если нет видимо покину форум, заново все создавать нет силы воли :(




© OSzone.net 2001-2012