20

VM software does a great job of saving state when you "turn it off," allowing instant and immediate return to that previous state.

Is there some application for Windows that allows me to do the same thing, for any arbitrary software? It would allow me to save/restore state, possibly via a shell command or button that it appends to every window.

Edit: For clarity, there are two types of apps: those that save their own states, and those that save others' states. Those that save their own state are like Chrome, which on load, reloads the windows you had open last time.

That's not what I'm asking about; I'm asking for an app that can save the state of other apps, kind of like VM software does; but for any app. (A trivial test would be load notepad++, type a bunch of stuff, and save-state; on reset-state, you should be able to multi-level undo a lot of what you wrote, as if you never shut down the application.)

ashes999
  • 655
  • 4
  • 15
  • 32
  • 2
    Possible dupes [Restore open applications, documents, and window state](http://superuser.com/questions/158795/restore-open-applications-documents-and-window-state) & [Save and restore a program's state in Windows](http://superuser.com/questions/170434/save-and-restore-a-programs-state-in-windows) – Sathyajith Bhat Jan 09 '11 at 02:19
  • +1 Interesting question. As the other similar questions haven't received any good (if any) answers I'm sceptical. – Nifle Jan 09 '11 at 10:52
  • @Nifle agreed. In principle, this should be possible (save a memory dump of the app, re-load when you restart) -- so I have a feeling it exists; I just can't find an app that does it. – ashes999 Jan 09 '11 at 14:45
  • Read: Hibernation. – Hello71 Jan 13 '11 at 00:46
  • In my case, hibernation is not a solution. I was a heavily hibernation user until I bought a SSD disk. Check the @Matthew A. Schneider answer. – Mario S Mar 14 '15 at 01:54
  • I'm not clear what the requirement is, since you say "_any_ app" rather than "_all_ apps". If you want to preserve _all_ system state, you might want to look into software like [Deep Freeze](http://www.faronics.com/products/deep-freeze). I have never used it, so I can't say whether it's any good, but it gets mentioned here on Super User occasionally. – G-Man Says 'Reinstate Monica' Mar 14 '15 at 06:57

4 Answers4

7

Without virtualization, your only option on Microsoft Windows is pause/resume applications. The utilities which can do this are PySuspend and Pausep. This will not allow you to perform any sort of "undo".

While there are virtualization products such as QubesOS which can do what you're looking for Linux systems, you will not likely see this on Microsoft Windows without direct support from Microsoft. However, even with QubesOS, it should be possible to run a virtualization product like VirtualBox or VMWare Workstation to run Windows applications. You can also run Windows applications via wine, with full benefits of the QubesOS abstraction.

Alternatively, you could run multiple VMs running a separate copy of Windows underneath each of them. Some versions of MS Windows allow you to run one or more copies of the OS, virtualized, under a single license.

ewindisch
  • 776
  • 3
  • 6
  • Yes, in the worst case, I can always have my PC as a "thin" client and run everything inside a VM (with a 10% performance hit in the case of VM Ware). That's not a bad backup plan -- unless you share your computer with non-techies who are wondering what you're doing :) – ashes999 Jan 13 '11 at 15:59
  • Do these tools allow you to pause, shut the application down, and then resume from the previous state? – ashes999 Jan 15 '11 at 15:10
  • 1
    PySuspend and Pausep issue a Windows equivalent to the POSIX SIGSTOP/SIGCONT signals. This does not allow the application to be entirely "shut down", it does not release any memory allocations. They simply stop the process from using any CPU until you unsuspend/resume the process. – ewindisch Jan 16 '11 at 00:58
5

At the risk of being down-voted, I find I have to give a negative answer.

Many people would wish for this, including myself. I have also long searched for such a product, before I understood that it does not exist, and indeed cannot exist. Maybe limited implementations of suspend/unsuspend are possible, but not general ones.

Think for example about suspending an application that has an open file on the CD or an open Internet connection. Now imagine what it would take to "suspend" and "unsuspend" it: All files and connections to be saved on suspend, then on unsuspend to be re-created, CD drive maybe to be verified and file opened, Internet connections to be re-established with all login info into the site, etc etc.

This is just too complex to implement in any operating system, and would also be a security hole, bypassing the need for entering the login if an application's state was "captured" just after the login. To correctly suspend an application, one would just about need to save the state of the entire operating system (which does exist).

harrymc
  • 455,459
  • 31
  • 526
  • 924
  • 4
    If it works for hibernation, there is no reason for it not to work in the scenario described by OP. You would have to re-establish file handles of course and manage security, but nobody said it would be easy. That said, dumping the raw memory requires privileges that only the operation system is supposed to have. You would have to seriously trust the application to give it OS privileges (assuming it is even possible to give it such privileges). – Xr. Jan 12 '11 at 09:42
  • @Xr: Hibernation is for the entire computer, which I did say does exist (although applications are not guaranteed not to fail on wake-up). The "one application" case does not really exist, since the application's state is part of the operating system state. As you say, this mechanism is possible, but it has to be built-into the operating system itself. An application running in user-space doesn't have the required access to system tables and drivers, and this also requires very specialized knowledge of them. – harrymc Jan 12 '11 at 09:52
  • You're right that it's complex. I started a SO question about this and the answer was, as expected, "it's very complex to build because of all these issues." – ashes999 Jan 12 '11 at 15:26
0

You can do this using "timefreeze". Install it and run it. When your restart your PC, it will be restored EXACTLY to the state it was in when you ran TimeFreeze. You can turn it on and off at will and you can also specify folders which are excluded from the TimeFreeze.

0

It's doable. Check out the following.

Twinsplay: http://www.twinsplay.com/learn-more-about-twinsplay

SmartClose: http://download.cnet.com/SmartClose/3000-2094_4-10784165.html

  • 1
    Why those? How do they solve the problem? – ale Dec 11 '12 at 16:48
  • I think that this answer was unfairly downvoted. Following the @harrymc answer, those are good alternatives to the app requested by ashes999. Right now I'm looking for something like ashes want it, because I have a SSD disk and I don't want to hibernate. In that sense, SmartClose seems to me an interesting solution that I'm trying right now. – Mario S Mar 14 '15 at 01:48
  • SmartClose (https://www.ghacks.net/2008/12/03/smart-close/) and probably Twinsplay too merely reopen the windows and count on the applications themselves to have saved their state – mic Mar 21 '19 at 22:58