各位大虾你们好,我是一个新手,在写程序的过程中,难免会遇上许多波折,在此我想把我最近所遇的一个老大难向各位大虾请教。(对了我是用D5)
关于注册表的API函数我知道的并不是太多,在此我想请问各位修改注册表键值的API函数的用法及函数名称??望大虾们能举些例来加以说明,在此小弟我谢过!!
关于注册表的API函数我知道的并不是太多,在此我想请问各位修改注册表键值的API函数的用法及函数名称??望大虾们能举些例来加以说明,在此小弟我谢过!!
解决方案 »
- delphi中“共享内存”都支持哪些数据类型
- BDE连结sybase为什么有时会出现连不上sybase?打不中表呢?
- 在fastReport的交叉报表中,如何实现有数据则显示,无则为空?
- 请推荐一些DELPHI7.0的优秀控件,尤其是界面和皮肤的,高分相送!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 请问如何向一窗体添加函数?在线给分!
- 如何将记录集写入到SQLServer2000数据库
- 大家好,我用PB做项目多年,很想跟大家一起学习DELPHI,我对其基本应用有所了解,只是没做过项目,很想提高下,希望大家多多帮助.
- 谁用过财务控件SNC?就是在dbgrid的Title上显示万、千、百、十、元、角、分的那个控件
- 请问安装delphi
- Delphi7工具小问题
- 请高手指点
- Delphi如何作绿色软件?就是不需要安装什么去system32目录...
Function GetDataInfo(const ValueName:String;Var Value:TRegDataInfo):Boolean;
TregDataType=(rdunknown,rdstring,rdexpandstring,rdexpandstring,rdinterger,rdbinary);
TregDataInfo=record
Regdata:TRegDataType;数据类型
dataSize:integer;数据大小
end
valuename:和当前键关联的数据值名称
value:返回数据的信息,如为rdstring和rdexpandstring类型,则数据大小包括字符串未尾的空结束字符。
如果成功返回True,失败返回False,并且Value的值为zeros
rdexpandstring:是一个包含环境变量的字符串;如“%PATH%”。●CreateKey方法
Function CreateKey(const Key:string):Boolena;
新建一个名为Key的键,Key可以为绝对的或相对的名字,绝对名用反斜杠“\”开头,相对名是新建一个当前键的子键。新建没有值。
成功返回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);
返回当前键所有子键的名子列表串。●Getvaluenames
Procedure 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,将打开本地计算机。
procedure TForm1.WMEndSession(var Message: TWMEndSession);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\RunOnce', True)
then Reg.WriteString('MyApp','"' + ParamStr(0) + '"');
finally
Reg.CloseKey;
Reg.Free;
inherited;
end;
end;//詳細的請參考unit Registry;