如何判断系统是否安装了某个软件? (100分)

R

remindu

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在delphi检测系统是否安装了某个软件,如ACDSee 、Winamp?是通过注册表还是查找C盘中相关信息?
送上100分,请给予解答,最好能个例子(如检测Winamp是否已安装在当前系统?),谢谢
 
如果是安装的软件,当然找注册表了,如AcdSee,看以下键是否存在
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/ACDSee
其它类似
 
但是很多软件即使卸载后,注册表中仍留有信息呀
 
对,注册表,虽然制裁后,注册表中仍有,但是肯定是有所区别地
 
这个键是WINDOWS控制面板的删除程序里面的列表,
超级兔子等软件也应该是从这里取已经安装的软件列表的,
只要是正常用户,一般不会出现删除了还存在的现像
 
那么此信息在注册表中的位置,对于Win98、win2000和winxp是否相同?
 
如果该软件要相应的 ActiveX 控件或 Automation 对象,
可以判断是否能成功创建这些对象。
或直接检测它的执行文件。
 
我的水平并不高,我只知道应该处理注册表!
至于代码:我想应该从网上找吧,应该很多的!
 
98和NT不是很一样,不知道这些软件注册的位置是不是正好在有区别的位置上,
一般都在HKEY_LOCAL_MACHINE/SOFTWARE下,这个位置是一样的
 
var
Reg:TRegistry;
begin
try
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;//主键
reg.openkey('/SOFTWARE/ACD Systems/ACDSee',false);
edit1.text:=Reg.ReadString('EvalExpire') //打开键end;
except
end;

读注册表某一键值,存在时EDIT不为空,否则为空
上面是ACDSee安装后存在的一个键值
 
多人接受答案了。
 
顶部