procedure TForm1.Button1Click(Sender: TObject);
var
alist:TStringList;
I:Integer;
sversionname:string;
sversion:string;
unstall_string:string;
begin
alist:=TStringList.Create;
with TRegistry.Create do
begin
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey('SYSTEM\CurrentControlSet\Services',False) then
begin
GetKeyNames(alist);
CloseKey;
for i:=0 to alist.Count-1 do
begin
if OpenKey('SYSTEM\CurrentControlSet\Services\'+alist[i],False) then
begin if ValueExists('Description') then
sversion:='描述:'+readstring('Description')
else
sversion:='没有描述'; if ValueExists('DisplayName') then =======================>>>>>这里报错,说类型不对
sversionname:=Readstring('DisplayName')
else
sversionname:='没有名字';
unstall_string:=unstall_string+alist[i]+' '+sversion+' '+sversionname+' ';
CloseKey;
end;
end;
end;
Free
end;
alist.Free;
//idudpclient1.Send('rm_show_unstall'+unstall_string);
memo1.Lines.Add(unstall_string);
unstall_string:='';
end ;大家好,我在注册表中获取windows系统服务的名称,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
在子项下有两个字符串名称,一个是DisplayName,一个是Description,从注册表中看两者类型都是一摸一样的,但是我用readstring获取他们的值的时候,在获取DisplayName的时候就报错,说类型不对,但是获取Description就没有问题,甚至获取ImagePath都没有问题,请问大家这是怎么回事呢?如何才能正确获取到DisplayName的值?
var
alist:TStringList;
I:Integer;
sversionname:string;
sversion:string;
unstall_string:string;
begin
alist:=TStringList.Create;
with TRegistry.Create do
begin
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey('SYSTEM\CurrentControlSet\Services',False) then
begin
GetKeyNames(alist);
CloseKey;
for i:=0 to alist.Count-1 do
begin
if OpenKey('SYSTEM\CurrentControlSet\Services\'+alist[i],False) then
begin if ValueExists('Description') then
sversion:='描述:'+readstring('Description')
else
sversion:='没有描述'; if ValueExists('DisplayName') then =======================>>>>>这里报错,说类型不对
sversionname:=Readstring('DisplayName')
else
sversionname:='没有名字';
unstall_string:=unstall_string+alist[i]+' '+sversion+' '+sversionname+' ';
CloseKey;
end;
end;
end;
Free
end;
alist.Free;
//idudpclient1.Send('rm_show_unstall'+unstall_string);
memo1.Lines.Add(unstall_string);
unstall_string:='';
end ;大家好,我在注册表中获取windows系统服务的名称,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
在子项下有两个字符串名称,一个是DisplayName,一个是Description,从注册表中看两者类型都是一摸一样的,但是我用readstring获取他们的值的时候,在获取DisplayName的时候就报错,说类型不对,但是获取Description就没有问题,甚至获取ImagePath都没有问题,请问大家这是怎么回事呢?如何才能正确获取到DisplayName的值?
结贴