Przywracanie otwartego oprogramowania po zdarzeniu ponownego uruchomienia w systemie Windows


36

Uważam, że pod koniec długiego dnia czasami mam uruchomioną dużą liczbę programów. Wszystko, co będę musiał wykorzystać jutro. Zwykle nie jest to problem, mogę po prostu zablokować maszynę i wrócić jutro. Mój problem pojawia się, gdy aktualizacja systemu Windows uruchamia się w środku nocy i wymusza ponowne uruchomienie komputera. To z kolei zamyka całe moje otwarte oprogramowanie. Oczywiście zapisuję wszystko regularnie, więc niczego nie tracę, ale tracę czas na ponowne otwieranie wszystkich tych zasobów przy każdym ponownym uruchomieniu.

[EDYTOWAĆ]

Powinienem wyjaśnić, że nadal chcę móc ponownie uruchomić komputer po aktualizacji. Zapobieganie ponownemu uruchomieniu opóźnia problem do później. Powinienem był bardziej szczegółowo powiedzieć, że chcę móc odzyskać środowisko pracy po ponownym uruchomieniu z dowolnego powodu. Rzeczy takie jak planowa konserwacja, utrata zasilania, aktualizacje i instalacje oprogramowania.

[EDYTOWAĆ]

Nie mogę po prostu skonfigurować ich do uruchamiania przy starcie, ponieważ te pliki zmieniają się z tygodnia na tydzień. Potrzebuję więc czegoś, co monitoruje to, co mam otwarte, i daje mi opcję „odzyskania” tych sesji oprogramowania po ponownym zalogowaniu.

Czy ktoś ma jakieś sugestie dotyczące tego, co mogę zrobić? Byłbym nawet skłonny kupić oprogramowanie, aby to dla mnie zrobić, jeśli jest to jedyna opcja.

Dzięki


Właściwie pamiętam gdzieś, że Win7 miał mieć coś takiego, chociaż myślę, że nie byli w stanie przygotować go na czas do wydania. Więc może nadejdzie w przyszłości.
eidylon

1
Polecenie „shutdown / g” wygląda na to, że można je połączyć z funkcją automatycznego odzyskiwania po awarii programu, aby wykonać 75% tego, czego szukam. Będę musiał wykonać więcej testów, aby zobaczyć, czy to działa.
Doltknuckle

1
polecenie shutdown tak naprawdę nie działa zgodnie z oczekiwaniami ... tak naprawdę potrzebuję sposobu monitorowania aktualnie otwartych plików. Następnie mogę po prostu zbudować skrypt dynamiczny, aby ponownie uruchomić te pliki.
Doltknuckle

1
6 lat później i nadal nie jest to funkcja systemu Windows ... OSX ma to od lat!
GiH

7 lat i
wciąż trwa

Odpowiedzi:


16

Jest to tak denerwujące, że wciąż nie ma eleganckiego rozwiązania tego problemu!

Zdarza się nam wszystkim: Windows spowalnia aż do zatrzymania (powoduje pewien wyciek pamięci, ponieważ jest to typowe 132 karty otwarte w chromie, 57 otwarte w firefoxie, 24 okna otwarte w sumie, robi kompleks operacja obejmująca ich wszystkich w tym samym czasie, gdy wykonujesz pracę nad pracą, nad pracą ... rodzaj faceta), i robi się tak powoli, że zaczynasz tracić czas na czekanie, aż coś się wydarzy komputer ..... po prostu MUSISZ zresetować sesję, która powoli narastała w ciągu ostatnich 5 tygodni, i wreszcie poddać się koszmarowi, który odtwarza skomplikowany bałagan okien i otwieranych plików i folderów eksploratora po przerażających oknach uruchom ponownie.

DOBRZE.

Spędziłem dużo czasu na poszukiwaniu eleganckich rozwiązań, które nie sprawiają, że to koszmar, i oto mój wniosek i moje obecne „rozwiązanie”.

Znalazłem tylko jeden program, który może zapisywać i przywracać zarówno programy ORAZ pliki, które otworzyły - i jest to naprawdę bardzo płynne. To Twinsplay (edycja profesjonalna) . ( CacheMyWork i SmartClose zarówno przywracają programy, ale nie pliki.)

