注册表操作中getkeynames怎么用,能给个写好能运行的小程序吗??
解决方案 »
- 请教下ShellExecute组件
- 菜鸟问题都来指点一下
- 急用,关于ping,在线等
- 高人请进如何改变TPageControl中Tab的高度、前色、底色 ?求救中...
- 如何打印dbgrid里面的记录
- 用.show显示窗体,为什么最小化之后什么窗体会消失呢?
- 关于Socket的问题,一个Socket能够建立两个线程同时Receive和Send吗?
- DELPHI应用WORD,WORD没有通过DELPHI关闭,DELPHI出错。
- delphi编译时遇到的问题
- 我写一个DLL,但我不知道怎样退出程序,请教高手。
- 如何将dbgrid中选中的记录显示在控件中,比如edit等?
- 如何在报表中实现形如"第1/3页"的总页和分页的显示并可打印?
方法名称: TfrmOpengl.readcolor
功能说明: 从注册表读取各种管线设置的颜色
作 者:
日 期: 2003年六月月18日
参 数:
返 回 值: None
-----------------------------------------------------------------------------}procedure TfrmOpengl.readcolor();
var
appReg: TRegistry;
varString: integer;
begin
appReg := TRegistry.Create;
appreg.rootkey := HKEY_CURRENT_USER;
if appreg.OpenKey(g_RegPath + '\AllColor', True) then
begin
try
fcShapeBtn5.Color := AppReg.ReadInteger('Pcolor');
fcShapeBtn6.Color := AppReg.ReadInteger('TColor');
fcShapeBtn7.Color := AppReg.ReadInteger('WColor');
fcShapeBtn8.Color := AppReg.ReadInteger('DColor');
fcShapeBtn9.Color := AppReg.ReadInteger('GColor');
fcShapeBtn10.Color := AppReg.ReadInteger('HColor');
fcShapeBtn11.Color := AppReg.ReadInteger('IColor');
fcShapeBtn3.Color := AppReg.ReadInteger('BackColor');
fcShapeBtn4.Color := AppReg.ReadInteger('SelColor');
fcShapeBtn2.Color := AppReg.ReadInteger('CenColor');
fcShapeBtn1.Color := AppReg.ReadInteger('SkinColor');
except end;
appReg.CloseKey;
end; FreeAndNil(appReg);
end;
{-----------------------------------------------------------------------------
方法名称: TfrmOpengl.writecolor
功能说明: 把界面上设置的颜色写到注册表中
作 者:
日 期: 2003年六月月18日
参 数:
返 回 值: None
-----------------------------------------------------------------------------}procedure TfrmOpengl.writecolor();
var
appReg: TRegistry;
varString: integer;
begin
appReg := TRegistry.Create;
appreg.rootkey := HKEY_CURRENT_USER;
if AppReg.OpenKey(g_RegPath + '\AllColor', true) then
begin
appreg.WriteInteger('Pcolor', fcShapeBtn5.Color);
appreg.WriteInteger('TColor', fcShapeBtn6.Color);
appreg.WriteInteger('WColor', fcShapeBtn7.Color);
appreg.WriteInteger('DColor', fcShapeBtn8.Color);
appreg.WriteInteger('GColor', fcShapeBtn9.Color);
appreg.WriteInteger('HColor', fcShapeBtn10.Color);
appreg.WriteInteger('IColor', fcShapeBtn11.Color);
appreg.WriteInteger('BackColor', fcShapeBtn3.Color);
appreg.WriteInteger('SelColor', fcShapeBtn4.Color);
appreg.WriteInteger('CenColor', fcShapeBtn2.Color);
appreg.WriteInteger('SkinColor', fcShapeBtn1.Color);
end;
end;
Delphi的TRegistry注册表类方法详解●GetDataInfo方法Function GetDataInfo(const ValueName:String;Var Value:TRegDataInfo):Boolean;TregDataType=(rdunknown,rdstring,rdexpandstring,rdexpandstring,rdinterger,rdbinary);TregDataInfo=record Regdata:TRegDataType;数据类型 dataSize:integer;数据大小endvaluename:和当前键关联的数据值名称value:返回数据的信息,如为rdstring和rdexpandstring类型,则数据大小包括字符串未尾的空结束字符。 如果成功返回True,失败返回False,并且Value的值为zerosrdexpandstring:是一个包含环境变量的字符串;如“%PATH%”。●CreateKey方法Function CreateKey(const Key:string):Boolena; 新建一个名为Key的键,Key可以为绝对的或相对的名字,绝对名用反斜杠“\u8221”开头,相对名是新建一个当前键的子键。新建没有值。 成功返回True,否则返回False,如果该键已存在将不产生效果。●DeleteKey方法Function DeleteKey(const Key:string):Boolean; 删除一个键及相关联的数据,在win95中子键也将被删除,NT中子键必须一个个删除。●DeleteValue方法Function DeleteValue (const Name:string):Boolean; 删除当前键中指定的一个数据值name。●GetDataSize方法Function GetDataSize(const ValueName:string):integer; 返回当前键中一个指定数值ValueName数据的大小。●GetDataType方法Function GetDataType(const Valuename;string):TRegDataType; 返回当前键中一个指定数值Valuename数据的类型。●GetKeyInfo方法Function GetKeyInfo(var value:TRegkeyinfo):Boolean; 返回当前键的信息,在于value中。TRegkeyinfo=record maxsubkeylen:integer;子键名的最长值(字节) numvalues:integer;键值的数量 maxvaluelen;最长的键值名的长度 Filetime:TFileTime;最后一次更改的时间end;●Getkeynames方法Procedure Getkeynames(strings:Tsrtings); 返回当前键所有子键的名子列表串。●GetvaluenamesProcedure Getvaluenames(strings:Tstrings); 返回当前键所有键值名的列表串。●Hassubkeys方法Function hassubKeys:Boolean; 判断当前键是否有子键,有返回True,否则返回False。●keyExists方法Function KeyExists(const Key:string):Boolean; 判断指定的键是否存在。●LoadKey方法Function LoadKey(const Key,fileNmae:string):Boolean; 在根键下新建 从一个文件中加载注册信息到子键中,文件注册信息中包含数据值名、子键和数据。 LoadKey使创建一个键单一化,子键,键值和数据在一人操作中完成,所有这些称为一组,和单独地创建它们不同应用程序可以在一个文件中读取一组数据,这在用户运行中重新设置有特别的用处。 Key为要创建子键的名子 FileName:为文件的位置,所指定的文件必须为以前用SaveKey函数或RegSaveKey API函数所建立的,文件名不能包括扩展名。●OpenKey方法Function OpenKey(const Key:string;cancreate:Boolean):Boolean; 使用该函数可以指定一个键作为当前键,如果键为nil,则当前键 将设置为根键。 Cancreate决定是否在指定键不存在时创建该键,该函数创建的键的键值将不确定。 如果成功地打开或创建,该函数返回True。●OpenKeyReadOnly方法function OpenKeyReadOnly(const Key: String): Boolean; 以只读的方式打开Key值指定的键。●CloseKey方法procedure CloseKey; 当不再使用一个键时应用该方法关闭该键。●MoveKey方法procedure MoveKey(const OldName, NewName: String; Delete: Boolean); 该方法移动或复制一个键到一个新的位置,并把键的名子改为NewName。 在Win95/98下该的子键和数据将被一起移动或复制到新的位置,在NT下子键必须用MoveKey明确的移动或自制。●读取数据的方法function ReadBinaryData(const Name: String; var Buffer; BufSize: Integer):Integer;function ReadBool(const Name: String): Boolean;function ReadCurrency(const Name: String): Currency;function ReadDate(const Name: String): TDateTime;function ReadDateTime(const Name: String): TDateTime;function ReadFloat(const Name: String): Double;function ReadInteger(const Name: String): Integer;function ReadString(const Name: String): String;function ReadTime(const Name: String): TDateTime; 以上方法从当前主键读取相应数据类型的键值的数据,如果类型不匹配将产生一个异常。●RegistryConnect方法function RegistryConnect(const UNCName: String): Boolean; 与另一台计算机的注册表建立连接,在建立连接前应将Rootkey属性设为HKEY_USERS或HKEY_LOCAL_MACHINE。 UNCName是另一台计算机的名子。格式如:\computername 假如UNCName为nil,将打开本地计算机。
我主要不清楚怎样读出names,如读到edits里
procedure xxxxx(KeyName)
var...begin定位主键的位置if Registry.HasSubKeys thenbeginRegistry.GetKeyNames(TString);for i:=0 to TString.Items.Count-1 doxxxxx(TString.Values[i])end;end;