请问怎样在C++Builder操作注册表?最好给我一个例子好吗?谢谢!

miss 2000-08-24 10:52:00
...全文
267 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowen72 2001-11-07
  • 打赏
  • 举报
回复
??? 哪来的鼠?
wyb_45 2001-11-07
  • 打赏
  • 举报
回复
to zsyangel(乱世天使)
你也太心急了。
wyb_45 2001-11-07
  • 打赏
  • 举报
回复
#include <Registry.hpp>//头文件

TRegIniFile *Reg = new TRegIniFile("aaa");
Reg->RootKey = HKEY_CURRENT_USER;
Reg->WriteString("\\Software\\MySoft", "Start Page", "");
delete Reg;
yechun 2001-11-07
  • 打赏
  • 举报
回复
o
zsyangel 2001-11-06
  • 打赏
  • 举报
回复
我有个C++builder的简单问题
我写的代码如下:
……
char c[]="SDFDSFDSFDF\n";
filewrite(fp,c,30);
char p[]="SDFDSF";
filewrite(fp,p,20);
……
fp是一个TXT文件,虽然我用了\n,但打开txt文件后发现为什么无法换行?
zsyangel 2001-11-06
  • 打赏
  • 举报
回复
我有个C++builder的简单问题
我写的代码如下:
……
char c[]="SDFDSFDSFDF\n";
filewrite(fp,c,30);
……
fp是一个TXT文件,虽然我用了\n,但打开txt文件后发现为什么无法换行?
781014 2001-11-06
  • 打赏
  • 举报
回复
april_d 2001-11-06
  • 打赏
  • 举报
回复
good
david_sh 2000-09-15
  • 打赏
  • 举报
回复
用TRegistry类就ok啦
sinsky 2000-08-27
  • 打赏
  • 举报
回复
#include

TRegIniFile *R=new TRegIniFile("SOFTWARE\\abcdef\\defgh\\Config");

//读:
Edit2->Text=R->ReadString("SMTP","Host","");
Edit3->Text=IntToStr(R->ReadInteger("SMTP","Port",25));
Edit4->Text=R->ReadString("SMTP","UserID","");


//写:
R->WriteString("SMTP","Host",Edit2->Text);
R->WriteInteger("SMTP","Port",StrToInt(Edit3->Text));
R->WriteString("SMTP","UserID",Edit4->Text);


别忘了 R->Free();
wxz 2000-08-26
  • 打赏
  • 举报
回复
//---------------------------------------------------------------------------
#ifndef CRegH
#define CRegH
#include <vcl.h>
#include <registry.hpp>
//---------------------------------------------------------------------------
class CReg
{
private:
bool Enable;
HKEY Main;
AnsiString Key;
TRegistry *Reg;
public:
CReg()
{
Reg= new TRegistry();
Enable=false;
}
~CReg()
{
Reg->CloseKey();
delete Reg;
}
void SetRootKey(HKEY hKey)
{
Reg->CloseKey();
Main=hKey;
Reg->RootKey = Main;
}
bool OpenKey(const AnsiString &key,bool Create=true)
{
Key=key;
Reg->CloseKey();
if(Reg->OpenKey(Key,Create))
Enable=true;
else
Enable=false;
return Enable;
}
int ReadInt(const AnsiString &Name,int Default)
{
int Value=Default;
if(Enable)
{
if(Reg->ValueExists(Name))
Value= Reg->ReadInteger(Name);
}
return Value;
}
AnsiString ReadString(const AnsiString &Name,
const AnsiString &Default)
{
AnsiString Value=Default;
if(Enable)
{
if(Reg->ValueExists(Name))
Value= Reg->ReadString(Name);
}
return Value;
}
void SaveInt(const AnsiString &Name,int Value,int Default)
{
if(Value==Default)Reg->DeleteValue(Name);
else Reg->WriteInteger(Name,Value);
}
void SaveString(const AnsiString &Name,
const AnsiString &Value,const AnsiString &Default)
{
if(Value==Default)Reg->DeleteValue(Name);
else Reg->WriteString(Name,Value);
}
void GetKeyNames(Classes::TStrings* Strings)
{
Reg->GetKeyNames(Strings);
}
void GetValueNames(Classes::TStrings* Strings)
{
Reg->GetValueNames(Strings);
}
bool DeleteValue(const AnsiString &Name)
{
return Reg->DeleteValue(Name);
}
bool DeleteKey(const AnsiString &Name)
{
return Reg->DeleteKey(Name);
}
bool HasSubKeys(const AnsiString &Name)
{
OpenKey(Name,false);
bool Ret=Reg->HasSubKeys();
Reg->CloseKey();
return Ret;
}
bool KeyExist(const AnsiString &Name)
{
return Reg->KeyExists(Name);
}
bool ValueExist(const AnsiString &Name)
{
return Reg->ValueExists(Name);
}
};

//---------------------------------------------------------------------------
#endif
/*
用法
1.定义数据 CReg Reg;
2.设置根键 Reg.SetRootKey(根键);
3.打开主键 Reg.OpenKey(主键);
4.读数据
读整数 int Value=Reg.ReadInt(名称,缺省值);
读字符串 AnsiString Value=Reg.ReadString(名称,缺省值);

其它请自己看看
*/
jzy 2000-08-26
  • 打赏
  • 举报
回复
其实在BCB关于TRegistry类的帮助中就有简单的实例,搜索关键字“TRegistry”就能看到;

不过……………好像帮助中实例是用的Delphi写的,嘻嘻,把相应的语法转换一下就行了,无非就是把'变成"、再把.变成->就可以了,只要掌握了TRegistry类的用法就行;
NowCan 2000-08-26
  • 打赏
  • 举报
回复
可能要include <registry.hpp>
yao_yuan 2000-08-25
  • 打赏
  • 举报
回复
去这个地方看看:
http://www.computerworld.com.cn/99/tips/2k04/041001_03.asp
Hank 2000-08-25
  • 打赏
  • 举报
回复
这是我自用的一个过程,用于创建VFP数据库的ODBC别名,具体代码如下:

//********************//
LPTSTR ODBCDriverPath=new char[255];
GetSystemDirectory(ODBCDriverPath,255);
AnsiString DatabasePath,RegKey="\\SoftWare\\ODBC\\ODBC.INI";
DatabasePath=ExtractFilePath(Application->ExeName);
TRegistry *ODBCInfroamtion=new TRegistry;
ODBCInfroamtion->RootKey=HKEY_CURRENT_USER;
ODBCInfroamtion->OpenKey(RegKey+"\\ODBC Data Sources",False);
ODBCInfroamtion->WriteString("Hank","Microsoft FoxPro VFP Driver (*.dbf)");
ODBCInfroamtion->CloseKey();
ODBCInfroamtion->OpenKey(RegKey+"\\Hank",True);
ODBCInfroamtion->WriteString("Driver",AnsiString(ODBCDriverPath)+"\\VFPODBC.DLL");
ODBCInfroamtion->WriteString("SourceDB",DatabasePath+"Wealth");
ODBCInfroamtion->WriteString("Description","Hank");
ODBCInfroamtion->WriteString("SourceType","DBF");
ODBCInfroamtion->WriteString("BackgroundFetch","Yes");
ODBCInfroamtion->WriteString("Exclusive","No");
ODBCInfroamtion->WriteString("Null","Yes");
ODBCInfroamtion->WriteString("Deleted","Yes");
ODBCInfroamtion->WriteString("Collate","Machine");
ODBCInfroamtion->WriteString("SetNoCountOn","No");
ODBCInfroamtion->CloseKey();

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