Восстановление открытого программного обеспечения после перезагрузки в Windows


36

Я обнаружил, что в конце долгого дня у меня иногда запускается большое количество программ. Все, что мне нужно будет использовать завтра. Обычно это не проблема, я могу просто заблокировать машину и вернуться завтра. Моя проблема возникает, когда обновление Windows запускается посреди ночи и принудительно перезагружает мой компьютер. Это в свою очередь закрывает все мои открытые программы. Я, конечно, регулярно сохраняю все, чтобы ничего не потерять, но я трачу время на повторное открытие всех этих ресурсов при каждом перезапуске.

[РЕДАКТИРОВАТЬ]

Я должен уточнить, что я все еще хочу иметь возможность перезагрузить компьютер, когда обновление выходит из строя. Предотвращение перезапуска только задерживает проблему на потом. Я должен был быть более конкретным в том, что я хочу иметь возможность восстановить свою рабочую среду после перезапуска по любой причине. Такие вещи, как плановое обслуживание, потеря питания, обновления и установки программного обеспечения.

[РЕДАКТИРОВАТЬ]

Я не могу просто настроить их для запуска при запуске, потому что эти файлы меняются от недели к неделе. Поэтому мне нужно что-то, что отслеживает то, что у меня открыто, и дает мне возможность «восстановить» те сеансы программного обеспечения, когда я снова вхожу в систему.

У кого-нибудь есть предложения по поводу того, что я могу сделать? Я бы даже хотел приобрести программное обеспечение, чтобы сделать это для меня, если это единственный вариант.

Благодарность


На самом деле, я помню, как где-то читал, что в Win7 должна была быть функция, подобная этой, хотя я думаю, что они не смогли подготовить ее вовремя к выпуску. Так что это может произойти в будущем.
Eidylon

1
Команда shutdown / g выглядит так, как будто она может быть объединена с функцией автоматического восстановления после сбоя программы, чтобы сделать 75% того, что я ищу. Я должен буду сделать больше тестирования, чтобы видеть, работает ли это.
Doltknuckle

1
команда shutdown не работает так, как хотелось бы ... что мне действительно нужно, это способ отслеживать открытые в данный момент файлы. Затем я могу просто создать динамический скрипт для повторного запуска этих файлов.
Doltknuckle

1
6 лет спустя, и это все еще не функция Windows ... OSX имеет это в течение многих лет!
GiH

7 лет и считая .....
iAmLearning

Ответы:


16

Это так раздражает, что до сих пор нет элегантного решения этой проблемы!

Это происходит со всеми нами: Windows просто замедляется до полной остановки (какая-то утечка памяти вызывает это, так как вы обычно 132 открытых вкладок в Chrome, 57 открытых в Firefox, 24 открытых в общей сложности, выполняющих сложные операция, в которой участвуют все они одновременно с работой на вершине работы, на вершине работы ... вроде как парень), и она становится настолько медленной, что вы фактически начинаете тратить время, просто ожидая, что что-то произойдет на вашем компьютер ..... так что вам просто нужно сбросить сеанс, который медленно накапливался в течение последних 5 недель, и, наконец, поддаться кошмару, воссоздающему сложный беспорядок в окнах и открытых файлах и папках проводника, после страшных окон перезапуск.

ЧТО Ж.

Я потратил много времени в поисках элегантных решений, которые не превращают это в кошмар, и это мой вывод и мое текущее «решение».

Я нашел только одну программу, которая может сохранять и восстанавливать как программы, так и файлы, которые у них были открыты - и это в основном очень гладко. Это Twinsplay (Профессиональная версия) . ( CacheMyWork и SmartClose оба восстанавливают только программы, но не файлы.)

