Como usar a API de restauração do sistema para salvar e restaurar dados do sistema no Visual C++

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 315530
Sumário
A restauração do sistema aplicativo interface de programação (API) permite que você salvar informações de estado do sistema, para alterar o estado e para reverter para um estado consistente anteriormente mantido.

Este artigo demonstra como usar a API de restauração de sistema do Visual C++. Neste artigo, você cria um aplicativo que cria um ponto de restauração, que instala um aplicativo fictício, e em seguida, que finaliza o ponto de restauração. Você também verá como exibir pontos de restauração existentes e como reverter de volta usando a restauração do sistema interface do usuário.

Informações de estado do sistema incluem o seguinte:
  • Configuração atual
  • Informações do registro
  • Aplicativos instalados
  • Dispositivos
  • Arquivos críticos do sistema operacional
Oferece informações de estado do sistema não incluir arquivos de usuário, como documentos, planilhas e assim por diante.

Você pode usar a API de restauração do sistema para registrar o estado atual do sistema operacional e os aplicativos instalados. Se quaisquer alterações subseqüentes feitas (por exemplo, aplicativos instalados ou dispositivos) causarem instabilidade no sistema, você pode reverter para o último estado estável. Você também pode usar a API de restauração do sistema como parte do processo de instalação de aplicativos que você desenvolva; você pode desfazer as alterações que você fez se o sistema ficar instável após a instalação.

A API de restauração do sistema monitora arquivos selecionados em uma unidade base e faz cópias desses arquivos antes de ele altera os arquivos durante uma atualização do sistema. Um driver no sistema operacional do Microsoft Windows XP intercepta as operações que são executadas em arquivos. As cópias dos arquivos são compactadas para economizar espaço. Cada conjunto de arquivos salvos é conhecido como um ponto de restauração. Você pode usar a interface do usuário restauração do sistema para reverter o sistema volta para o estado é determinado pelo qualquer ponto de restauração que você tenha capturado no computador.

Sistema restauração monitores arquivos com uma extensão de nome de arquivo reconhecido, como .exe, .dll e ini, são descritos no seguinte arquivo:
%windir%\System32\Restore\Filelist.XML

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft Windows XP Home Edition ou Microsoft Windows XP Professional
  • Microsoft Visual Studio .NET 2002, Visual Studio .NET 2003, Visual Studio 2005 ou Visual Studio 2008
  • Microsoft Platform SDK
Este artigo presume que você esteja familiarizado com o Visual C++ de programação.

Criar um aplicativo de teste

  1. Inicie o Visual C++.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Na caixa de diálogo New Project , clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Projeto Win32 em modelos .

    Observação No Visual Studio 2005 ou no Visual Studio 2008, clique em Visual C++ em Tipos de projeto .
  4. Na caixa de texto nome , digite instalar e, em seguida, clique em OK .
  5. No Assistente de aplicativos Win32, clique em Configurações do aplicativo .
  6. Em tipo de aplicativo , clique em Aplicativo de console e clique em Concluir para criar o aplicativo.
  7. No Solution Explorer , clique o projeto de instalação com o botão direito do mouse e, em seguida, clique em Propriedades .
  8. Na caixa de diálogo Install.cpp Property Pages , clique em Configuration Properties , clique em vinculador , clique em entrada , adicionar Srclient.lib à lista de dependências adicionais e, em seguida, clique em OK .

    Observação No Visual Studio 2005 ou no Visual Studio 2008, o nome da caixa de diálogo é Instalar Property Pages .

Criar um ponto de restauração

  1. Adicione as seguintes diretivas # include ao final de stdafx.h:
    #include <windows.h>#include <srrestoreptapi.h>					
  2. Na função _tmain em Install.cpp, crie as duas variáveis mostradas no código a seguir:
    RESTOREPOINTINFO RstPt;STATEMGRSTATUS MgrStat; 					
  3. Adicione as instruções a seguir que preenchem a variável RstPt com informações que indicam que um aplicativo está prestes a ser instalado:
    <?xm-deletion_mark author="v-bobbid" time="20080319T134214-0800" data="RstPt.dwEventType = BEGIN_SYSTEM_CHANGE;RstPt.dwRestorePtType = APPLICATION_INSTALL;strcpy(RstPt.szDescription, &quot;Demonstration Restore Point&quot;);"?><?xm-insertion_mark_start author="v-bobbid" time="20080319T134222-0800"?>RstPt.dwEventType = BEGIN_SYSTEM_CHANGE;RstPt.dwRestorePtType = APPLICATION_INSTALL;_tcscpy(RstPt.szDescription, _T("Demonstration Restore Point"));<?xm-insertion_mark_end?>					
  4. Crie um ponto de restauração para marca o início da instalação usando a função SRSetRestorePoint . No caso de falha, o motivo da falha e saída de relatório:
    if (!SRSetRestorePoint(&RstPt, &MgrStat)){    printf("Unable to set restore point. Error %ld\n",        MgrStat.nStatus);    return 1;}					
  5. Exibir o número de seqüência para o ponto de restauração recém-criado:
    printf("Restore point created. Sequence %ld\n",     MgrStat.llSequenceNumber);					

