• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • 用C++ Builder为计算机增加启动日志

        公用机房或办公室中的计算机通常是大家共享使用的,作为管理者或“主要”使用者很想掌握机器何时被开启使用过,若有一个启动记录就可以随时了解这些情况。本文给出如何用C++ Builder 5实现这样一个程序的编制,使每次启动计算机即执行本程序,在注册表中记录开机时间等信息,以便随时通过注册表编辑器查看。程序特点:每次启动计算机都要执行一次(这一功能由本程序自动完成而不必手工在注册表中添加,只需运行一次程序即可),为增加隐蔽性,该程序为后台运行的无窗体程序。

      编程要点:

      1. 在C++ Builder 5环境中建立新工程文件:执行菜单命令File/New Application,然后将工程文件另存为“Logon.bpr”。

      2. 执行菜单命令Project/View Source,打开Logon.cpp文件,将其中的

      USEFORM(“Unit1.cpp”, Form1);



      Application->CreateForm(__classid(Tform1), &Form1);

      两条语句删除,

      用C++ Builder实现图像的特技显示
      用C++ Builder实现VFP数据库开发,用BCB开发有身份认证功能的Email程序,BCB动态生成30个按钮对象,BCB不让应用程序显示在任务栏上的方法,利用C++Builder自定义Windows窗体“系统菜单”,用程序实现文件的关联,数字小键盘指法练习,用C++ Builder开发多层数据库应用程序,在C++ Builder6上使用Boost正则表达式库,C++Builder使用经验谈,用C++ Builder对图像进行特殊效果处理,CBuilder中帮助文件的连接及显示讨论,BCB客户端tuxedo开发实例,在BCB下使用GExperts的Debug功能,BCB编写DLL终极手册,在拷贝、删除文件时显示飞行的文件夹动画,用BCB实现超星格式转换为BMP格式,在C++Builder中使用Compress Html Help,在bcb里实现像Winamp那样具有吸附效果的磁性窗口,利用BCB巧建WEB浏览器
      C++ Builder

      目的是创建无窗体程序。

      3. 文件Logon.cpp的全部代码如下:

      #include

      #include //添加行

      #pragma hdrstop

      USERES("logon.res");

      WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

      {

      try

      { //添加部分开始

      int num=0;

      TRegistry *Registry = new TRegistry; //创建注册表堆对象指针

      Registry->RootKey = HKEY_USERS; //定位注册表根键

      if(!Registry->OpenKey(".DEFAULT\\Logon\\Records", false))

      { //如果打开主键失败

      Registry->CreateKey(".DEFAULT\\Logon\\Records"); //创建主键

      if(!(Registry->OpenKey(".DEFAULT\\Logon\\Records", false)))

      return 0;

      else

      {

      TRegistry *Reg = new TRegistry; // ①

      Reg->RootKey = HKEY_LOCAL_MACHINE;

      Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false);

      Reg->WriteString("Logon",Application->ExeName); //在注册表中注册本程序

      Reg->CloseKey();

      delete Reg;

      Application->MessageBox("登录程序注册成功!","结果",MB_OK); // ②

      Registry->WriteInteger("开机次数",num);

      Registry->WriteString("程序注册时间",Date()+Time());

      return 0;

      }

      }

      else

      {

      num = Registry->ReadInteger("开机次数"); // ③

      Registry->WriteInteger("开机次数",num+1); //记录开机次数

      Registry->WriteString("第"+AnsiString(num+1)+"次开机",Date()+Time()); //记录开机时间

      }

      Registry->CloseKey();

      delete Registry;

      //添加部分结束

      Application->Initialize();

      Application->Run();

      }

      catch (Exception &exception)

      {

      Application->ShowException(&exception);

      }

      return 0;

      }

      应用:

        利用此法,将上述相关代码移植到其它C++ Builder应用程序中,通过读写注册表对程序的使用加以限制,比如限制使用程序次数:30次,只要在上述代码③处增加一条if语句

      if(num==30)

      {

      Application->MessageBox(“本程序已经使用30次,将要退出!!”, “警告:”, MB_OK);

      return 0;

      }

      即可(删除①到②行的语句段),编写限制版的应用程序。当然也可以考虑对时间的限制,这只要在注册表中暗设“机关”就行。

        为了生成单独的EXE文件,应激活Project/Options…菜单项,去掉标签“Linker”下的“Use dynamic RTL”选项,同时去掉“Packages”标签下的“Build with runtime packages”选项。将此文件Logon.exe复制到需要记录的机器上的一个固定的文件夹中(比如,windows文件夹),执行一次即可完成程序的注册。

      用C++ Builder实现图像的特技显示
      用C++ Builder实现VFP数据库开发,用BCB开发有身份认证功能的Email程序,BCB动态生成30个按钮对象,BCB不让应用程序显示在任务栏上的方法,利用C++Builder自定义Windows窗体“系统菜单”,用程序实现文件的关联,数字小键盘指法练习,用C++ Builder开发多层数据库应用程序,在C++ Builder6上使用Boost正则表达式库,C++Builder使用经验谈,用C++ Builder对图像进行特殊效果处理,CBuilder中帮助文件的连接及显示讨论,BCB客户端tuxedo开发实例,在BCB下使用GExperts的Debug功能,BCB编写DLL终极手册,在拷贝、删除文件时显示飞行的文件夹动画,用BCB实现超星格式转换为BMP格式,在C++Builder中使用Compress Html Help,在bcb里实现像Winamp那样具有吸附效果的磁性窗口,利用BCB巧建WEB浏览器
      C++ Builder

    • 0
    • 0
    • 0
    • 79
    • 单栏布局 侧栏位置: