Zdarzyło się to każdemu w pewnym momencie - idziesz do zainstalowania nowej aplikacji, a system Windows prosi o ponowne uruchomienie komputera. Lub zrestartuj po. Lub prosi Cię o zamknięcie wszystkich innych aplikacji. Dlaczego to robi?
W dzisiejszej lekcji maniaków wyjaśnimy dokładnie, dlaczego system Windows może być tak irytujący po ponownym uruchomieniu komputera, i mam nadzieję, że da to lepszą perspektywę, dlaczego rzeczy działają w ten sposób.
Krótka odpowiedź brzmi, że większość instalatorów jest denerwująca, ponieważ albo nie są napisani bardzo dobrze, albo zbyt głęboko integrują się z Windows, aby móc kopiować pliki systemowe i uruchamiać wszystko, co niezbędne, bez ponownego uruchamiania.
Problem jest złożony, ponieważ aplikacje systemu Windows często korzystają z plików DLL (biblioteki dynamicznej), które są współużytkowane przez więcej niż jedną aplikację. To niezły pomysł, ale jeśli chodzi o instalowanie i odinstalowywanie aplikacji, może być irytujące, że trzeba ponownie uruchomić komputer. Naprawdę smutną rzeczą jest to, że wiele aplikacji w dzisiejszych czasach jest całkowicie niezależnych i nie zastępuje wbudowanych bibliotek DLL systemu Windows, ale ich instalatory wciąż powodują ponowne uruchomienie.
Oto kilka przykładów, w których instalatory mogą być denerwujące:
Przyjrzyjmy się niektórym z tych przykładów, aby w pełni zrozumieć, co się dzieje.
Jeśli instalator aplikacji musi skopiować niektóre pliki, ale są one aktualnie używane, lub są plikami systemowymi w przypadku usługi Windows Update, będzie korzystać z funkcji Oczekiwanie w systemie Windows, która pozwala instalatorowi określić, że operacja na pliku ma miejsce po ponownym uruchomieniu, i zanim wszystko w Windows się uruchomi.
Instalator zapisze klucz w następującej lokalizacji w rejestrze:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager
\ PendingFileRenameOperations
Jeśli pojawi się błąd informujący, że musisz najpierw ponownie uruchomić komputer, możesz otworzyć ten klucz, a zobaczysz wszystkie pliki, które należy zastąpić przy następnym uruchomieniu.
Prawdopodobnie nie chcesz zadzierać z zawartością tego klucza, bo inaczej rzeczy szybko staną się dziwne. Istnieje kilka bardzo rzadkich przypadków, w których klucz ten nie zostanie opróżniony nawet po wielu ponownych uruchomieniach i może być konieczne wyczyszczenie zawartości klucza, ale prawdopodobnie należy tego unikać, chyba że jest się tego pewnym.
Niektóre instalatory nie zostaną uruchomione, jeśli trwa bieżąca instalacja, więc sprawdzą następujący klucz, aby sprawdzić, czy instalacja już się odbywa:
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress
Nie mam zrzutu ekranu dla tego, ale możesz dostać pomysł z nazwy klucza.
Jeśli otrzymujesz komunikat informujący, że nie możesz zainstalować aplikacji, dopóki nie uruchomisz ponownie komputera, dzieje się tak z powodu Windows Update wymagającej wymuszonego restartu. Na przykład, jeśli otrzymujesz komunikat o błędzie:
To dlatego, że prawdopodobnie kliknąłeś Postpone, gdy zobaczysz to okno dialogowe:
Jeśli wejdziesz do rejestru, zobaczysz, że w rejestrze znajduje się klucz RebootRequired:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \
CurrentVersion \ WindowsUpdate \ Auto Update
Po prawej stronie znajduje się cała masa wartości GUID i chociaż nie dotyczą one niczego w rejestrze, to fakt, że są one obecne, jest tym, co wyzwala tę wiadomość.
Technicznie możesz prawdopodobnie wyeksportować zawartość klucza, zainstalować aplikację, a następnie odłożyć ją - ale może coś zepsuć, a ponowne uruchomienie nie jest tak bolesne?
Teraz dowiedziałeś się trochę więcej o tym, dlaczego instalatory aplikacji działają tak, jak robią to. Czy jest jeszcze coś, co chciałbyś wiedzieć? Wyjaśnij swoje frustracje w komentarzach, a zobaczymy, czy nie możemy rzucić trochę światła na nie.