Сохранение состояния перед выключением с помощью .NET

2

Я хочу сохранить состояние своей машины перед выключением (для машин, которые не поддерживают спящий режим).

По сути, я пытаюсь имитировать функцию Windows Hibernate. Когда машина снова включается, она выглядит точно так же, как и предыдущая, и закрывается.

Любые идеи по использованию управляемого кода для выполнения этой задачи?

В настоящее время используется/рассматривается Windows XP с пакетом обновления 2 (SP2).

  • 0
    Я думаю, что нам нужно больше информации здесь. ты запускаешь программу? Вы хотели бы сохранить состояние вашей программы? или все окна (со всеми открытыми программами? почему бы не использовать спящий режим?
  • 0
    Какая операционная система и пакет обновления?
Показать ещё 2 комментария
Теги:
shutdown

3 ответа

5
Лучший ответ

Для всех приложений, запущенных на вашем компьютере, это просто невозможно, используя чистый управляемый код. На самом деле, даже с неуправляемым кодом у вас будет адское время. Я бы не сказал, что это невозможно, но, вероятно, очень сложно и время для съемок.

Вот несколько полезных ресурсов, которые помогут вам начать:

Арун Кишань в Windows Kernel
http://www.dotnetrocks.com/default.aspx?ShowNum=434

Базовый дамп
http://en.wikipedia.org/wiki/Core_dump

SetContext
http://en.wikipedia.org/wiki/Setcontext

Раймонд Чен на "спящих" одиночных процессах http://blogs.msdn.com/oldnewthing/archive/2004/04/20/116749.aspx

Для вашего собственного приложения лучше всего выделить все состояние, которое вы хотели бы восстановить в наборе сериализуемых классов. Затем, когда ваше приложение будет выгружено (или периодически), сохраните эти данные на диск с помощью XMLSerializer. Когда ваше приложение снова загрузится, снова используйте XMLSerializer, чтобы повторно укрепить классы, поддерживающие состояние вашего приложения, и использовать эту информацию, чтобы вернуть пользовательский интерфейс в предыдущее состояние. Если у вас сложные пользовательские интерфейсы, это может быть трудоемкой задачей.

0

Возможно, API восстановления приложений Vista. Требуется Vista, хотя.

0

вам нужно будет сохранить его самостоятельно, прежде чем ваша программа выйдет. вы можете сериализовать все состояния окон в xml и сохранить их в каком-то файле. вы можете перезагрузить настройки, когда ваше приложение снова запустится.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню