科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件用C++ Builder为计算机增加启动日志

用C++ Builder为计算机增加启动日志

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文给出如何用C++ Builder 5实现这样一个程序的编制,使每次启动计算机即执行本程序,在注册表中记录开机时间等信息,以便随时通过注册表编辑器查看。

作者:51cto.com整理 来源:51cto.com整理 2007年9月14日

关键字: C++ Builder 日志 软件

  • 评论
  • 分享微博
  • 分享邮件

程序特点

每次启动计算机都要执行一次(这一功能由本程序自动完成而不必手工在注册表中添加,只需运行一次程序即可),为增加隐蔽性,该程序为后台运行的无窗体程序。



编程要点

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

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

USEFORM(“Unit1.cpp”, Form1);



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

两条语句删除,目的是创建无窗体程序。

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文件夹),执行一次即可完成程序的注册。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章