Is it possible to save Windows process state to file and after restarting it to load the same state? [duplicate]

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.)


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).


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.