Сведения о вопросе

Martincow

17:22, 22nd August, 2020

Теги

Почему мои приложения автоматического запуска действуют странно на Vista?

Просмотров: 426   Ответов: 2

Продукт, над которым мы работаем, позволяет пользователю легко настроить его на автоматический запуск при каждом запуске компьютера. Это полезно, потому что продукт является частью основной рабочей среды большинства наших пользователей.
Эта функция была реализована не так давно, и некоторое время все было хорошо, но когда мы начали тестировать эту функцию на Vista, продукт начал вести себя очень странно при запуске. В частности, наш продукт использует другой продукт (назовем его X), который он запускает всякий раз, когда ему нужны его услуги. Реальная проблема заключается в том, что всякий раз, когда X запускается сразу после входа в систему, он падает или сообщает о критических ошибках, связанных с доступом к диску (это происходит даже тогда, когда X запускается напрямую, а не через наш продукт).

Это происходит всякий раз, когда мы запускаем наш продукт, зарегистрировав его в разделе "Run" реестра или разместив ярлык для него в папке "Startup" в "меню Пуск", даже если мы помещаем задержку в ~20 секунд до фактического запуска. Когда мы изменили задержку на 70 секунд, все хорошо.

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

Теперь, как это возможно, что приложения, которые работают нормально через минуту после входа в систему сообщают такие жесткие ошибки при запуске сразу после входа в систему?



  Сведения об ответе

JUST___

02:26, 14th August, 2020

Это эффект новой функции в Vista под названием "Boxing": Windows имеет несколько механизмов, которые позволяют пользователю / администратору настроить приложения для автоматического запуска при запуске windows. Эта функция в основном используется для одной из этих целей: 1. Программы, которые являются частью основной рабочей среды пользователя, так что первое действие, которое пользователь обычно предпринимает при запуске компьютера, - это их запуск. 2. Все виды фона "agents"-skype, messenger, winamp и т. д.

Когда регистрируется слишком много (или слишком тяжелых) программ для запуска при запуске, конечным результатом является то, что пользователь не может ничего сделать в течение первых нескольких секунд/минут после входа в систему, что может быть очень раздражающим. В приходит функция Vista "Boxing":

Короче говоря, Vista заставляет все программы, вызываемые с помощью клавиши Run, работать с низким приоритетом в течение первых 60 секунд после входа в систему. Это влияет как на приоритет ввода-вывода (который установлен на очень низкий), так и на приоритет CPU . Запросы ввода-вывода с очень низким приоритетом не проходят через файловый кэш, а направляются непосредственно на диск. Таким образом, они намного медленнее, чем обычные I/O. Длина периода хранения устанавливается значением реестра: "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DelayedApps\Delay_Sec".

Для более подробного объяснения смотрите здесь и здесь


  Сведения об ответе

park

03:43, 5th August, 2020

Программа, вероятно, нуждается в дополнительной информации, помещенной в ее свойства. Он должен "работать как", а не просто работать.

Возможно, это приложение должно быть разработано как сервис, а не программа для запуска, или у вас может быть сервис, который запускает программу, когда ее определяют лучшее окно возможностей.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться