logon.cpp

来自「C++ BUILDER精彩编程实例集锦(源码)3 第五部分 系统编程 第六部」· C++ 代码 · 共 55 行

CPP
55
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#include "Registry.hpp"
#pragma hdrstop
//---------------------------------------------------------------------------
//USEFORM("Mainform.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  try
  {
   int Number=0;
   TRegistry *Registry = new TRegistry;
   Registry->RootKey = HKEY_USERS;
   if(!Registry->OpenKey(".DEFAULT\\MonitorLogon\\History", false))
   { //如果打开主键失败
     Registry->CreateKey(".DEFAULT\\MonitorLogon\\History"); //创建主键
     if(!(Registry->OpenKey(".DEFAULT\\MonitorLogon\\History", false)))
     {
       return 0;
     }
     else
     {  //将程序设置为开机时自动运行程序
        TRegistry *Reg = new TRegistry;
        Reg->RootKey = HKEY_LOCAL_MACHINE;
        Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false);
        Reg->WriteString("MonitorLogon",Application->ExeName);
        Reg->CloseKey();
        delete Reg;
        Application->MessageBox("程序注册成功!","信息提示",MB_OK); // ②
        Registry->WriteInteger("开机次数",Number);
        Registry->WriteString("程序注册时间",Date()+Time());
        return 0;
      }
   }
   else
   {
     Number=Registry->ReadInteger("开机次数");
     Registry->WriteInteger("开机次数",Number+1); //记录开机次数
     Registry->WriteString("第"+AnsiString(Number+1)+"次开机",Date()+Time()); //记录开机时间
   }
   Registry->CloseKey();
   delete Registry;
   Application->Initialize();
   Application->Run();
  }
  catch (Exception &exception)
  {
   Application->ShowException(&exception);
  }
  return 0;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?