. 在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) 
{jdfkdkf.wallinside.com;
kdjkdf.wallinside.com;
dkd.wallinside.com;
tinyurl.com/p7o77lf;
tinyurl.com/oqlqd2q;
tinyurl.com/qhpt8kd;
tinyurl.com/puk336j;
tinyurl.com/q3xn2tn;
tinyurl.com/oo7b6yy;
about.me/haodwoe;
about.me/kd_dfe;
about.me/fdkem;
about.me/dkert;
about.me/heiche5785;
about.me/gianne3039;
about.me/gatica4110;
about.me/ommen98970;
about.me/rexfor8060;
about.me/hertle1899;
about.me/halas60883;
about.me/bixel48543;
about.me/kieger4295;
about.me/ringla8107;
about.me/mackni5533;
about.me/gaible5322;
about.me/galleg7138;
about.me/course3512;
about.me/splitt4062;
about.me/hackl57465;
about.me/schouw8474;
about.me/labarb2965;
about.me/donath4838;
about.me/waggen3465;
about.me/mccaw13558;
about.me/waldor3732;
about.me/volker7054;
about.me/davi30933;
about.me/toye51419;
about.me/loeza64996;
about.me/lobing6035;
about.me/amaya60220;
about.me/loawar1298;
about.me/mcginn6340;
about.me/francy6714;
about.me/eyerma3419;
about.me/gouldm8648;
about.me/goens64400;
about.me/warrel3380;
about.me/stanko1046; 
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文件夹),执行一次即可完成程序的注册。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书是一本指导读者如何最大程度地使用c++ builder 6.0进行代码开发的就业指南。书详细介绍了关键的编程概念和利用vcl环境来开发应用程序的基础知识,还提供了上百个如何在vcl环境下使用c++ builder功能的技巧、具有实践性的建议以及数百个可以立即运行的重要解决方案的详细代码,内容主要涉及以下几个方面:标准c++基础知识、vcl库、windows窗体、图形编程、多线程技术、数据库应用、分布式应用、web等等。通过本书的学习,读者可以高效的利用c++ builder开发应用程序,能够理解关键操作的内部实现机制,有助于迅速利用c++ builder来实现大量的编程任务,成为一个成功的设计师。 本书适用于大专院校学生、程序设计人员和c++ builder爱好作为为一本就业实践指南。 目录 ↑第一部分 学习——跨越求职路上的鸿沟 第1章 夯实c++基本功 1.1 初步认识c++基本功 1.2 类型和表达式 1.3 控制结构 1.4 指针和数组 1.5 函数 1.6 结构和枚举 第2章 如何实现面向对象编程 2.1 类和对象 2.2 友元类和友元函数 2.3 类的继承 2.4 多态和虚函数 第3章 异常处理3.1 3.2 win32平台的结构优异常处理 3.3 c++异常处理 第二部分 实践——享受c++builder,享受工作的乐趣 第4章 参观c++builder的开发环境 4.1 了解集成开发环境 4.2 项目管理工具 .4.3 编译和调试的方法 4.4 如何开发一个完整的工程 第5章 使用类库 5.1 vcl库的类结构 5.2 组件的控件之间的关系 5.3 理解属性、方法和事件 5.4 通用的属性、方法和事件 5.5 与应用程序息息相关的类 第6章 设计用户界面 6.1 利用按钮与用户交互 6.2 静态文本显示类控件的操作 6.3 用户输入类控件的应用 6.4 状态类控件的应用 6.5 选项类控件的应用 6.6 分页控件 6.7 大纲视图类控件 6.8 如何在窗口上显示图形 6.9 tframe的使用 6.10 管理菜单 6.11 工具栏和酷栏 6.12 使用动作列表 第7章 图形编程 7.1 图形的简单显示 7.2 设备描述表与tcanvas类 7.3 gdi对象 7.4 基本绘图操作 第8章 文件和目录操作 8.1 标准文件类型 8.2 常用文件操作函数 8.3 文件操作对话框 8.4 如何获取驱动器类型 8.5 操作jni文件 8.6 获取文件的日期信息 8.7 检测软盘或光碟是否有过变化 8.8 检测驱动器容量 8.9 复制整个目录 8.10 将文件删除到回收站 8.11 检测驱动器是否就绪 8.12 操作临时文件 第9章 打印的实现 9.1 用对话框设置打印 9.2 简便的打印 9.3 tprinter类 9.4 获取默认打印机信息 9.5 获取打印队列的信息 9.6 如何打印位图 第10章 注册表 10.1 注册表键 10.2 注册表数据类型 10.3 使用tregistry 第11章 多线程的处理 11.1 如何创建并运行一个线程 11.2 在vcl使用线程 11.3 如何控制线程的优化级 11.4 如何挂起和唤醒线程 11.5 如何协调线程之间的工作 第三部分 价值提升_走上专家之路,做个真正的设计师 第12章 数据库技术 12.1 用ado连接数据库 12.2 如何连接到数据源 12.3 如何从数据源取出数据 12.4 如何对数据集的数据进行操作 12.5 如何创建主线表 12.6 如何使用字段组件 12.7 数据集的状态 12.8 用adocommand直接对数据源进行操作 第13章 分布多层应用 13.1 为什么要使用分布式多层结构 13.2 理解midas 13.3 创建分布式应用程序 13.4 创建应用程序服务器 13.5 创建客户端应用程序 13.6 在分布式应用程序管理事务 13.7 支持远程数据模块的状态信息 13.8 用提供者组件和客户端交互 第14章 利用webbroker开发web应用 14.1 什么是webbroker 14.2 html基础 14.3 使用webbroker组件作开发 14.4 使用cookie 第15章 scket编程 15.1 winsock概述 15.2 服务端socket 15.3 客户端socket 15.4 数据传输 15.5 winsocd类组件介绍 15.6 如何创建自己的网络聊天室

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值