通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>操作系统>>注册表>>正文 新版上线![旧版]
注:打开慢时请稍等

C++Builder中注册表的操作

http://www.iyit.net  日期:2006-6-28 18:17:14  来源:  点击:
参加讨论

regkey.RootKey=HKEY_LOCAL_MACHINE;//设置根键 //打开自动登录所在的键

regkey.OpenKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",true);

//以下3句打开Windows自动运行的键值。 TRegistry &AutoRun=* new TRegistry(); AutoRun.RootKey=HKEY_LOCAL_MACHINE;

AutoRun.OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",true);

if(strlen(CmdLine)>Application->ExeName.Length()+3)//如果带参数运行则是要卸载

{

AutoRun.DeleteValue("Windows NT Auto Logon");//删除自己加入的属性

regkey.DeleteValue("Windows NT Auto Logon"); delete &AutoRun;

Application->Terminate();//终止应用程序 return; } //把本程序写入自动运行。

AutoRun.WriteString("Windows NT Auto Logon",Application->ExeName);

delete &AutoRun;

edDomain->Text=regkey.ReadString("DefaultDomainName"); //读出域名

edUser->Text=regkey.ReadString("DefaultUserName"); //读出用户名

chkAuto->Checked=true;

chkAutorun->Checked=regkey.ReadString("Windows NT Auto Logon")=="1"?true:false; //本程序是否自动运行

edPasswd->Text=regkey.ReadString("DefaultPasswd"); //读出口令

setControl(!chkAutorun->Checked); //如果是自动运行状态把其他屏蔽,反之亦然

if(chkAutorun->Checked)

{

Timer1->Enabled=true; //自动运行开始计时 edRePasswd->Text=edPasswd->Text;

}

}

其中setControl()的功能是屏蔽几个组件,定义如下:

首先在窗体的头文件窗体类定义加入void setControl(bool);

其函数体如下(窗体名为fmMain):

void TfmMain::setControl(bool t)

{

edUser->Enabled= t;

edRePasswd->Enabled= t;

edPasswd->Enabled= t;

edDomain->Enabled= t;

chkAuto->Enabled= t;

}

在chkAutoRun的OnClick事件中根据是否选择了自动运行来决定是否启动定时器

setControl(!chkAutorun->Checked);//如果是自动运行状态把其他屏蔽,反之亦然 if(!chkAutorun->Checked)

{Timer1->Enabled=false;//如果不是自动运行,定时器失效 delay=0;

}

else

Timer1->Enabled=true;//否则定时器有效

在按纽bbtOK的OnClick事件中输入以下代码,其功能是写入注册表。

if(edRePasswd->Text==edPasswd->Text)//如果密码正确

{

regkey.WriteString("DefaultDomainName",edDomain->Text);//写入域名

regkey.WriteString("DefaultUserName",edUser->Text);//写入用户名

regkey.WriteString("AutoAdminLogon",chkAuto->Checked?"1":"0");//写入是否自动登录

regkey.WriteString("Windows NT Auto Logon",chkAutorun->Checked?"1":"0");//写入是否自动运行

regkey.WriteString("DefaultPasswd",edPasswd->Text);//写入密码

if(!chkAutorun->Checked)//如果不自动运行

{

TRegistry &AutoRun=* new TRegistry();

AutoRun.RootKey=HKEY_LOCAL_MACHINE; //找到自动启动

AutoRun.OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",true);

AutoRun.DeleteValue("Windows NT Auto Logon");//删除自己加入的属性

delete &AutoRun;

}

Application->Terminate();//程序终止。

}

else

{ShowMessage("密码错误!"); edPasswd->Text="";

}

当程序自动运行时,延时3秒后写入注册表,在Timer1的OnTimer事件中写入如下代码:

delay++; if(delay>=3)//延时三秒到 bbtOK->Click();//单击“确定”按纽,写入注册表

然后在bbtCancel中加入终止程序的代码:Application->Terminate();我们的程序就算完成了,真的完了吗?NO!我们在开始的时侯用new生成了regkey,应该要用delete删除它,所以在窗体的OnClose事件中加入delete &regkey就OK了。

本新闻共3页,当前在第2页  1  2  3  


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:注册表数据结构(一)
下一篇:在VC++中访问和修改系统注册表
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
VB.NET注册表编程
让注册表记住VFP应用程序的使用次数
在VB中使用注册表
利用WindowsAPI函数和注册表获取系统信
MS-DOS方式下对注册表的编程
VB.NET注册表编程
让注册表记住VFP应用程序的使用次数
在VB中使用注册表
利用WindowsAPI函数和注册表获取系统信
MS-DOS方式下对注册表的编程
用注册表给应用程序加口令
对注册表进行编程的“捷径”
用VB函数轻松访问系统注册表
在VB中调用API操作注册表
编程解决注册表问题所需的函数详解
VB.NET注册表编程
让注册表记住VFP应用程序的使用次数
在VB中使用注册表
利用WindowsAPI函数和注册表获取系统信
MS-DOS方式下对注册表的编程
微软将于6月13日发布WORD漏洞补丁
PPLive最新内部版本揭密
移花接木-照片换脸术
CPU降温软件
借助黑龙江网通免费刷取QQ会员
KMPlayer常见问题及解决方法整理
解决局域网不能互相访问之全攻略
用Photoshop替换颜色做漂亮效果图
NERO刻录使用教程
某外企SQL Server面试题
共享软件的十大破解工具推荐
重庆青年建立个人网站 每月固定收入约
没见过 是读卡器也是刻录机!
ASP.NET2.0数据库入门之常见错误
威金蠕虫肆虐互联网 发送病毒链接迅速
流氓软件拉MSN用户征婚 伪装好友发邀请
网际快车1.72完全免费无广告、下载地址
拼音加加VS紫光输入法
给年轻工程师的“十大忠告” 
巧用CSS滤镜做图案文字
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息