Однако у Twinsplay есть некоторые реальные проблемы и предостережения (а также это не бесплатное ПО стоит 40 долларов):

  1. При восстановлении Firefox кажется, что он дублирует ВСЕ вкладки внутри, его необходимо закодировать, чтобы отметить, что вы загрузили в Firefox (как будто каждая вкладка представляет собой «файл», как то, как он будет верно восстанавливать все ваши текстовые файлы), так что если вы Firefox уже настроен на открытие вкладок из предыдущего сеанса и имеет 100 открытых вкладок, поэтому он попытается загрузить 200 вкладок и, как правило, потерпит неудачу. Кроме того, это портит вкладки в порядке! (К счастью, он по крайней мере по-прежнему сохраняет дубликаты вкладок в своей собственной «группе», начиная с последней из исходных вкладок, но обе группы вкладок имеют измененный порядок, так что да, он также портит порядок ваших исходных вкладок). Та же самая проблема, я уверен, случится в Chrome ..... Я не проверял это (я не смел!).

  2. Другая проблема: для любых программ, в которых у вас обычно может быть открыто несколько файлов (например, Word, Photoshop, InDesign): если по какой-то причине появляется диалоговое окно во время загрузки первого файла в программу (ошибка макроса или как в моем В InDesign у меня была ссылка на отсутствующее изображение в первом документе), затем все документы после этого первого не открываются, потому что Twinsplay по своему дизайну загружает все все файлы в свои программы одновременно. И Twinsplay нигде не отображает в своем пользовательском интерфейсе список файлов из сохраненного сеанса (ни в журналах / файлах конфигурации Appdata, я проверял), так что если этот сценарий случится, вы, вероятно, забудете о пятом файле в InDesign, который вы работали 4 недели назад и еще надо доработать!

Итак, метод, который я делаю после всего этого, таков:

Я просматриваю каждый файл, открытый на панели задач, копирую его путь к файлу (что достаточно легко сделать довольно быстро, если вы знаете, как обходить окна, диалоговые окна и меню и сочетания клавиш), а также для любого файла или окна, в которых я находился заметить или выделить определенные вещи и т. д., я просто отмечаю это вниз, чтобы не забыть 10 минут спустя. Вот фиктивный пример того, что я имею в виду.

Затем, после перезапуска, я просто вставляю путь каждого файла в адресную строку проводника Windows, чтобы открывать каждый файл по одному с соответствующей программой. Если бы у меня был файл, который на самом деле не был открыт в связанной с ним программе (например, TIFF в Photoshop), я бы запомнил это, так что я помню.

-

В НАСТОЯЩЕЕ ВРЕМЯ. Мое решение не так уж плохо, но все равно требуется время, чтобы скопировать путь к файлу каждого открытого файла.

Идеальным вариантом было бы иметь инструмент, который выкладывает пути файлов и программ ВСЕХ окон («C: \ photoshop.exe», «C: \ image.TIFF») сразу, а затем вы можете поместить эту информацию в пакетные сценарии. чтобы открыть каждый файл с программой, в которой он находился, один за другим или все сразу в одном пакете, если хотите. Это было бы замечательно.

Чтобы ускорить процесс, есть ли способ скопировать пути к файлам ВСЕХ открытых окон активных файлов? Небольшой инструмент для разбивки путей к файлам всех текущих элементов панели задач должен быть довольно простым! Если Twinsplay может это сделать, то, очевидно, это можно сделать как-то ..... Я задал этот вопрос в отдельном посте здесь . Может ли этот код сделать это?

Так как Microsoft не предоставила нам элегантное решение для одного щелчка на уровне ОС, мы не должны пытаться использовать метод восстановления сеанса в стиле спящего грааля с простым сторонним доступом или, например, возиться с перезапуском перезагрузки кэша и т. Д.

Предполагается, что перезапуск Windows является обновлением, чтобы очистить ОЗУ и очистить все, не сохраняя все, поэтому лучше всего это сделать вручную, повторно открыв ваши файлы (при этом отмечая некоторые детали того, где в определенных файлах вы находились до ), но ЭТО максимально элегантно.


Использование Twinsplay, вероятно, лучший вариант, который у меня есть на данный момент. Это будет работать для большинства пользователей и, кажется, отличный инструмент. Реальное решение этого состоит в том, чтобы изменить поведение пользователей, чтобы они перестали иметь эти проблемы.
Doltknuckle

