首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

运行异常啊为什么啊

2012-03-06 
运行错误啊,为什么啊?我写了一个读取注册表键值的程序,可以运行,但一按“读取”键,就出现这个了:Accessviola

运行错误啊,为什么啊?
我写了一个读取注册表键值的程序,可以运行,但一按“读取”键,就出现这个了:
Access   vio   lation   at   address   00425817   in   module 'run.exe '.Read   of   address   00000000
按确定就没了,程序依然运行,再按读取,又是这样的!!
为什么啊?

unit   biao_run;

interface

uses
    Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,
    Dialogs,   StdCtrls,   CheckLst,Registry;

type
    TForm1   =   class(TForm)
        CheckListBox1:   TCheckListBox;
        Button1:   TButton;
        Button2:   TButton;
        Button3:   TButton;
        Button4:   TButton;
        Button5:   TButton;
        Button6:   TButton;
        procedure   Button1Click(Sender:   TObject);
    private
        {   Private   declarations   }
    public
        {   Public   declarations   }
    end;

var
    Form1:   TForm1;
    count1,count2:integer;
    reg:TRegistry;
    Value1:Tstringlist;
    Value2:Tstringlist;
implementation
{$R   *.dfm}

procedure   TForm1.Button1Click(Sender:   TObject);
var   i:integer;
begin
checklistbox1.Clear;
  reg:=TRegistry.Create;
reg.Rootkey:=HKEY_LOCAL_MACHINE;//设置这个对象的根键为H   _L_M
                If   reg.OpenKey( '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ',false)       then
  begin
  reg.GetValueNames(Value1);
          count1:=Value1.Count
          end;
          for   i:=0   to   Value1.Count-1   do
          begin
          checklistbox1.Items.Add(Value1[i]+ '           '+reg.ReadString(Value1.Strings[i]))
              end;
          reg.RootKey:=HKEY_CURRENT_USER;           //重新定义Myreg的根键为H_C_U
            If   reg.OpenKey( '\Software\Microsoft\Windows\CurrentVersion\Run ',false)   Then
          begin
          reg.GetValueNames(Value2);
          count2:=Value2.Count;
          end;
          for   i:=0   to   Value2.Count-1   do
          begin
          checklistbox1.Items.Append(Value2[i]+ '           '+reg.ReadString(Value2.Strings[i]));
          end;
          reg.CloseKey;
          reg.Free;

          end;

end.

这是代码啊,帮忙啊!

[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin


value1 := TStringList.Create;
value2 := TStringList.Create;

//这里是你Button1Click原先的代码....

value1.Free;
value2.Free;
end;

热点排行