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


36

Я вважаю, що наприкінці тривалого дня я інколи запускаю велику кількість програм. Все, що мені потрібно буде використовувати завтра. Зазвичай це не проблема, я можу просто заблокувати машину і повернутися завтра. Моя проблема виникає, коли оновлення Windows запускається посеред ночі і примусово перезавантажує комп'ютер. Це в свою чергу закриває все моє відкрите програмне забезпечення. Я звичайно економлю все регулярно, щоб нічого не втрачати, але витрачаю час на повторне відкриття всіх цих ресурсів, коли відбувається перезапуск.

[EDIT]

Я повинен уточнити, що я все ще хочу мати можливість перезавантажити комп’ютер, коли оновлення не працює. Запобігання перезавантаження лише затримує проблему на пізніше. Я повинен був бути більш конкретним у тому, що я хочу з будь-якої причини мати можливість відновити своє робоче середовище після перезавантаження. Такі речі, як планове обслуговування, втрата живлення, оновлення та встановлення програмного забезпечення.

[EDIT]

Я не можу просто налаштувати їх на запуск при запуску, оскільки ці файли змінюються з тижня на тиждень. Тому мені потрібно щось, що контролює те, що я відкрив, і дає мені можливість "відновити" ці сеанси програмного забезпечення, коли я знову входжу в систему.

У когось є якісь пропозиції щодо того, що я можу зробити? Я б навіть готовий придбати програмне забезпечення, щоб це зробити для мене, якщо це єдиний варіант.

Спасибі


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

1
Команда "shutdown / g" виглядає так, що її можна поєднати з функцією автоматичного відновлення аварії програми, щоб зробити 75% того, що я шукаю. Мені доведеться зробити більше тестування, щоб побачити, чи працює це.
Doltknuckle

1
команда вимкнення насправді не працює так, як сподівалося ... що мені дійсно потрібен спосіб спостереження за відкритими в даний час файлами. Тоді я можу просто створити динамічний сценарій, щоб повторно запустити ці файли.
Doltknuckle

1
Через 6 років, і це все ще не є функцією Windows ... У OSX це було вже роками!
GiH

7 років і підрахунок .....
iAmLearning

Відповіді:


16

Це настільки дратує, що досі не існує елегантного рішення цієї проблеми!

У нас це трапляється: Windows просто сповільнюється до шліфувальної зупинки (якась витік пам'яті викликає це, оскільки ти типовий 132 вкладки, відкриті в хромі, 57 відкриті в Firefox, 24 вікна відкриті загалом, роблячи складний операція із залученням їх усіх одночасно, коли ви виконуєте роботу поверх роботи, над роботою ..... вид хлопця), і вона стає настільки повільною, що ви насправді починаєте витрачати час, просто чекаючи, що трапиться на вашому комп'ютер ..... так що ви просто ВІННЯТЕ скинути сеанс, який повільно нарощується протягом останніх 5 тижнів, і, нарешті, піддатися кошмару, який відтворює ваш хитромудрий безлад Windows і відкриті файли та папки Explorer, після жахливих вікон перезапустити.

ДОБРЕ.

Я витратив багато часу на пошуки елегантних рішень, які не роблять це кошмаром, і це мій висновок і моє сьогоднішнє «рішення».

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

Щоб пришвидшити справи, чи є спосіб скопіювати файлові шляхи ВСІХ відкритих файлів активних вікон? Невеликий інструмент, який можна виплюнути до файлових шляхів усіх поточних елементів панелі завдань, повинен бути досить простим! Якщо Twinsplay може це зробити, очевидно, це можна зробити якось ..... Я поставив це питання в окремому дописі, тут . Чи міг би цей код зробити це?

Оскільки Microsoft не забезпечила нас елегантним рішенням на рівні одного клацання на ОС, ми не повинні намагатися відновити сеанс, пов'язаний зі сном в граалі, за допомогою простого стороннього доступу або, наприклад, попрацювати зі зимовим кешем, перезавантажуючи хаки тощо.

Перезапуск Windows надається для оновлення для очищення оперативної пам’яті та вимивання всього, не затримуючи все це, тому найкраще це робити як ручне повторне відкриття ваших файлів (зазначаючи при цьому декілька деталей того, де в певних файлах ви були до ), але ЦЕ як можна елегантніше.


Використання Twinsplay - це, мабуть, найкращий варіант, який у мене є на даний момент. Він працюватиме для більшості користувачів і, здається, є чудовим інструментом. Справжнє рішення цього - змінити поведінку користувача, щоб вони перестали мати ці проблеми.
Doltknuckle

щоб вирішити "помилки" в twinsplay, як я сказав перед найкращим на сьогоднішній день рішенням, я думаю, було б мати пакетний файл в один клік / крихітний exe, щоб скопіювати всі шляхи відкритих файлів і програми, в яких вони знаходяться, тоді ви може налаштувати речі майже на один клік, щоб відновити і після перезавантаження. дратує, хоча, здається, я поставив своє питання про це незрозуміло, тому мод закрив це питання :(.

4
Додам: у Windows є щось вбудоване, в якому вона використовується для перезавантаження після встановлення певних оновлень та примусової перезавантаження, і вона відновить багато / більшість вікон у початковий стан. Отже, є якийсь механізм , рівень ОС для цього, не впевнений , що це ні як доступний було б для нас використовувати.
бумгауер

1
@boomhauer Реєстрація для перезапуску додатків зазначає, що програми, що "[Зареєструватися] для перезавантаження програми, також спричинить автоматичний перезапуск програми Windows після перезавантаження комп'ютера ... через оновлення програмного забезпечення."
FriendlyGuy

6

Я чув, що люди використовують програму під назвою CacheMyWork . Він знову відкриє програми, які ви відкрили, але не відкриє файли, над якими працюєте (якщо програма не має такої функції).

Ще один варіант - ви можете усунути проблему, за допомогою якої можна запустити свої програми у віртуальній машині. Тоді, повертаючись додому, ви можете призупинити віртуальну машину, і збереже стан віртуальної машини на диску. Потім відновіть віртуальну машину, коли ви повернетесь. Це усуває проблему, оскільки колись вам потрібно буде оновити / виправити ОС ОС віртуальної машини. Крім того, ви, ймовірно, приймете ударний показник (наскільки великий залежить від того, що ви робите).

Що стосується того, щоб залишити речі відкритими та машини перезавантажити з патчів, я тут з вами.


1
Програмне забезпечення - це крок у правильному напрямку. Я думаю, що проблема полягає в тому, що він не контролює відкриті файли, тому не може відновити їх пізніше. У гіршому випадку, можливо, мені доведеться зламати сценарій, який визначає, які файли відкриті, а потім встановлює їх для запуску в порядку.
Doltknuckle

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

4

2016, і все ще нічого від Microsoft ... Я вирішив спробувати vbscript. Це не чудово, але він створює резервні копії всіх програм, а в деяких випадках навіть Windows.

Перший скрипт зберігає всі процеси в текстовому файлі у зазначеній папці (робочому столі), а всі назви вікон - в окремий файл. Другий скрипт читає і запускає всі процеси з файлу, записаного першим сценарієм. Обидва слід зберегти з розширенням .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 Update не може працювати під час призупинення.

І це безкоштовно.


Хороша ідея, але це не вирішує проблему, коли ОП має зробити оновлення Windows.
ChrisF

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

Моя думка полягала в тому, що якби ти там був, ти можеш просто відмовитись перезавантажуватися до зручного.
CarlF

Що задає Doltknuckle - це "Як відновити речі, над якими я працював після перезавантаження?" Однак люди продовжують відповідати: "Як я запобігти автоматичному перезавантаженню комп'ютера?" Останнє є гарним питанням, але воно абсолютно не має значення щодо питання, яке насправді було задано.
Марта
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.