Программное обеспечение Windows для сохранения произвольного состояния приложения

14

Программное обеспечение VM отлично справляется с сохранением состояния, когда вы «выключаете его», позволяя мгновенно и немедленно вернуться в это предыдущее состояние.

Есть ли какое-нибудь приложение для Windows, которое позволяет мне делать то же самое для любого произвольного программного обеспечения? Это позволило бы мне сохранить / восстановить состояние, возможно, с помощью команды оболочки или кнопки, которая добавляется в каждое окно.

Изменить: для ясности, есть два типа приложений: те, которые сохраняют свои собственные состояния, и те, которые сохраняют состояния других. Те, которые сохраняют свое собственное состояние, похожи на Chrome, который при загрузке перезагружает окна, которые вы открывали в прошлый раз.

Это не то, о чем я спрашиваю; Я спрашиваю о приложении, которое может сохранить состояние других приложений, вроде программного обеспечения VM; но для любого приложения. (Тривиальным тестом было бы загрузить notepad ++, набрать кучу вещей и сохранить состояние; при сбросе состояния вы должны иметь возможность многоуровневой отмены большей части того, что вы написали, как если бы вы никогда не закрывали приложение. )

ashes999
источник
+1 интересный вопрос. Поскольку другие подобные вопросы не получили хороших (если таковые имеются) ответы, я скептически отношусь.
Nifle
@Nifle согласился. В принципе, это должно быть возможно (сохранить дамп памяти приложения, перезагрузить при перезапуске) - поэтому у меня такое ощущение, что оно существует; Я просто не могу найти приложение, которое делает это.
ashes999
Читайте: Спящий режим.
Привет71,
В моем случае гибернация не является решением. Я был сильно спящим пользователем, пока не купил SSD диск. Проверьте ответ @Matthew A. Schneider.
Марио С

Ответы:

3

С риском быть убитым голосом, я считаю, что должен дать отрицательный ответ.

Многие люди хотели бы этого, в том числе и я. Я также долго искал такой продукт, прежде чем понял, что он не существует, и действительно не может существовать. Возможно, возможны ограниченные реализации приостановки / отмены приостановки, но не общие.

Подумайте, например, о приостановке работы приложения, имеющего открытый файл на компакт-диске, или об открытом интернет-соединении. Теперь представьте, что нужно сделать, чтобы «приостановить» и «приостановить» его: все файлы и подключения будут сохранены при приостановке, а затем при повторном создании приостановки, может быть проверен привод компакт-дисков и открыт файл, восстановлены подключения к Интернету. - устанавливается со всей информацией для входа на сайт и т. д.

Это слишком сложно реализовать в любой операционной системе, и это также будет дырой в безопасности, исключающей необходимость входа в систему, если состояние приложения было «захвачено» сразу после входа в систему. Чтобы правильно приостановить приложение, нужно просто сохранить состояние всей операционной системы (которая существует).

harrymc
источник
4
Если он работает в режиме гибернации, нет никаких причин не работать в сценарии, описанном OP. Конечно, вам придется заново устанавливать дескрипторы файлов и управлять безопасностью, но никто не говорил, что это будет легко. Тем не менее, дамп необработанной памяти требует привилегий, которые должна иметь только операционная система. Вы должны серьезно доверять приложению, чтобы дать ему привилегии ОС (при условии, что возможно даже дать ему такие привилегии).
Xr.
@Xr: Hibernation для всего компьютера, который, как я сказал, существует (хотя приложения не гарантируют, что они не будут выходить из строя при пробуждении). Случай «одного приложения» на самом деле не существует, так как состояние приложения является частью состояния операционной системы. Как вы говорите, этот механизм возможен, но он должен быть встроен в саму операционную систему. Приложение, работающее в пользовательском пространстве, не имеет необходимого доступа к системным таблицам и драйверам, и это также требует очень специальных знаний о них.
Harrymc
Ты прав, что это сложно. Я задал SO вопрос по этому поводу, и ответ был, как и ожидалось, «его очень сложно построить из-за всех этих проблем».
ashes999
5

Без виртуализации единственным вариантом в Microsoft Windows является приостановка / возобновление работы приложений. Утилиты, которые могут сделать это PySuspend и Pausep . Это не позволит вам выполнить какую-либо «отмену».

Хотя существуют продукты для виртуализации, такие как QubesOS, которые могут делать то, что вы ищете для систем Linux, вы вряд ли увидите это в Microsoft Windows без прямой поддержки Microsoft. Однако даже с QubesOS должна быть возможность запустить продукт виртуализации, такой как VirtualBox или VMWare Workstation, для запуска приложений Windows. Вы также можете запускать приложения Windows через Wine , используя все преимущества абстракции QubesOS.

Кроме того, вы можете запустить несколько виртуальных машин под отдельной копией Windows под каждой из них. Некоторые версии MS Windows позволяют запускать одну или несколько копий ОС, виртуализированных, под одной лицензией.

ewindisch
источник
Да, в худшем случае я всегда могу иметь свой ПК в качестве «тонкого» клиента и запускать все внутри виртуальной машины (при 10% -ном снижении производительности в случае VM Ware). Это неплохой план резервного копирования - если вы не поделитесь своим компьютером с нетехническими специалистами, которым интересно, что вы делаете :)
ashes999
Позволяют ли эти инструменты приостановить работу, закрыть приложение и затем вернуться из предыдущего состояния?
ashes999
1
PySuspend и Pausep выдают Windows, эквивалентную сигналам POSIX SIGSTOP / SIGCONT. Это не позволяет приложению полностью «закрыться», оно не освобождает какие-либо выделения памяти. Они просто останавливают процесс от использования любого процессора, пока вы не приостановите / не возобновите процесс.
ewindisch
1

Это выполнимо Проверьте следующее.

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

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

Мэтью А. Шнайдер
источник
1
Почему те? Как они решают проблему?
эль
Я думаю, что этот ответ был несправедливо опущен. После ответа @harrymc это хорошая альтернатива приложению, запрошенному ashes999. Сейчас я ищу что-то вроде пепла, потому что у меня есть SSD-диск, и я не хочу переходить в спящий режим. В этом смысле SmartClose кажется мне интересным решением, которое я сейчас пробую.
Марио С
SmartClose ( ghacks.net/2008/12/03/smart-close ) и, вероятно, Twinsplay слишком просто заново открывают окна и рассчитывают на сами приложения, чтобы сохранить свое состояние
микрофон