| 利用C++ Builder为计算机增加启动日志 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-10 11:13:57
|
利用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); 两条语句删除,目的是创建无窗体程序。 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; } 其中从语句①到②的程序段将在注册表中产生如图1的效果,
在此登录的程序将在每次启动计算机时被执行一次。之后,每次启动计算机都在注册表中记录启动信息如图2所示,只要打开注册表编辑器即可查看计算机使用信息。
应用: 利用此法,将上述相关代码移植到其它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文件夹),执行一次即可完成程序的注册。
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: CB生成的程序需要哪些文件 下一篇文章: 在Windows桌面创建快捷方式 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |