有好几次,我的 Windows 2000 和 XP 机器由于 Windows 崩溃或断电而意外关闭,导致我的 UPS 自动关闭计算机。
我是一个经常打开很多程序的人,而且我经常几周甚至几个月不重启电脑,所以如果电脑意外关机,我很难记住我打开了哪些程序以及我正在处理的所有事情。此外,我有时会打开记事本来记下提醒或一些待办事项清单。这些显然会在意外关机时丢失。
是否有任何软件(商业或免费)可以记住关机前打开的所有窗口(及其标题栏)?另外,如果软件可以保存记事本窗口的内容,那就太好了,尽管我不确定这是否可行。
答案1
意外关机
几点:
可靠性
如果需要 100% 的可靠性,这是不可能的。这是一种“竞争条件”。目前没有办法自动打开一个窗口,同时将该窗口的存在同步到文件系统。想象一下以下事件序列,按时间顺序从早到晚:
- 您打开一个应用程序,或者应用程序打开一个新窗口。
- Windows API 向“监视程序”提供通知,告知其窗口的存在。
- 断电前“监控程序”能够将窗口存在的事实写入“持久存储”,也就是硬盘中。
应用知识
一般情况下,第三方程序无法知道程序打开特定窗口的原因。从编程层面来看,程序可以出于任何原因或无缘无故地打开新窗口。鉴于这一事实,第三方程序无法知道需要采取哪些步骤才能使打开窗口的程序打开新窗口。
为了具体的应用程序,这可以做到。例如,对于 Microsoft Word,有方法可以读取窗口标题并推断打开的文档的名称,甚至可以安装 Word 插件来监视打开的窗口并跟踪打开的文档,然后在重新启动时重新打开它们。
然而,在寻找这样的解决方案时,您必须确保“监控程序”能够理解您想要自动重新打开的每个应用程序的窗口策略,并且还了解要求该应用程序重新打开所有这些窗口的过程。
解决此问题的一种“幼稚”方法是跟踪所有创建了一个或多个窗口的正在运行的程序,然后在您重新启动计算机时“愚蠢地”启动这些可执行文件。编写这样的程序相当简单,事实上,我相信存在许多这样的程序。缺点是它可能没那么有用——如果在您启动 Windows 时启动它notepad.exe
,而没有打开任何文档,它会对您有多大用处?这基本上就是您在“一般情况下”可以做的事情的范围。
数据的完整性
如果您正在用记事本、Word 或任何其他编辑器程序编辑文档,而您的 PC 突然关机,则没有可靠的方法来保留您的所有数据。如果您希望通过软件解决此问题,请继续希望。最好购买不间断电源 (UPS),它基本上是连接到 PC 的大型电池,可防止主电源断电或暂时故障时 PC 断电。通常,UPS 可以让您的 PC 运行足够长的时间,以便您保存工作并关机。
原则上,有一种方法可以提高数据完整性,但这是文本/文档编辑器的实现细节:如果编辑器每次您输入一个字符或进行更改时都将更改写入磁盘,那么您可能丢失的最多数据是一个字符(您输入了该字符,但在断电之前它无法写入磁盘)。然而,按照当今大多数编辑器的工作方式,您可能会丢失几分钟的数据(在自动保存的情况下),或者全部您的数据(对于没有自动保存功能的编辑器而言)。
我不提供软件推荐;)
“仅跟踪您在记事本中打开了哪些文件”是可行的,但使用真正的文本编辑器(例如 Notepad++)来记住您在没有第三方插件的情况下打开了哪些文件可能更容易。