delphi 7
我想建立一个 比如 ASD 的 铸件。
即 HKEY_LOCAL_MACHINE 下面 建立一个 ASD 的主键
4 个解决方案
#1
1、将自己的程序加入到注册表
var reg:Tregistry; //formCreate Event
begin
reg:=Tregistry.create;
reg.rootkey( 'HKEY_LOCAL_MACHINE ');
reg.openkey( 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run ');
if not keyexists( 'MyApp.exe ') then //if not exist ,add it!
writestring( 'MyApp.exe ');
end;
2、将信息写入注册表
相应代码如下:
var
reg:TRegistry;//声明一个TRegistry类变量
…
begin
reg:=TRegistry.Create;//创建实例
reg.RootKey:=HKEY_CURRENT_USER;//指定需要操作的注册表的主键
if reg.OpenKey(’\Software\Delphi,true) then//如果打开成功则进行以下操作
begin
reg.WriteString(’内容名称’,'操作注册表’);//将需要保存的信息写入注册表
reg.CloseKey;//关闭注册表
end;
reg.Free;//释放变量所占内存
…
end;
2、从注册表中读取信息
相应代码如下:
var
reg:TRegistry;//声明一个TRegistry类变量
s:String;//声明一个字符串变量用来存放要读取的信息
…
begin
reg:=TRegistry.Create;//创建实例
reg.RootKey:=HKEY_CURRENT_USER;//指定需要操作的注册表的主键
if reg.OpenKey(’\Software\Delphi’,true) then//如果打开成功则进行以下操作
begin
s:=reg.ReadString(’内容名称’);//从注册表中读取对应字符串的值
//如果该字符串不存在则返回值为空字符串
reg.CloseKey;//关闭注册表
end;
reg.Free;//释放变量所占内存
…
end;
或
procedure TForm1.btn1Click(Sender: TObject); //写入值
var
tmpReg : TRegistry;
begin
tmpReg := TRegistry.Create;
try
tmpReg.RootKey := HKEY_LOCAL_MACHINE; //设置要操作的注册表的根键值
if tmpReg.OpenKey('\ASD', True) then //如果打开此注册表成功,刚进入写入操作.
begin
tmpReg.WriteString('delphi测试', 'c:\qmenu.exe'); //开始写入操作或空值也可以.
end;
finally
tmpReg.Free;
end;
end;
#2
最后那段可以试试看.希望对楼主有用.
#3
最初 我看了有些资料,觉得这样完全正确,但是我亲自试验了好几个 同功能程序。和楼上的 Winmillion 朋友给出的 一样,注册表 没有在 根目录下 HKEY_LOCAL_MACHINE 新建 asd 主键。
到底是 何处 问题?
到底是 何处 问题?
#4
如果是win7/64位的话 有些不同 查查看
#1
1、将自己的程序加入到注册表
var reg:Tregistry; //formCreate Event
begin
reg:=Tregistry.create;
reg.rootkey( 'HKEY_LOCAL_MACHINE ');
reg.openkey( 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run ');
if not keyexists( 'MyApp.exe ') then //if not exist ,add it!
writestring( 'MyApp.exe ');
end;
2、将信息写入注册表
相应代码如下:
var
reg:TRegistry;//声明一个TRegistry类变量
…
begin
reg:=TRegistry.Create;//创建实例
reg.RootKey:=HKEY_CURRENT_USER;//指定需要操作的注册表的主键
if reg.OpenKey(’\Software\Delphi,true) then//如果打开成功则进行以下操作
begin
reg.WriteString(’内容名称’,'操作注册表’);//将需要保存的信息写入注册表
reg.CloseKey;//关闭注册表
end;
reg.Free;//释放变量所占内存
…
end;
2、从注册表中读取信息
相应代码如下:
var
reg:TRegistry;//声明一个TRegistry类变量
s:String;//声明一个字符串变量用来存放要读取的信息
…
begin
reg:=TRegistry.Create;//创建实例
reg.RootKey:=HKEY_CURRENT_USER;//指定需要操作的注册表的主键
if reg.OpenKey(’\Software\Delphi’,true) then//如果打开成功则进行以下操作
begin
s:=reg.ReadString(’内容名称’);//从注册表中读取对应字符串的值
//如果该字符串不存在则返回值为空字符串
reg.CloseKey;//关闭注册表
end;
reg.Free;//释放变量所占内存
…
end;
或
procedure TForm1.btn1Click(Sender: TObject); //写入值
var
tmpReg : TRegistry;
begin
tmpReg := TRegistry.Create;
try
tmpReg.RootKey := HKEY_LOCAL_MACHINE; //设置要操作的注册表的根键值
if tmpReg.OpenKey('\ASD', True) then //如果打开此注册表成功,刚进入写入操作.
begin
tmpReg.WriteString('delphi测试', 'c:\qmenu.exe'); //开始写入操作或空值也可以.
end;
finally
tmpReg.Free;
end;
end;
#2
最后那段可以试试看.希望对楼主有用.
#3
最初 我看了有些资料,觉得这样完全正确,但是我亲自试验了好几个 同功能程序。和楼上的 Winmillion 朋友给出的 一样,注册表 没有在 根目录下 HKEY_LOCAL_MACHINE 新建 asd 主键。
到底是 何处 问题?
到底是 何处 问题?
#4
如果是win7/64位的话 有些不同 查查看