Instalar um aplicativo

  1. Adicione as seguintes instruções que simulam algumas das operações são executadas quando um aplicativo é instalado. O aplicativo cria uma subpasta chamada Um novo aplicativo e adiciona três arquivos para esta subpasta. As extensões de arquivo usadas (.exe, .dll e .ini) são todos exemplos de extensões monitorados.
                  <?xm-deletion_mark author="v-bobbid" time="20080319T134254-0800" data=" // Begin application installation code	CreateDirectory(&quot;C:\\A New Application&quot;, NULL);CreateFile(&quot;C:\\A New Application\\Application File.exe&quot;,    GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL);CreateFile(&quot;C:\\A New Application\\Application File.dll&quot;,    GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL);CreateFile(&quot;C:\\A New Application\\Application File.ini&quot;,    GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL);               // End application installation code"?><?xm-insertion_mark_start author="v-bobbid" time="20080319T134258-0800"?>														// Begin application installation codeCreateDirectory(_T("C:\\A New Application"), NULL);CreateFile(_T("C:\\A New Application\\Application File.exe"),    GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL);CreateFile(_T("C:\\A New Application\\Application File.dll"),    GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL);CreateFile(_T("C:\\A New Application\\Application File.ini"),    GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL);											// End application installation code<?xm-insertion_mark_end?>					

Concluir o ponto de restauração

  1. Preencha a estrutura de ponto de restauração com os dados que você precisa indicar que a instalação foi concluída e que o ponto de restauração deve ser salvo e gravado. O número de seqüência usado deve ser o mesmo número de seqüência foi retornado quando o ponto de restauração foi criado:
    RstPt.dwEventType = END_SYSTEM_CHANGE;RstPt.llSequenceNumber = MgrStat.llSequenceNumber;					
  2. Chame SRSetRestorePoint novamente para concluir o ponto de restauração. Se ocorrer um erro, exclua os arquivos do aplicativo e remover o ponto de restauração usando a função SRRemoveRestorePoint :
    <?xm-deletion_mark author="v-bobbid" time="20080319T134704-0800" data="if (!SRSetRestorePoint(&amp;amp;RstPt, &amp;amp;MgrStat)){    printf(&quot;Unable to set end of restore point. Error %ld\n&quot;,        MgrStat.nStatus);    // Delete application files and remove restore point    DeleteFile(&quot;C:\\A New Application\\Application File.exe&quot;);    DeleteFile(&quot;C:\\A New Application\\Application File.dll&quot;);    DeleteFile(&quot;C:\\A New Application\\Application File.ini&quot;);    RemoveDirectory(&quot;C:\\A New Application&quot;);    SRRemoveRestorePoint((DWORD)MgrStat.llSequenceNumber);    printf(&quot;Restore point removed\n&quot;);    return 1;}printf(&quot;Restore point completed\n&quot;);return 0;"?><?xm-insertion_mark_start author="v-bobbid" time="20080319T134715-0800"?>if (!SRSetRestorePoint(&RstPt, &MgrStat)){    printf("Unable to set end of restore point. Error %ld\n",        MgrStat.nStatus);    // Delete application files and remove restore point    DeleteFile(_T("C:\\A New Application\\Application File.exe"));    DeleteFile(_T("C:\\A New Application\\Application File.dll"));    DeleteFile(_T("C:\\A New Application\\Application File.ini"));    RemoveDirectory(_T("C:\\A New Application"));    SRRemoveRestorePoint((DWORD)MgrStat.llSequenceNumber);    printf("Restore point removed\n");    return 1;}printf("Restore point completed\n");return 0;<?xm-insertion_mark_end?>					

Verifique se o ponto de restauração

  1. Criar e executar o aplicativo de instalação. Se a instalação for bem-sucedida, as seguintes mensagens aparecem na janela Console (o número de seqüência pode variar):
    Restore Point created. Sequence 24Restore Point completed					
  2. Usando o Windows Explorer, navegue até o diretório raiz da unidade C.. Localize uma pasta nova chamado Um novo aplicativo . Esta pasta contém três arquivos chamados Application_File.exe, Application_File.dll e Application_File.ini.

Exibir o ponto de restauração

  1. Execute o aplicativo de interface da usuário de restauração do sistema de mensagens, rstrui.exe, localizado no seguinte diretório:
    %windir%\system32\Restore						
  2. Na caixa de diálogo Bem-vindo à restauração do sistema , verifique se o botão Restaurar meu computador para um momento anterior está selecionada e, em seguida, clique em Avançar .
  3. Na caixa de diálogo Selecionar um ponto de restauração , você vê um ponto de restauração é rotulado como Ponto de restauração demonstração na lista. Este é o ponto de restauração que você criou durante o aplicativo de instalação. Quaisquer outros pontos de restauração para o dia atual, se você tiver instalado outros aplicativos ou executado instalar mais de uma vez, serão listados também. Você pode clicar em datas no calendário para ver os pontos de restauração para outros dias.

Reverter a instalação de aplicativo

  1. Verifique se o ponto de restauração demonstração está selecionada e, em seguida, clique em Avançar .
  2. Na caixa de diálogo Confirmar seleção do ponto de restauração , clique em Avançar .
    O Visual C++ fecha todos os aplicativos que estão em execução. Você pode ver a janela de Restauração do sistema enquanto as configurações do sistema são restauradas e o aplicativo é desinstalado. O computador desliga e reinicia.
  3. Quando o Windows for reiniciado, logon. Na caixa de diálogo Restauração concluída , clique em OK .
  4. Use o Windows Explorer para exibir o diretório raiz da unidade C.. O diretório de Um novo aplicativo agora está visível.
Para obter mais informações sobre como usar a API restauração do sistema, incluindo o sistema restauração classes WMI, consulte "restauração do sistema" no SDK da plataforma.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 315530 - Última Revisão: 03/19/2008 23:15:38 - Revisão: 5.0

Microsoft Visual C++ 2008 Express Edition, Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition

  • kbmt kbhowtomaster KB315530 KbMtpt
Comentários