中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 00:53
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]如何根据注册表检测某个软件是否安装? 查看 1,574 回复 4
楼 主 [讨论]如何根据注册表检测某个软件是否安装? 发表于 2006-12-19 00:51 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
由于本人制作绿色软件的需要,需要检测是否安装了某个版本的程序,如我要安装ACCESS2003绿色版,则就必须知道是否系统之前是否安装过OFFICE,如果安装过又是哪个版本?然后根据不同的情况处理:如果没有安装过则可以直接设置绿色软件,如果已经安装过,设置的话就回冲突,那么就先备份注册表的相关项.

这里就提出了一个问题?如何使用批处理根据注册表来检测是否安装了某个程序.检测?这里还是有点难度的,所以建议大家讨论下(本人以前都是使用一个国外的工具叫CHECKV的工具来检测是否安装了指定程序,不过不是命令行版的,所以使用起来很麻烦,要自己提取生成的HTML中的信息.)
2 发表于 2006-12-19 05:28 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
好象没有人回答哟。自己顶一下。
是不是有难度呀。
我自己的思路是这样的,正在写程序,出来后再贴出来。
一般的软件安装后都会在注册表或者硬盘里写一些文件,一般有两种方法可以知道是否安装了某软件。一种方法是看是否改软件在磁盘里写了主程序文件等,但是这个只能判断是否安装了软件但不能判断安装的程序的版本,而且也不是很准确。另一种方法是通过注册表判断,除非是某些小的纯绿色软件,一般的软件安装后会在注册表中写入大量信息,那么可以通过注册表来判断程序是否安装以及其版本好。但是又怎样判断呢?不同程序在注册表中写的东西不同,所以难度还是很大。就OFFICE而言,可以通过HKLM下的OFFICE来判断或是提取HKCR中的INSTALLER中的字符来判断。
3 发表于 2006-12-19 07:33 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
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'>"
4 发表于 2006-12-20 01:29 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
reg query 然后 if
5 发表于 2007-01-07 05:47 ·  中国 山西 阳泉 联通
初级用户
积分 125
发帖 49
注册 2006-12-24 08:33
19年会员
UID 74424
性别 男
状态 离线
偶是个这方面的菜鸟,不过也做绿色软件。关于这个问题能不能说清楚一点啊。能不能给段示例啊。
论坛跳转: