社区
Windows SDK/API
帖子详情
哪位大虾能不能告诉我一个操作注册表的几个API函数呀!!
cow8063
2002-12-07 12:43:01
最好能全面的,而且是中文说明的,说说格式好不好呀。急用,谢谢了!
...全文
24
11
打赏
收藏
哪位大虾能不能告诉我一个操作注册表的几个API函数呀!!
最好能全面的,而且是中文说明的,说说格式好不好呀。急用,谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hansion3406
2002-12-15
打赏
举报
回复
呵呵...受教了..
cow8063
2002-12-15
打赏
举报
回复
好的,谢谢楼上的,不过现在忙,要下周再来结贴,呵呵,
Billy_Chen28
2002-12-09
打赏
举报
回复
这里有一个全的:
在Delphi程序中操作注册表
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。
一、创建和释放TRegistry对象
1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:
ARegistry := TRegistry.Create;
2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:
ARegistry.Destroy。
二、指定要操作的键
操作注册表时,首先应指定操作的主键:先给属性RootKey赋值以指定根键,
然后用方法OpenKey来指定要操作的主键名。
1.指定根键(RootKey)。
根键是注册表的入口,也注册表信息的分类,其值可为:
HKEY—CLASSES—ROOT:存储整个系统对象类信息,如ActiveX对象注册、
文件关联等信息。
HKEY—CURRENT—USER:存储当前用户的配置信息。为属性RootKey的默认值。
HKEY—LOCAL—MACHINE:存储当前系统的软硬件配置信息。
应用程序自己的信息可以存储在该根键下。
HKEY—USERS:存储所有用户通用的配置信息。
还可以是HKEY—CURRENT—CONFIG、HKEY—DYN—DATA。
2.指定要操作的主键。
Function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
Key:主键名,是键名全名中除去根键的部分,如Software\Borland\Delphi。
CanCreate:在指定的主键名不存在时,是否允许创建该主键,True表示允许。
返回值True表示操作成功。
3.关闭当前主键。
在读取或存储信息之后,应及时将关闭当前主键:procedure CloseKey。
三、从注册表中读取信息
Read系列方法从注册表读取指定的信息(字符串、二进制和十六进制),
并转换为指定的类型。
1.Read系列方法。
function ReadString(const Name: string): string;
读取一个字符串值,Name为字符串名称。
function ReadInteger(const Name: string): Integer;
读取一个整数值,Name为整数名称。
function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer):Integer;
读取二进制值,Name为二进制值名称,Buffer为接收缓冲区,BufSize为缓冲区大小,返回为实际读取的字节数。
其它方法还有:ReadBool、ReadCurrency、ReadDate、ReadDateTime、ReadFloat、ReadTime。
2.读取信息一例(显示Windows的版本)。
在HKEY—LOCAL—MACHINE\Software\Microsoft\Windows\CurrentVersion下,
有三个字符串值Version、VersionNumber和SubVersionNumber,用于记录当前Windows的版本号。
{请在Uses中包含Registry单元}
procedure TForm1.Button1Click(Sender:TObject);
var
ARegistry : TRegistry;
begin
ARegistry := TRegistry.Create;
//建立一个TRegistry实例
with ARegistry do
begin
RootKey := HKEY—LOCAL—MACHINE;//指定根键为HKEY—LOCAL—MACHINE
//打开主键Software\Microsoft\Windows\CurrentVersion
if OpenKey( ′Software\Microsoft\Windows\CurrentVersion′,false ) then
begin
memo1.lines.add('Windows版本:′+ ReadString(′Version′));
memo1.lines.add('Windows版本号:′ + ReadString(′VersionNumber′));
memo1.lines.add(′Windows子版本号:′ + ReadString(′SubVersionNumber′));
end;
CloseKey;//关闭主键
Destroy;//释放内存
end;
end;
四、向注册表中写入信息
Write系列方法将信息转化为指定的类型,并写入注册表。
1.Write系列方法。
procedure WriteString(const Name, Value: string);
写入一个字符串值,Name为字符串的名称,Value为字符串值。
procedure WriteInteger(const Name: string; Value: Integer);
写入一个整数值。
procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer);
写入二进制值,Name为二进制值的名称,Buffer为包含二进制值的缓冲区,BufSize为缓冲区大小。
其它方法还有:WriteBool、WriteCurrency、WriteDate、WriteDateTime、WriteFloat、WriteTime。
2.写入信息一例。
下面程序使Delphi随Windows启动而自动运行。
var
ARegistry : TRegistry;
begin
ARegistry := TRegistry.Create;
//建立一个TRegistry实例
with ARegistry do
begin
RootKey:=HKEY—LOCAL—MACHINE;
if OpenKey(′Software\Microsoft\Windows\CurrentVersion\Run′,True) then
WriteString(′delphi′,′C:\Program Files\borland\delphi3\bin\delphi32.exe′);
CloseKey;
Destroy;
end;
end;
五、键值维护
除了在注册表中读取、存储外,程序可能还需要增加主键、删除主键、主键改名、数据值改名等。
1.创建新主键:function CreateKey(const Key: string): Boolean。
Key即为主键名,返回值True表示操作成功。
2.删除主键:function DeleteKey(const Key: string): Boolean。
Key即为主键名,返回值True表示操作成功。
3.复制或移动主键:procedure MoveKey(const OldName, NewName: string; Delete: Boolean)。
OldName、NewName分别表示源主键名和目标主键名;Delete表示是否删除源主键,True表示删除,False表示保留。
复制或移动一个主键将复制或移动该子键下的所有数据值和子键内容。
4.判断指定主键是否存在,其下是否有主键,并获取主键名称。
KeyExists用于判断指定主键是否存在:
function KeyExists(const Key: string): Boolean;//返回值为True表示主键存在。
HasSubKeys用于判断指定主键下是否有子键:function HasSubKeys: Boolean;
返回值为True表示主键下有子键。
GetKeyNames用于获取子键名称:procedure GetKeyNames(Strings: TStrings);
Strings用于返回当前主键下各子键的名称。
5.获取主键下的数据值名称:procedure GetValueNames(Strings: TStrings)。
Strings用于返回当前主键下各数值名称。
如要获取当前系统中的拨号连接名称,可利用获取主键HKEY—USERS
\.DEFAULT\RemoteAccess\Addresses下的数值名称的方法来进行。
6.判断数值名称存在、数值名称改名。
ValueExists用于判断数值名称是否存在:
function ValueExists(const Name: string): Boolean;
返回值为True表示数值名称存在。
RenameValue用于数值名称改名:
procedure RenameValue(const OldName, NewName: string);
以上是注册表常用操作所对应的TRegistry的方法和属性,
其它方法和属性请参见Delphi联机帮助文件。
uncarman
2002-12-09
打赏
举报
回复
我在Win2000下用TRegistry的SaveKey,RestoreKey结果无效
stanely
2002-12-07
打赏
举报
回复
看tregistry类的源代码
cow8063
2002-12-07
打赏
举报
回复
但是我都没有这些,DELPHI的我有些看不懂,我要的是这几个函数的格式,
比如说他有什么参数,这些参数怎么用法
ehom
2002-12-07
打赏
举报
回复
查看registry单元,就是对这些API的封装
ehom
2002-12-07
打赏
举报
回复
MSDN
magc888
2002-12-07
打赏
举报
回复
uses registry;
.
.
procedure ...
const
section='hardware\devicemap\serialcomm';
var
freginifile1:tregistry;
begin
freginifile1:=tregistry.create;
freginifile1.rootkey:=hkey_local_machine;
freginifile1.openkey(section,false);
kou1:=freginifile1.Readstring('..');
.
.
freginifile1.CloseKey ;
freginifile1.free;
end;
luoming
2002-12-07
打赏
举报
回复
我这里也有例子
luoming
2002-12-07
打赏
举报
回复
DELPHI里不是有帮助吗
很全的
WINDOWS-
API
:
API
函数
大全
操作
系统除了协调应用程序的执行、内存分配、系统资源管理外,同时也是
一个
很大的服务中心,调用这个服务中心的各种服务(每一种服务是
一个
函数
),可以帮肋应用程序达到开启视窗、描绘图形、使用周边设备的目的,由于这些
函数
服务的对象是应用程序(Application),所以称之为Application Programming Interface,简称
API
函数
。作为
一个
编程初学者来说,
API
函数
也许...
API
函数
大全
API
函数
作为
一个
编程初学者来说,
API
函数
也许是
一个
时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇
API
入门教程的目的,就是要把
API
函数
的来龙去脉
告诉
大家,破除对
API
函数
的畏惧,使它成为我们编程的好助手。 大家可能在许多书上看到过
API
的英文全称(Application Programming
api
作为
一个
编程初学者来说,
API
函数
也许是
一个
时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇
API
入门教程的目的,就是要把
API
函数
的来龙去脉
告诉
大家,破除对
API
函数
的畏惧,使它成为我们编程的好助手。 大家可能在许多书上看到过
API
的英文全称(Application Programming Interface
API
作为
一个
编程初学者来说,
API
函数
也许是
一个
时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇
API
入门教程的目的,就是要把
API
函数
的来龙去脉
告诉
大家,破除对
API
函数
的畏惧,使它成为我们编程的好助手。 大家可能在许多书上看到过
API
的英文全称(ApplicationProgramming Interfa
[VB]用
API
操作
游戏杆
暑假闲来无事,随便找了个网上比较多人推荐的悠闲游戏来玩了下(《咕噜小天使》),正好该游戏支持游戏杆,于是我便萌生了做这个小小的软件的想法,其中参考了Kaper的一篇文章(《[个人心得]Windows下对游戏杆编程(未完)》),小弟第一次在高手如云的CSDN发帖,若有不正确之处,还望各位前辈
大虾
们指正~~首先介绍关于游戏杆(JoyStick)的
几个
API
:joyConfigChanged
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章