If-Koubou

Защо приложенията за инсталиране ви правят рестартиране и затваряне на други приложения?

Защо приложенията за инсталиране ви правят рестартиране и затваряне на други приложения? (Как да)

Навсякъде се е случило - отивате да инсталирате ново приложение и Windows ви решава първо да рестартирате. Или рестартирайте след това. Или ви моли първо да затворите всяка друга молба. Защо го прави?

В съвременния урок по урока ще обясним точно защо Windows може да е толкова раздразнителен с цялото това рестартиране и да се надяваме, че ще ви дадем по-добра представа защо нещата работят по този начин.

Защо инсталаторите са досадни?

Краткият отговор е, че повечето инсталатори са досадни, защото или не са написани много добре, или се интегрират твърде дълбоко в Windows, за да могат да копират системни файлове и да стартират всичко необходимо без рестартиране.

Проблемът се усложнява, защото приложенията на Windows често използват DLL (библиотека за динамични връзки), които се споделят между повече от едно приложение. Това е хубава идея, но когато става въпрос за инсталиране и деинсталиране на приложения, може да е дразнещо да се наложи да рестартирате. Трудно е, че много приложения в наши дни са напълно самостоятелни и не заменят вградените Windows DLL, но техните инсталатори все още ви правят рестартиране.

Ето няколко случая, при които инсталаторите може да са досадни:

  • Ако приложението, което инсталирате, трябва да копира нови версии на файлове, които понастоящем се използват от друго приложение, то ще ви подкани да затворите всички останали приложения или това ще ви накара да рестартирате.
  • Ако има предишна инсталация или Windows Update, която има изчакване на промени, изискващи рестартиране, някои инсталации ще се провалят и първо ще ви помолят да рестартирате.
  • Ако приложението, което инсталирате, има плъгин за друго приложение, като допълнение към контекстно меню на Explorer или приставка за браузър, той ще ви подкани да рестартирате или затворите другите приложения.
  • Понякога силно написаните инсталатори ще ви помолят да рестартирате, тъй като те не стартират само по себе си необходимите услуги.

Нека да разгледаме по-отблизо някои от тези случаи, за да можете напълно да разберете какво се случва.

Файловете в употреба трябва да бъдат копирани при рестартиране

Ако инсталаторът на приложения трябва да копира някои файлове, но те се използват в момента или са системни файлове в случай на Windows Update, той ще използва функцията Чакаща в Windows, която позволява на инсталатора да определи, че операцията на файла се случва след рестартиране, и преди всичко в Windows да започне.

Инсталационната програма ще напише ключ в следното място в системния регистър:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Мениджър на сесии
\ PendingFileRenameOperations

Ако сте получили грешка, че трябва първо да рестартирате, можете да отворите този клавиш и ще видите всички файлове, които трябва да бъдат заменени при следващото рестартиране.

Вероятно не искате да се забърквате със съдържанието на този ключ, защото иначе нещата ще започнат да стават странни. Има някои много редки случаи, в които този ключ не се изпразва дори след многократни рестартирания и може да се наложи да изтриете съдържанието на ключа, но най-вероятно трябва да избегнете това, освен ако не сте сигурни.

Инсталацията вече е в процес на разработка

Някои инсталатори няма да стартират, ако текущата инсталация е в ход, затова ще проверят следния ключ, за да видят дали вече се случва инсталация:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress

Нямам екранна снимка за тази, но можете да получите идеята от името на ключа.

Windows Update ви рестартира

Ако получавате съобщение, че не можете да инсталирате приложение, докато не рестартирате компютъра, това се дължи на Windows Update, която изисква принудително рестартиране. Така например, ако получавате това съобщение за грешка:

Това е така, защото вероятно сте кликнали върху Отлагане, когато сте видели този диалогов прозорец:

Ако влезете в системния регистър, ще видите, че в този регистър има ключ RebootRequired на това място:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \
CurrentVersion \ WindowsUpdate \ Автоматична актуализация

На дясната страна има цял куп GUID стойности и докато те не се отнасят до нищо в регистъра, фактът, че те са там, е това, което предизвиква това съобщение.

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

Така че сега научихте малко повече за това, защо инсталаторите на приложения работят така, както правят. Имате ли нещо друго, което бихте искали да знаете? Обяснете си неудобствата в коментарите и ще видим дали не можем да хвърлим светлина върху тях.