回 帖 发 新 帖 刷新版面

主题:[讨论]Delphi写入注册表使muma.exe随Windows启动而自动运行问题!

我在窗体里新建一个按钮加入如下代码:
______________________________________________________________
procedure TForm1.Button1Click(Sender: TObject);
var
ARegistry : TRegistry;
begin
ARegistry := TRegistry.Create;//建立一个TRegistry实例
with ARegistry do
begin
RootKey:=HKEY-LOCAL-MACHINE;
if OpenKey(′Software′,True) then
WriteString(′delphi′,′C:muma.exe′);
CloseKey;
Destroy;
end;
end;
_________________________________________________________________
ARegistry : TRegistry;   //提示错误这是为什么?是不是我没建什么控件?
请前辈们指教!

回复列表 (共2个回复)

沙发

use registry

板凳

我学看了<Delphi技术大全>里的注册表代码.
可是只有创建/删除 注册表项.写入.可是没有教删除注册表项里的键值.
我只会创建可是不懂得删除键值.

比如:
创建一个注册表项:
uses 
 registry;
var
  reg:=tregistry;
begin
  try
    reg:=tregistry.create;//创建注册表项
    reg.rootkey:=HKEY_CURRENT_MACHINE;  //指定注册表项的根键目录
    reg.openkey('\123',ture);//创建名为123的注册表项
  finally  //这个不知道是什么意思? 如果前辈们知道的话解释一下谢了!
    reg.closekey; //关闭
    reg.free; // 释放内存  
end;

删除注册表项:
  删除注册表项使用deletekey方法,在指定的目录下删除注册表项
示例:
var
  reg:=tregistry;
begin
  try
    reg:=tregistry.create;//创建注册表项
    reg.rootkey:=HKEY_CURRENT_MACHINE;  //指定注册表项的根键目录
    reg.deletekey('\123',ture);//创建名为123的注册表项
  finally   //这个不知道是什么意思? 如果前辈们知道的话解释一下谢了!
    reg.closekey; //关闭
    reg.free; // 释放内存
end;

可是我想删除注册表项里的键值该怎么写呢?
是不是这样写?

var
  reg:=tregistry;
begin
  try
reg:=tregistry.create; 
reg.rootkey:=HKEY_CURRENT_USER; 
reg.openkey('\Software\Microsoft\Windows\CurrentVersion\Run',true); 
reg.deletekey('delphi run',xie); //run是不是注册表项里的delphi键值为:xie的?如果前辈们知道的话解释一下谢了!
reg.CloseKey; //关闭KEY 
reg.Free; //释放 
end; 


if reg.openkey('\123',True)Then  //还有我分析了很久如果把True改成False是不是都执行Begin一下的代码呢?
begin
reg.writeinteger(Integer Style',18);//已存在的键值是不是覆盖的?
reg.CloseKey; //关闭KEY 
reg.Free; //释放 
end

我感觉好像哪错误了.但是又说不什么来...哎!
请前辈们多多指教!


1楼会么?教教我.

我来回复

您尚未登录,请登录后再回复。点此登录或注册