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

StackOverflow https://stackoverflow.com/questions/15805

  •  08-06-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Более подробное объяснение см. в разделе здесь и здесь

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top