If-Koubou

Dlaczego instalacje aplikacji umożliwiają ponowne uruchamianie i zamykanie innych aplikacji?

Dlaczego instalacje aplikacji umożliwiają ponowne uruchamianie i zamykanie innych aplikacji? (Jak)

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.

Dlaczego więc instalatorzy denerwują?

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:

  • Jeśli instalowana aplikacja musi skopiować nowe wersje plików, które są obecnie używane przez inną aplikację, wyświetli monit o zamknięcie wszystkich innych aplikacji lub spowoduje ponowne uruchomienie.
  • Jeśli istnieje poprzednia instalacja lub witryna Windows Update, która oczekuje na zmiany wymagające ponownego uruchomienia, niektóre instalacje zakończą się niepowodzeniem i poprosi o ponowne uruchomienie komputera.
  • Jeśli instalowana aplikacja ma wtyczkę do innej aplikacji, np. Dodatek do menu kontekstowego Eksploratora lub wtyczkę do przeglądarki, wyświetli monit o ponowne uruchomienie lub zamknięcie innych aplikacji.
  • Czasem źle napisani instalatorzy proszą o ponowne uruchomienie, ponieważ nie uruchamiają wymaganych usług samodzielnie.

Przyjrzyjmy się niektórym z tych przykładów, aby w pełni zrozumieć, co się dzieje.

Pliki w użyciu muszą zostać skopiowane przy ponownym uruchomieniu

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.

Instalacja już w toku

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.

Windows Update powoduje ponowne uruchomienie

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.