中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]如何根据注册表检测某个软件是否安装?
作者:
标题: [讨论]如何根据注册表检测某个软件是否安装? 上一主题 | 下一主题
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『楼 主』:  [讨论]如何根据注册表检测某个软件是否安装?

由于本人制作绿色软件的需要,需要检测是否安装了某个版本的程序,如我要安装ACCESS2003绿色版,则就必须知道是否系统之前是否安装过OFFICE,如果安装过又是哪个版本?然后根据不同的情况处理:如果没有安装过则可以直接设置绿色软件,如果已经安装过,设置的话就回冲突,那么就先备份注册表的相关项.

这里就提出了一个问题?如何使用批处理根据注册表来检测是否安装了某个程序.检测?这里还是有点难度的,所以建议大家讨论下(本人以前都是使用一个国外的工具叫CHECKV的工具来检测是否安装了指定程序,不过不是命令行版的,所以使用起来很麻烦,要自己提取生成的HTML中的信息.)

2006-12-19 00:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 2 楼』:  

好象没有人回答哟。自己顶一下。
是不是有难度呀。
我自己的思路是这样的,正在写程序,出来后再贴出来。
一般的软件安装后都会在注册表或者硬盘里写一些文件,一般有两种方法可以知道是否安装了某软件。一种方法是看是否改软件在磁盘里写了主程序文件等,但是这个只能判断是否安装了软件但不能判断安装的程序的版本,而且也不是很准确。另一种方法是通过注册表判断,除非是某些小的纯绿色软件,一般的软件安装后会在注册表中写入大量信息,那么可以通过注册表来判断程序是否安装以及其版本好。但是又怎样判断呢?不同程序在注册表中写的东西不同,所以难度还是很大。就OFFICE而言,可以通过HKLM下的OFFICE来判断或是提取HKCR中的INSTALLER中的字符来判断。

2006-12-19 05:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 3 楼』:  

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-12-19 07:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 4 楼』:  

reg query 然后 if

2006-12-20 01:29
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
qpmgljf
初级用户





积分 125
发帖 49
注册 2006-12-24
状态 离线
『第 5 楼』:  

偶是个这方面的菜鸟,不过也做绿色软件。关于这个问题能不能说清楚一点啊。能不能给段示例啊。

2007-1-7 05:47
查看资料  发送邮件  发短消息 网志  OICQ (61813046)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: