Windows中的重启事件后恢复打开的软件


36

我发现在漫长的一天结束时,有时我会运行大量程序。明天我将需要使用所有这些。通常,这不是问题,我可以简单地锁定机器,明天再回来。我的问题在深夜启动Windows更新并强制重新启动计算机时出现。依次关闭所有我打开的软件。我当然会定期保存所有内容,所以我不会丢失任何内容,但是每当重新启动时,我都会浪费时间重新打开所有这些资源。

[编辑]

我应该澄清,更新降级后我仍然希望能够重新启动计算机。阻止重新启动只会将问题推迟到以后。我应该更具体一些,因为我希望能够出于任何原因在重启后恢复我的工作环境。诸如计划维护,断电,更新和软件安装之类的事情。

[编辑]

我不能简单地将它们设置为在启动时启动,因为这些文件每周更改一次。因此,我需要一些东西来监视打开的内容,并让我可以选择在重新登录时“恢复”这些软件会话。

有人对我可以做什么有任何建议?如果那是唯一的选择,我什至愿意购买软件来为我做这件事。

谢谢


实际上,我记得在某个地方读过,Win7应该具有这样的功能,尽管我想他们无法及时为发布做好准备。因此,将来可能会出现。
eidylon

1
“ shutdown / g”命令看起来像可以与程序的自动崩溃恢复功能结合在一起,完成我所寻找的75%的任务。我将不得不做更多的测试,看看是否可行。
Doltknuckle

1
shutdown命令实际上并没有达到预期的效果……我真正需要的是一种监视当前打开的文件的方法。然后,我可以构建一个动态脚本来重新启动这些文件。
Doltknuckle

1
6年后的今天,这仍然不是Windows的功能... OSX已经拥有多年了!
GiH

7年,并且
还在增加

Answers:


16

太烦人了,仍然没有一个优雅的解决方案来解决这个问题!

这一切都发生在我们所有人身上:Windows只是慢下来(造成某种内存泄漏,原因是您通常在chrome中打开132个选项卡,在Firefox中打开57个选项卡,总共打开24个窗口,这很复杂)当您在工作之上,在工作之上.....那种家伙的同时进行操作时,涉及到他们的所有操作),它变得如此缓慢,以至于您实际上开始浪费时间,只是在等待事情发生电脑.....所以您只需要重置过去五周来缓慢建立的会话,最后屈服于噩梦,那就是在可怕的窗口之后重新创建错综复杂的窗口以及打开的文件和资源管理器文件夹重新开始。

好。

我花了很多时间寻找不会让它成为噩梦的优雅解决方案,这是我的结论以及我目前的“解决方案”。

我发现只有一个程序可以同时保存和还原程序以及打开的文件-而且实际上很流畅。这是Twinsplay(专业版)。(CacheMyWorkSmartClose都仅还原程序,而不还原文件。)

但是Twinsplay有一些实际的问题和警告(而且它不是免费软件,它的价格为40美元):

  1. 还原firefox时,似乎复制了其中的所有选项卡,必须对其进行编码以记下您在firefox中加载的内容(就像每个选项卡都是一个“文件”一样,如其将忠实地还原所有word文件一样),所以如果您已经设置了firefox以打开上一个会话中的选项卡,并已打开100个选项卡,它将尝试加载200个选项卡,通常是一场灾难。另外,它会使选项卡混乱!!(值得庆幸的是,它仍然至少将重复的选项卡保留在原始选项卡的最后一个选项卡之后的“组”中,但是两个选项卡组的顺序都被弄乱了,是的,它也弄乱了您原来的选项卡的顺序)。我确定在Chrome中也会发生同样的问题。。。我没有测试(我不敢!)。

  2. 另一个问题:对于通常可能会打开多个文件的任何程序(如Word,Photoshop,InDesign):如果由于某种原因在第一个文件加载到程序期间出现对话框(宏错误,或类似在InDesign中,第一个文档中缺少图像链接),然后第一个文档之后的所有文档都无法打开,因为Twinsplay设计使所有文件立即加载到了它们的程序中。而且Twinsplay在其UI中的任何位置都不会显示已保存会话的文件列表(我也没有在Appdata日志/配置文件中显示),因此,如果发生这种情况,您可能会忘记InDesign中的第五个文件在4周前开始工作,仍然需要完成!

SO:那么,我正在做的所有方法就是:

我浏览任务栏中打开的每个文件,复制其文件路径(如果您熟悉Windows对话框,菜单和键盘快捷键的方式,可以轻松快速地完成此操作),还可以复制我所在位置的任何文件或窗口发现或突出显示某些特定内容等,我只记录下来,这样我就不会忘记10分钟后的情况。是我的意思一个虚拟例子。

然后,重新启动后,我只需将每个文件的路径粘贴到Windows资源管理器地址栏中,即可一次打开每个文件及其相关程序。如果我的文件实际上没有在其关联程序中打开(如Photoshop中的TIFF),我想我会记下来,所以我记得。

-

现在。我的解决方案还不错,但是复制每个打开的文件的文件路径仍然需要一些时间。

