Навсякъде се е случило - отивате да инсталирате ново приложение и Windows ви решава първо да рестартирате. Или рестартирайте след това. Или ви моли първо да затворите всяка друга молба. Защо го прави?
В съвременния урок по урока ще обясним точно защо Windows може да е толкова раздразнителен с цялото това рестартиране и да се надяваме, че ще ви дадем по-добра представа защо нещата работят по този начин.
Краткият отговор е, че повечето инсталатори са досадни, защото или не са написани много добре, или се интегрират твърде дълбоко в Windows, за да могат да копират системни файлове и да стартират всичко необходимо без рестартиране.
Проблемът се усложнява, защото приложенията на Windows често използват DLL (библиотека за динамични връзки), които се споделят между повече от едно приложение. Това е хубава идея, но когато става въпрос за инсталиране и деинсталиране на приложения, може да е дразнещо да се наложи да рестартирате. Трудно е, че много приложения в наши дни са напълно самостоятелни и не заменят вградените Windows DLL, но техните инсталатори все още ви правят рестартиране.
Ето няколко случая, при които инсталаторите може да са досадни:
Нека да разгледаме по-отблизо някои от тези случаи, за да можете напълно да разберете какво се случва.
Ако инсталаторът на приложения трябва да копира някои файлове, но те се използват в момента или са системни файлове в случай на Windows Update, той ще използва функцията Чакаща в Windows, която позволява на инсталатора да определи, че операцията на файла се случва след рестартиране, и преди всичко в Windows да започне.
Инсталационната програма ще напише ключ в следното място в системния регистър:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Мениджър на сесии
\ PendingFileRenameOperations
Ако сте получили грешка, че трябва първо да рестартирате, можете да отворите този клавиш и ще видите всички файлове, които трябва да бъдат заменени при следващото рестартиране.
Вероятно не искате да се забърквате със съдържанието на този ключ, защото иначе нещата ще започнат да стават странни. Има някои много редки случаи, в които този ключ не се изпразва дори след многократни рестартирания и може да се наложи да изтриете съдържанието на ключа, но най-вероятно трябва да избегнете това, освен ако не сте сигурни.
Някои инсталатори няма да стартират, ако текущата инсталация е в ход, затова ще проверят следния ключ, за да видят дали вече се случва инсталация:
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress
Нямам екранна снимка за тази, но можете да получите идеята от името на ключа.
Ако получавате съобщение, че не можете да инсталирате приложение, докато не рестартирате компютъра, това се дължи на Windows Update, която изисква принудително рестартиране. Така например, ако получавате това съобщение за грешка:
Това е така, защото вероятно сте кликнали върху Отлагане, когато сте видели този диалогов прозорец:
Ако влезете в системния регистър, ще видите, че в този регистър има ключ RebootRequired на това място:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \
CurrentVersion \ WindowsUpdate \ Автоматична актуализация
На дясната страна има цял куп GUID стойности и докато те не се отнасят до нищо в регистъра, фактът, че те са там, е това, което предизвиква това съобщение.
Технически вероятно бихте могли да експортирате съдържанието на ключа, да инсталирате приложението и след това да го върнете обратно - но това може да счупи нещо и рестартирането не е толкова болезнено, нали?
Така че сега научихте малко повече за това, защо инсталаторите на приложения работят така, както правят. Имате ли нещо друго, което бихте искали да знаете? Обяснете си неудобствата в коментарите и ще видим дали не можем да хвърлим светлина върху тях.