Jednak Twinsplay ma pewne prawdziwe problemy i zastrzeżenia (a także nie jest darmowy, kosztuje 40 USD):

  1. Podczas przywracania firefoxa zdaje się powielać WSZYSTKIE zakładki wewnątrz, należy go zakodować, aby zanotować, co załadowałeś do Firefoksa (tak jakby każda zakładka była „plikiem”, tak jak wiernie przywróci wszystkie twoje pliki słowne), więc jeśli już skonfigurowałem firefox, aby otworzyć karty z poprzedniej sesji i mając 100 otwartych kart, spróbuje załadować 200 kart i ogólnie będzie katastrofą. Ponadto zakłóca działanie kart !! (na szczęście nadal utrzymuje przynajmniej zduplikowane zakładki we własnej „grupie”, zaczynając od ostatniej z oryginalnych kart, ale obie grupy kart mają pomniejszoną kolejność, więc tak, że zmieści kolejność oryginalnych kart). Ten sam problem, jestem pewien, że zdarzy się w Chrome ..... Nie przetestowałem go (nie miałem odwagi!).

  2. Drugi problem: w przypadku programów, w których zwykle może być otwartych wiele plików (takich jak Word, Photoshop, InDesign): jeśli z jakiegoś powodu pojawi się okno dialogowe podczas ładowania pierwszego pliku do programu (błąd makra lub jak w moim W programie InDesign miałem brakujący link do obrazu w pierwszym dokumencie), a następnie wszystkie dokumenty po tym pierwszym nie otwierają się, ponieważ Twinsplay z założenia ładuje wszystkie pliki do swoich programów jednocześnie. I Twinsplay nie pokazuje nigdzie w swoim interfejsie użytkownika listy plików z zapisanej sesji (ani w dziennikach Appdata / plikach konfiguracyjnych, sprawdziłem), więc jeśli ten scenariusz się zdarzy, prawdopodobnie zapomnisz o piątym pliku w programie InDesign, który ty pracowaliśmy 4 tygodnie temu i wciąż muszę zakończyć!

SO: więc metodą, którą wykonuję po tym wszystkim, jest:

Przeglądam każdy plik otwarty na pasku zadań, kopiuję ścieżkę do pliku (co jest dość łatwe do zrobienia dość szybko, jeśli znasz się na oknach dialogowych systemu Windows, menu i skrótach klawiaturowych), a także dla każdego pliku lub okna, w którym byłem w określonym zauważam lub wyróżniłem pewne rzeczy itp. Po prostu to zanotowałem, więc nie zapomnę 10 minut później. Oto fałszywy przykład tego, co mam na myśli.

Następnie po ponownym uruchomieniu wklejam ścieżkę każdego pliku do paska adresu Eksploratora Windows, aby otwierać każdy plik pojedynczo, wraz z powiązanym programem. Gdybym miał plik, który nie był w rzeczywistości otwarty w powiązanym programie (jak TIFF w Photoshopie), chyba to zanotowałem, więc pamiętam.

-

TERAZ. Moje rozwiązanie nie jest takie złe, ale kopiowanie ścieżki każdego otwartego pliku zajmuje trochę czasu.

Idealną rzeczą byłoby posiadanie narzędzia, które wyrzuca ścieżki WSZYSTKICH plików i ścieżek programów systemu Windows („C: \ photoshop.exe” „C: \ image.TIFF”), a następnie można umieścić te informacje w skryptach wsadowych aby otworzyć każdy plik za pomocą programu, w którym był, jeden po drugim lub wszystkie naraz w tej samej partii, jeśli chcesz. To by było idealne.

Aby przyspieszyć, czy istnieje jakiś sposób na skopiowanie ścieżek plików WSZYSTKICH otwartych plików w systemie Windows? Małe narzędzie do wypluwania ścieżek plików wszystkich bieżących elementów paska zadań powinno być całkiem proste! Jeśli Twinsplay może to zrobić, oczywiście można to jakoś zrobić ... Zadałem to pytanie w osobnym poście tutaj . Czy ten kod może to zrobić?

Ponieważ Microsoft nie dostarczył nam eleganckiego rozwiązania opartego na jednym kliknięciu na poziomie systemu operacyjnego, nie powinniśmy próbować świętej metody przywracania sesji hibernacji podobnej do świętego graala przy zwykłym dostępie innej firmy lub np. Majstrować przy hibernacyjnych przeładowaniach pamięci podręcznej itp.

Ponowne uruchomienie systemu Windows POWINNO być odświeżeniem w celu wyczyszczenia pamięci RAM i wypłukania wszystkiego, nie zachowując tego wszystkiego, więc najlepiej jest to zrobić ręcznie, otwierając ponownie pliki (pamiętając o kilku szczegółach, gdzie w niektórych plikach chciałeś ), ale TO tak elegancko, jak to możliwe.