чтобы решить «ошибки» в twinsplay, как я уже говорил ранее, лучшим решением на мой взгляд было бы иметь пакетный файл одним щелчком / крошечный исполняемый файл для копирования путей всех открытых файлов и программ, в которых они находятся, затем вы можно настроить все почти на один клик для восстановления после перезагрузки. раздражает то, что я, кажется, задал свой вопрос по этому поводу неясно, поэтому мод закрыл вопрос :(.

4
Я добавлю: в Windows есть что-то встроенное, что используется для перезагрузки после установки определенных обновлений и принудительной перезагрузки, и она восстановит многие / большинство окон в исходное состояние. Итак, есть некий механизм , уровень ОС для этого, не уверен , что это ни как доступный было бы для нас использовать.
Boomhauer

1
@boomhauer Регистрация для перезапуска приложения отмечает, что приложения, которые «[Зарегистрироваться] для перезапуска приложения, также заставят Windows автоматически перезагружать приложение после перезагрузки компьютера ... из-за обновления программного обеспечения».
FriendlyGuy

6

Я слышал, что люди используют программу под названием CacheMyWork . Он снова откроет открытые вами приложения, но не откроет файлы, над которыми вы работаете (если в программе нет такой функции).

Другой вариант - вы можете обойти проблему, с которой вы можете запускать свои приложения на виртуальной машине. Затем, когда вы вернетесь домой, вы сможете приостановить работу виртуальной машины, чтобы сохранить состояние виртуальной машины на диске. Затем возобновите работу виртуальной машины, когда вернетесь. Это обходит проблему, потому что когда-нибудь вам нужно будет обновить / исправить ОС виртуальной машины. Кроме того, вы, вероятно, получите удар по производительности (насколько большой зависит от того, что вы делаете).

Когда дело доходит до того, чтобы оставить вещи открытыми и машины перезагружаются с исправлений, я тут же с вами.


1
Предложение программного обеспечения - это шаг в правильном направлении. Я думаю, проблема в том, что он не отслеживает открытые файлы, поэтому не может восстановить их позже. В худшем случае мне, возможно, придется взломать скрипт, который определяет, какие файлы открыты, а затем настраивает их для запуска по порядку.
Doltknuckle

1
Я согласен, я бы хотел, чтобы CacheMyWork отслеживал открытые документы (например, Windows Recent Docuemtns) и перезапускал документы при загрузке. Подобно тому, как двойной щелчок по документу Microsoft Word вызовет Word, CacheMyWork может пройти долгий путь, запустив при загрузке мои документы.
Скотт МакКленнинг

4

2016 и до сих пор ничего от Microsoft ... Я решил попробовать vbscript. Это не очень хорошо, но оно запускает все программы, а в некоторых случаях даже окна.

Первый сценарий сохраняет все процессы в текстовый файл в указанной папке (на рабочем столе) и все имена окон в отдельный файл. Второй скрипт читает и запускает все процессы из файла, написанного первым скриптом. Оба должны быть сохранены с расширением .vbs. Кроме того, сохранение имен окон требует установки Microsoft Word (не спрашивайте ..).

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

Я еще не нашел способ программно получать пути к файлам, которые user78017 копирует при каждом перезапуске. Я хотел бы услышать, для каких программ этот скрипт открывает все открытые файлы, а для каких - нет. Если кто-то захочет очистить этот код, отредактируйте его.


1

Получил этот на RSS-канале сегодня:

CacheMyWork - это удобная утилита, которая позволяет вам перезагружать Windows, не теряя своего места в работе. Он создает контрольный список открытых в данный момент приложений и перезапустит выбранные вами приложения при следующем входе в систему.

Источник


+1 Ха, это мило ... очень хорошая находка (но она уже была опубликована Скоттом).

0

У меня та же проблема. После перезагрузки у меня есть хотя бы полчаса перезапуска всех процессов, которые я обычно использую.
Я нашел одну утилиту, которая имеет возможность возврата к состоянию до загрузки, Slimbrowser . Я бы очень любил больше.


1
Я нашел способы сохранить сеансы браузера (использовать Firefox) и папки (настройки Windows) и перезапустить их при запуске. Другие вещи, такие как Office (Word, Excel, Outlook), блокнот и Adobe Reader, для которых мне еще предстоит найти хорошее решение.
Doltknuckle

Для редактора ультраредактирование имеет такую ​​возможность. Я лично предпочитаю kedit из-за его возможностей написания скриптов.
Дэйв

-1

Не совсем то, что вы просили, но вы можете просто перевести ваш компьютер в режим ожидания на ночь. Если у вас на самом деле не запущены процессы, это ничего не изменит в том, как они работают, для остановки приложения потребуется всего одна или две секунды, а Центр обновления Windows не может работать во время приостановки.

И это бесплатно.


Хорошая идея, но не решает проблему, когда OP должен сделать обновление Windows, хотя.
ChrisF

1
Я думал об этом, подвеска и спячка действительно ничего не делают для меня. Дело не в том, что я хочу экономить энергию, а в основном в том, что я хочу вернуться к своей прежней рабочей среде после жесткого перезапуска.
Doltknuckle

Я думал, что если бы вы были там, вы могли бы просто отказаться от перезагрузки, пока не станет удобно.
CarlF

Doltknuckle спрашивает: «Как мне восстановить то, над чем я работал после перезапуска?» Однако люди продолжают отвечать на вопрос: «Как я могу предотвратить автоматический перезапуск моего компьютера?» Последний вопрос хороший, но он совершенно не имеет отношения к вопросу, который был задан.
Марта
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.