Oprogramowanie systemu Windows do zapisywania dowolnego stanu aplikacji

14

Oprogramowanie VM doskonale zapisuje stan, gdy go „wyłączasz”, umożliwiając natychmiastowy i natychmiastowy powrót do poprzedniego stanu.

Czy jest jakaś aplikacja dla systemu Windows, która pozwala mi robić to samo w przypadku dowolnego dowolnego oprogramowania? Pozwoliłoby mi to zapisać / przywrócić stan, prawdopodobnie za pomocą polecenia powłoki lub przycisku, który dołącza do każdego okna.

Edycja: Dla jasności istnieją dwa rodzaje aplikacji: te, które zapisują własne stany oraz te, które zapisują stany innych. Te, które zapisują swój własny stan, są jak Chrome, który po załadowaniu ponownie ładuje okna, które miałeś ostatnio otwarte.

Nie o to pytam; Proszę o aplikację, która może zapisać stan innych aplikacji, podobnie jak oprogramowanie VM; ale dla dowolnej aplikacji. (Trywialnym testem byłoby załadowanie notatnika ++, wpisanie kilku rzeczy i zapisanie stanu; w stanie resetowania powinieneś być w stanie wielopoziomowo cofnąć wiele tego, co napisałeś, tak jakbyś nigdy nie wyłączał aplikacji. )

ashes999
źródło
+1 Interesujące pytanie. Ponieważ inne podobne pytania nie otrzymały żadnych dobrych (jeśli w ogóle) odpowiedzi, jestem sceptyczny.
Nifle
@Nifle zgodził się. Zasadniczo powinno to być możliwe (zapisz zrzut pamięci aplikacji, załaduj ponownie po ponownym uruchomieniu) - więc mam wrażenie, że istnieje; Po prostu nie mogę znaleźć aplikacji, która to robi.
ashes999
Przeczytaj: Hibernacja.
Cześć71,
W moim przypadku hibernacja nie jest rozwiązaniem. Byłem mocno hibernowanym użytkownikiem, dopóki nie kupiłem dysku SSD. Sprawdź odpowiedź @Matthew A. Schneider.
Mario S

Odpowiedzi:

3

Ryzykując, że zostanę odrzucony, muszę udzielić negatywnej odpowiedzi.

Wiele osób chciałoby tego, w tym ja. Długo też szukałem takiego produktu, zanim zrozumiałem, że nie istnieje, a nawet nie może istnieć. Być może możliwe są ograniczone wdrożenia zawieszenia / zawieszenia, ale nie ogólne.

Pomyśl na przykład o zawieszeniu aplikacji, która ma otwarty plik na dysku CD lub otwarte połączenie internetowe. Teraz wyobraź sobie, co trzeba zrobić, aby „zawiesić” i „cofnąć zawieszenie”: wszystkie pliki i połączenia mają zostać zapisane przy zawieszeniu, a następnie przy zawieszeniu do odtworzenia, napęd CD może zostać zweryfikowany i otwarty plik, połączenia internetowe ponownie - ustanowiony ze wszystkimi danymi do logowania na stronie itp.

Jest to po prostu zbyt skomplikowane, aby wdrożyć go w dowolnym systemie operacyjnym, i stanowiłoby również lukę w zabezpieczeniach, pomijając potrzebę wprowadzania danych logowania, jeśli stan aplikacji został „przechwycony” tuż po zalogowaniu. Aby poprawnie zawiesić aplikację, wystarczy zapisać stan całego systemu operacyjnego (który istnieje).