Korzystanie z Twinsplay jest prawdopodobnie najlepszą opcją, jaką mam w tym momencie. Będzie działać dla większości użytkowników i wydaje się być doskonałym narzędziem. Prawdziwym rozwiązaniem tego jest zmiana zachowania użytkownika, aby przestał mieć te problemy.
Doltknuckle

aby rozwiązać „błędy” w grze bliźniaczej, jak powiedziałem wcześniej najlepszym jak dotąd najlepszym rozwiązaniem, myślę, że powinienem mieć plik wsadowy jednym kliknięciem / mały plik exe, aby skopiować ścieżki wszystkich otwartych plików i programów, w których się znajdują, to ty może tak skonfigurować, aby prawie wszystko było jeszcze jednym kliknięciem, aby przywrócić go także po ponownym uruchomieniu. denerwujące jednak, że wydaje się, że zadałem moje pytanie w niejasny sposób, więc mod zamknął pytanie :(.

4
Dodam: Windows ma coś wbudowanego, w którym używa do ponownego uruchomienia po zainstalowaniu niektórych aktualizacji i ponownego uruchomienia jest wymuszone, i przywróci wiele / większość okien do ich pierwotnego stanu. Istnieje więc pewien mechanizm na poziomie systemu operacyjnego, nie jestem pewien, co to jest ani jak dostępny byłby dla nas użytek.
boomhauer

1
@boomhauer Rejestracja w celu ponownego uruchomienia aplikacji zauważa, że ​​aplikacje, które „[Zarejestruj] w celu ponownego uruchomienia aplikacji spowodują również, że system Windows automatycznie uruchomi ponownie aplikację po ponownym uruchomieniu komputera ... z powodu aktualizacji oprogramowania”.
FriendlyGuy

6

Słyszałem, że ludzie używają programu o nazwie CacheMyWork . Otworzy ponownie otwarte aplikacje, ale nie otworzy plików, nad którymi pracujesz (chyba że program ma taką funkcję).

Inną opcją jest uniknięcie problemu z uruchomieniem aplikacji na maszynie wirtualnej. Następnie, gdy wrócisz do domu, możesz zatrzymać maszynę wirtualną, aby zachować jej stan na dysku. Następnie powróć do maszyny wirtualnej po powrocie. To omija problem, ponieważ pewnego dnia będziesz musiał zaktualizować / załatać system operacyjny maszyny wirtualnej. Prawdopodobnie wybierzesz także wydajność (wielkość zależy od tego, co robisz).

Jeśli chodzi o pozostawienie rzeczy otwartych i ponowne uruchomienie maszyn po łatkach, jestem tam z tobą.


1
Sugestia oprogramowania jest krokiem we właściwym kierunku. Myślę, że problem polega na tym, że nie monitoruje on aktywnie otwartych plików, więc nie może ich później przywrócić. W najgorszym przypadku może być konieczne zhakowanie razem skryptu, który wykrywa, które pliki są otwarte, a następnie ustawia je tak, aby uruchamiały się w kolejności.
Doltknuckle,

1
Zgadzam się, życzę CacheMyWork monitorowania otwartych dokumentów (takich jak Windows Ostatnie Docuemtns) i ponownego uruchomienia dokumentów podczas rozruchu. Podobnie jak podwójne kliknięcie dokumentu Microsoft Word spowoduje uruchomienie programu Word, CacheMyWork może przejść długą drogę, uruchamiając podczas uruchamiania moich dokumentów.
Scott McClenning,

4

2016 i wciąż nic od Microsoftu ... Postanowiłem spróbować vbscript. To nie jest świetne, ale odpala wszystkie programy, a w niektórych przypadkach nawet okna.

Pierwszy skrypt zapisuje wszystkie procesy w pliku tekstowym w określonym folderze (na pulpicie), a wszystkie nazwy okien w osobnym pliku. Drugi skrypt czyta i uruchamia wszystkie procesy z pliku zapisanego przez pierwszy skrypt. Oba powinny być zapisane z rozszerzeniem .vbs. Ponadto zapisywanie nazw okien wymaga zainstalowania programu Microsoft Word (nie pytaj ...).

On Error Resume Next
Dim session, folder, Word, Tasks

Set Word = CreateObject("Word.Application")
Set Tasks = Word.Tasks

' folder is the folder in which the files will be created. Can also be instantiated by hardcoding a path
folder = getPathOfFolder("Desktop")
' The second argument of the function call (session.txt) is the filename of the file containing all window names
Set sessionFile = CreateFileAt(folder, "session.txt")

for Each Task in Tasks
    if Task.Visible Then
        sessionFile.WriteLine(Task.Name)
    End if
Next
sessionFile.Close
Word.Quit

' The second argument of the function call (processes.txt) is the filename of the file containing all processes
Set processesFile = CreateFileAt(folder, "processes.txt")
set processesList = getAllProcesses()

for Each Process in processesList
    processesFile.WriteLine(Process.CommandLine & "")
Next

processesFile.Close
MsgBox("Done!")




Function getPathOfFolder(path)
    ' Dim objShell As Object
    ' Dim strPath As String

    Set objShell = Wscript.CreateObject("Wscript.Shell")
    Path = objShell.SpecialFolders(path)
    getPathOfFolder = Path & "\"
End Function

Function CreateFileAt(filePath, fileName)
    Dim fso, session
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set session = fso.CreateTextFile(filePath & fileName, true)
    Set CreateFileAt = session
End Function

Function getAllProcesses()
    Const Computer = "." 
    Dim WMI, ProcessList
    Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
    Query = "Select * FROM Win32_Process"
    Set ProcessList = WMI.ExecQuery(Query)
    Set getAllProcesses = ProcessList
End Function

.

On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(getPathOfFolder("Desktop") & "processes.txt", 1)

Do While file.AtEndOfStream = False
    Set Shell = CreateObject("Wscript.Shell")
    Shell.Run(file.ReadLine)
Loop

MsgBox("Done!")

Function getPathOfFolder(path)
    ' Dim objShell As Object
    ' Dim strPath As String

    Set objShell = Wscript.CreateObject("Wscript.Shell")
    Path = objShell.SpecialFolders(path)
    getPathOfFolder = Path & "\"
End Function

Nie znalazłem jeszcze sposobu, aby programowo uzyskać ścieżki plików, które kopiuje użytkownik 78017 przy każdym ponownym uruchomieniu. Chciałbym usłyszeć, dla jakich programów ten skrypt otwiera wszystkie otwarte pliki i dla jakich programów nie. Jeśli ktoś chce wyczyścić ten kod, edytuj wpis.


1

Mam go dzisiaj na kanale RSS:

CacheMyWork to przydatne narzędzie, które umożliwia ponowne uruchomienie systemu Windows bez utraty miejsca w pracy. Tworzy listę kontrolną aktualnie otwartych aplikacji i ponownie uruchomi wybrane aplikacje przy następnym logowaniu do komputera.

Źródło


+1 Ha, to urocze ... bardzo fajne znalezisko (ale zostało już opublikowane przez Scotta).

0

Mam ten sam problem. Po ponownym uruchomieniu mam co najmniej pół godziny restartu wszystkich procesów, których normalnie używam.
Znalazłem jedno narzędzie, które ma możliwość powrotu do stanu przed uruchomieniem, Slimbrowser . Bardzo chciałbym więcej.


1
Znalazłem sposoby zapisywania sesji przeglądarki (użyj Firefoksa) i sesji folderów (ustawienia systemu Windows) i ich ponownego uruchamiania podczas uruchamiania. Inne rzeczy, takie jak Office (Word, Excel, Outlook), notatnik i Adobe Reader, dla których jeszcze nie znalazłem dobrego rozwiązania.
Doltknuckle,

W przypadku edytora funkcja ultra-edit ma taką możliwość. Osobiście wolę Kedit ze względu na jego możliwości skryptowe.
Dave

-1

Nie do końca to, o co prosiłeś, ale możesz po prostu przełączyć komputer w tryb „zawieszenia” na noc. O ile nie masz uruchomionych procesów, nie zmieni to niczego, jak to działa, tylko zawiesi się rano, a Windows Update nie będzie mógł działać podczas zawieszenia.

I to za darmo.


Fajny pomysł, ale nie rozwiązuje problemu, gdy OP musi wykonać aktualizację systemu Windows.
ChrisF,

1
Myślałem o tym, zawieszenie i hibernacja naprawdę nic dla mnie nie robią. Nie chodzi o to, że chcę oszczędzać energię, chodzi przede wszystkim o to, że po ciężkim ponownym uruchomieniu chcę wrócić do poprzedniego środowiska pracy.
Doltknuckle,

Myślałem, że jeśli tam jesteś, możesz po prostu odmówić ponownego uruchomienia komputera, dopóki nie będzie to wygodne.
CarlF,

Doltknuckle pyta: „Jak przywrócić rzeczy, nad którymi pracowałem po ponownym uruchomieniu?” Pytanie, na które ludzie wciąż odpowiadają, brzmi: „Jak mogę zapobiec automatycznemu uruchamianiu mojego komputera?” To drugie pytanie jest dobre, ale nie ma znaczenia dla pytania, które zostało zadane.
Martha
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.