Домашня » як » Чому програми встановлюють перезавантаження та закривають інші програми?

    Чому програми встановлюють перезавантаження та закривають інші програми?

    Це сталося з усіма в певний момент - ви йдете встановлювати нову програму, а Windows спочатку сповіщає вас про перезавантаження. Або перезавантажте після. Або він просить вас закрити всі інші програми. Чому це робить?

    У сьогоднішньому уроці викладачів ми пояснимо, чому Windows може так дратувати всім цим перезавантаженням, і ми сподіваємося дати вам кращу перспективу, чому все так працює.

    Так чому ж інсталятори дратують?

    Коротка відповідь полягає в тому, що більшість інсталяторів дратує, тому що вони або не написані дуже добре, або вони занадто глибоко інтегруються у Windows, щоб мати можливість копіювати системні файли і починати все необхідне без перезавантаження..

    Проблема ускладнюється тим, що програми Windows часто використовують файли DLL (динамічної бібліотеки), які спільно використовуються більш ніж однією програмою. Це гарна ідея, але коли справа доходить до встановлення та видалення додатків, це може викликати подразнення у необхідності перезавантаження. Дуже сумно, що багато додатків у ці дні є повністю автономними і не замінюють вбудовані DLL для Windows, але їхні інсталятори все ще змушують вас перезавантажити.

    Ось кілька випадків, коли інсталятори можуть дратувати:

    • Якщо програма, яку ви встановлюєте, повинна копіювати нові версії файлів, які зараз використовуються іншою програмою, вона запитає вас про закриття всіх інших програм, або це змусить вас перезавантажити.
    • Якщо є попередня інсталяція або служба Windows Update, яка має очікувані зміни, які потребують перезавантаження, деякі установки не вдасться і спочатку попросять перезавантажити.
    • Якщо програма, яку ви встановлюєте, має плагін для іншої програми, наприклад додаток контекстного меню оглядача, чи додаток для веб-переглядача, він запропонує перезавантажити або закрити інші програми.
    • Іноді погано написані інсталятори запитають вас про перезавантаження, оскільки вони не запускають потрібні послуги самостійно.

    Давайте розглянемо деякі з цих випадків, щоб ви могли повністю зрозуміти, що відбувається.

    Файли, що використовуються, повинні бути скопійовані на перезавантаження

    Якщо інсталятору програми необхідно скопіювати деякі файли, але вони зараз використовуються, або це системні файли у випадку служби Windows Update, у Windows буде використано функцію очікування, що дозволяє інсталятору вказувати, що операція файлу відбувається після перезавантаження, і перед тим, як все в Windows запущено.

    Інсталятор напише ключ у наступному місці в реєстрі:

    HKEY_LOCAL_MACHINE СИСТЕМА CurrentControlSet Керування сеансами керування
    PendingFileRenameOperations

    Якщо ви отримали помилку про те, що вам потрібно спочатку перезавантажити комп'ютер, ви можете відкрити цей ключ, і ви побачите всі файли, які потрібно замінити при наступному перезавантаженні..

    Ви, напевно, не хочете зіштовхуватися з вмістом цього ключа, інакше речі швидко стануть дивними. Існують деякі дуже рідкісні випадки, коли цей ключ не спорожняється навіть після декількох перезавантажень, і вам, можливо, доведеться видалити вміст ключа, але, ймовірно, вам доведеться уникати цього.

    Встановлення вже розпочато

    Деякі інсталятори не запускатимуться, якщо виконується поточна інсталяція, тому вони перевірятимуть наступний ключ, щоб дізнатися, чи є інша установка:

    HKEY_LOCAL_MACHINE Програмне забезпечення Microsoft \ t

    У мене немає знімка для цього, але ви можете отримати ідею від імені ключа.

    Windows Update робить перезавантаження

    Якщо ви отримуєте повідомлення про те, що ви не можете встановити програму до перезавантаження комп'ютера, це пов'язано з тим, що Windows Update вимагає примусового перезавантаження. Наприклад, якщо ви отримуєте це повідомлення про помилку:

    Це пояснюється тим, що ви, ймовірно, натиснули Відкласти, коли ви побачили це діалогове вікно:

    Якщо ви ввійдете до реєстру, ви побачите, що в цьому реєстрі в реєстрі є ключ RebootRequired:

    ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ HKEY_LOCAL_MACHINE
    Автоматичне оновлення

    Існує ціла купа значень GUID на правій стороні, і хоча вони не відносяться ні до чого в реєстрі, той факт, що вони є, є тим, що викликає це повідомлення.

    Технічно ви могли б експортувати вміст ключа, встановити програму, а потім покласти їх назад, - але це може зламати щось, і перезавантаження не є таким болючим?


    Тепер ви дізналися трохи більше про те, чому інсталятори програм працюють так, як це роблять. Чи є ще щось, що ви хотіли б знати? Поясніть ваші розчарування у коментарях, і ми побачимо, якщо ми не можемо пролити світло на них.