一、TRegIniFile方法:(特点:操作简单,可用于Win95/98 Window NT)
首先,在源文件(cpp)中加入
#include <vcl\registry.hpp> //for C++ Builder 3.0 __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{ // 当Form1打开时,从注册表读入Left值
TRegIniFile *pIni = new TRegIniFile("SOFTWARE\\MyName\\MyProg");
Left = pIni->ReadInteger("Config","Left",200);
delete pIni;
} void __fastcall TForm1::FormClose(TObject *Sender,TCloseAction &Action) { // 当Form1关闭时,往注册表存放Left值 TRegIniFile *pIni = new TRegIniFile("SOFTWARE\\MyName\\MyProg"); pIni->WriteInteger("Config","Left",Left);
delete pIni;
} 注:在缺省状态下,信息存放HKEY_CURRENT_USER根目录下。实际上,它代替了Windows 3.1中的Ini文件.若存放在其它根目录下,可设置Registry->RootKey,例: Registry->RootKey = HKEY_LOCAL_MACHINE; 除了可以存放整型值,还可以存放字符串值和布尔值。 二、如何操作注册表 #include <Registry.hpp> TRegIniFile *R=new TRegIniFile("SOFTWARE\\ahao's Softwares\\Wenku\\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();
BCB例子,你看一下了
首先,在源文件(cpp)中加入
#include <vcl\registry.hpp> //for C++ Builder 3.0 __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{ // 当Form1打开时,从注册表读入Left值
TRegIniFile *pIni = new TRegIniFile("SOFTWARE\\MyName\\MyProg");
Left = pIni->ReadInteger("Config","Left",200);
delete pIni;
} void __fastcall TForm1::FormClose(TObject *Sender,TCloseAction &Action) { // 当Form1关闭时,往注册表存放Left值 TRegIniFile *pIni = new TRegIniFile("SOFTWARE\\MyName\\MyProg"); pIni->WriteInteger("Config","Left",Left);
delete pIni;
} 注:在缺省状态下,信息存放HKEY_CURRENT_USER根目录下。实际上,它代替了Windows 3.1中的Ini文件.若存放在其它根目录下,可设置Registry->RootKey,例: Registry->RootKey = HKEY_LOCAL_MACHINE; 除了可以存放整型值,还可以存放字符串值和布尔值。 二、如何操作注册表 #include <Registry.hpp> TRegIniFile *R=new TRegIniFile("SOFTWARE\\ahao's Softwares\\Wenku\\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();
BCB例子,你看一下了
begin
registry:=Tregistry.create;
registry.rootkey:=HKEY_CURRENT_USER;
if not registry.openkey
('\Software\Microsoft\Windows\CurrentVersion\Policies\Network',True) then;
//指定子键能否打开,如不能则创建它
registry.writeinteger('NoFileSharingControl',1);
registry.closekey;
registry.free;
end;