理想的情况是拥有一个可以同时弹出所有Windows文件路径和程序路径(“ C:\ photoshop.exe”“ C:\ image.TIFF”)的工具,然后您可以将该信息放入批处理脚本中可以打开其中包含的程序的文件,一个文件一个文件,也可以一次打开所有文件。那将是完美的。

为了加快速度,有没有办法复制所有活动窗口打开的文件的文件路径?一个简单的工具可以吐出当前所有任务栏项目的文件路径!如果Twinsplay可以做到,显然可以通过某种方式完成.....我在这里的另一篇文章中问过这个问题。难道这个 代码做呢?

由于Microsoft尚未为我们提供完善的OS级一键式解决方案,因此,我们不应尝试仅通过第三方访问就可以进行类似休眠的会话还原方法,也不能尝试使用休眠缓存重新加载技巧进行修补。

重新启动Windows应该是刷新操作,以清除RAM并清除所有内容,而不是全部保留,因此最好将其作为手动重新打开文件的方式(同时记下某些文件的位置的详细信息) ),但请尽量做到优雅。


在这一点上,使用Twinsplay可能是最好的选择。它适用于大多数用户,并且似乎是一个很好的工具。真正的解决方案是更改用户的行为,以便他们不再遇到这些问题。
Doltknuckle 2012年

解决twinsplay中的“错误”,就像我在迄今为止最好的解决方案之前所说的那样,我认为是一键式批处理文件/小exe复制所有打开文件的路径和它们所在的程序,然后您可以将事物配置为几乎只需单击一下即可在重启后还原。恼人的,虽然我似乎已经问过我关于它的问题在一个不明确的方式,使国防部关闭的问题:(。

4
我将添加:Windows具有一些内置功能,可用于在安装某些更新并强制重新启动后重新启动Windows,并且它将许多/大多数窗口恢复到其原始状态。因此,有一些操作系统级别的机制,这一点,不知道也没怎么进入这将是我们使用。
boomhauer 2014年

1
@boomhauer 注册用于应用程序重新启动的应用程序注意到,“由于应用程序更新,[注册]用于应用程序重新启动的应用程序还将导致Windows在计算机重新启动后自动重新启动该应用程序...”。
FriendlyGuy

6

我听说人们使用一个名为CacheMyWork的程序。它将重新打开您曾经打开过的应用程序,但不会打开您正在处理的文件(除非程序具有此功能)。

另一个选择是您可以避开可以在虚拟机中运行应用程序的问题。然后,当您回家时,您可以暂停虚拟机,并将虚拟机的状态持久保存到磁盘。然后在返回时恢复虚拟机。由于有一天您将需要更新/修补虚拟机的操作系统,因此可以避开该问题。另外,您可能会受到性能影响(多少取决于您的工作)。

当需要保持打开状态并从修补程序重新启动计算机时,我就在您身边。


1
该软件建议是朝正确方向迈出的一步。我认为问题在于它不会主动监视打开的文件,因此以后无法恢复它们。在最坏的情况下,我可能不得不整理一个脚本,该脚本检测打开了哪些文件,然后将它们设置为按顺序启动。
Doltknuckle

1
我同意,我希望CacheMyWork监视打开的文档(例如Windows Latest Docuemtns),并在启动时重新运行文档。就像双击Microsoft Word文档将触发Word一样,通过在启动我的文档时运行CacheMyWork可以大有帮助。
Scott McClenning,2010年

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 feed上获得了这个:

CacheMyWork是一个方便的实用程序,使您可以重新启动Windows,而又不会失去工作位置。它会建立一个当前打开的应用程序的清单,并在下次登录计算机时重新启动您选择的应用程序。

资源


+1哈,这真是可爱。。。很好的发现(但它已经由Scott发布)。

0

我也有同样的问题。重新启动后,我至少需要半小时重新启动通常使用的所有进程。
我发现了一个能够返回启动前状态的实用程序Slimbrowser。我会更爱。


1
我找到了保存浏览器(使用firefox)和文件夹(Windows设置)会话并在启动时重新启动的方法。我还没有找到其他很好的解决方案,例如Office(Word,Excel,Outlook),记事本和Adobe Reader。
Doltknuckle

对于编辑而言,超级编辑具有此功能。我个人更喜欢kedit,因为它具有脚本功能。
戴夫

-1

并非完全符合您的要求,但您可以将计算机整夜置于“挂起”模式。除非您实际上有正在运行的进程,否则它将不会对其工作方式产生任何影响,早上只需一两秒钟即可将其取消挂起,并且Windows Update无法在挂起期间运行。

而且是免费的。


好主意,但是当OP必须进行Windows更新时并不能解决问题。
克里斯

1
我已经想到,暂停和休眠对我没有任何帮助。不是我要节省能源,主要是我想在硬重启后回到以前的工作环境。
Doltknuckle

我的想法是,如果您在那里,就可以拒绝重新启动,直到方便为止。
CarlF'1

Doltknuckle问的是“重新启动后如何还原正在处理的内容?” 人们一直在回答的问题是“如何防止计算机自动重启?” 后者是一个很好的问题,但实际提出的问题完全无关
Martha 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.