harrymc
źródło
4
Jeśli działa w trybie hibernacji, nie ma powodu, aby nie działał w scenariuszu opisanym przez OP. Trzeba będzie oczywiście ponownie ustanowić uchwyty plików i zarządzać bezpieczeństwem, ale nikt nie powiedział, że będzie to łatwe. To powiedziawszy, zrzut surowej pamięci wymaga uprawnień, które powinien mieć tylko system operacyjny. Będziesz musiał poważnie zaufać aplikacji, aby dać jej uprawnienia do systemu operacyjnego (zakładając, że można nawet nadać jej takie uprawnienia).
Xr.
@Xr: Hibernacja dotyczy całego komputera, który, jak powiedziałem, istnieje (chociaż nie gwarantuje się, że aplikacje nie zawiodą po wznowieniu). Przypadek „jednej aplikacji” tak naprawdę nie istnieje, ponieważ stan aplikacji jest częścią stanu systemu operacyjnego. Jak mówisz, ten mechanizm jest możliwy, ale musi być wbudowany w sam system operacyjny. Aplikacja działająca w przestrzeni użytkownika nie ma wymaganego dostępu do tabel systemowych i sterowników, a to również wymaga bardzo specjalistycznej wiedzy na ich temat.
harrymc
Masz rację, że to skomplikowane. Zacząłem pytanie SO na ten temat, a odpowiedź była, zgodnie z oczekiwaniami, „bardzo skomplikowana w budowaniu z powodu tych wszystkich problemów”.
ashes999
5

Bez wirtualizacji jedyną opcją w systemie Microsoft Windows jest wstrzymywanie / wznawianie aplikacji. Narzędzia, które mogą to zrobić, to PySuspend i Pausep . To nie pozwoli ci wykonać żadnego „cofnięcia”.

Chociaż istnieją produkty do wirtualizacji, takie jak QubesOS, które mogą robić to, czego szukasz w systemach Linux, prawdopodobnie nie zobaczysz tego w systemie Microsoft Windows bez bezpośredniego wsparcia ze strony Microsoft. Jednak nawet w QubesOS powinno być możliwe uruchomienie produktu do wirtualizacji, takiego jak VirtualBox lub VMWare Workstation, w celu uruchomienia aplikacji Windows. Możesz także uruchamiać aplikacje Windows za pośrednictwem wine , z pełnym wykorzystaniem abstrakcji QubesOS.

Alternatywnie można uruchomić wiele maszyn wirtualnych z osobną kopią systemu Windows pod każdą z nich. Niektóre wersje MS Windows pozwalają na uruchomienie jednej lub więcej kopii systemu operacyjnego, zwirtualizowanych, na jednej licencji.

ewindisch
źródło
Tak, w najgorszym przypadku mogę zawsze mieć komputer jako „cienkiego” klienta i uruchamiać wszystko w maszynie wirtualnej (z 10% spadkiem wydajności w przypadku VM Ware). To nie jest zły plan tworzenia kopii zapasowych - chyba że udostępniasz swój komputer osobom bez wiedzy technicznej, które zastanawiają się, co robisz :)
ashes999,
Czy te narzędzia pozwalają na pauzę, zamknięcie aplikacji, a następnie wznowienie z poprzedniego stanu?
ashes999
1
PySuspend i Pausep wydają system Windows odpowiadający sygnałom POSIX SIGSTOP / SIGCONT. Nie pozwala to na całkowite „zamknięcie” aplikacji, nie zwalnia żadnych alokacji pamięci. Po prostu zatrzymują proces z wykorzystaniem dowolnego procesora, dopóki proces nie zostanie zawieszony / wznowiony.
ewindisch
1

To wykonalne. Sprawdź następujące.

Twinsplay: http://www.twinsplay.com/learn-more-about-twinsplay

SmartClose: http://download.cnet.com/SmartClose/3000-2094_4-10784165.html

Matthew A. Schneider
źródło
1
Dlaczego te Jak rozwiązują problem?
ale
Myślę, że ta odpowiedź została niesprawiedliwie odrzucona. Po odpowiedzi @harrymc są to dobre alternatywy dla aplikacji, o którą poprosił ashes999. W tej chwili szukam czegoś takiego jak popiół, ponieważ mam dysk SSD i nie chcę hibernować. W tym sensie SmartClose wydaje mi się ciekawym rozwiązaniem, które próbuję teraz.
Mario S
SmartClose ( ghacks.net/2008/12/03/smart-close ) i prawdopodobnie Twinsplay też po prostu ponownie otwierają okna i liczą, że same aplikacje uratują swój stan
mic