35

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

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

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

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

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

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

Спасибо

6 ответов6

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), я бы запомнил это, так что я помню.

-

СЕЙЧАС. Мое решение не так уж плохо, но все равно требуется время, чтобы скопировать путь к файлу каждого открытого файла.

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

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

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

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

4

Я слышал, что люди используют программу под названием 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, не теряя своего места в работе. Он создает контрольный список открытых в данный момент приложений и перезапустит выбранные вами приложения при следующем входе в систему.

Источник

0

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

-1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .