诺言 发表于 2011-9-23 15:00:04

怎么读取添加删除程序里的项目并卸载指定软件?

kansheng888 发表于 2011-9-23 16:40:58

这个可是高难度的问题,还在研究。。。应该有高手知道的吧!!!!

飘云 发表于 2011-9-23 16:46:56

这个表单内容貌似存在于注册表中,直接读取注册表中的对应信息会比较方便,ms的这个程序也是读取注册表再显示出来的

netegg 发表于 2011-9-23 21:55:28

本帖最后由 netegg 于 2011-9-23 22:00 编辑

回复 3# 飘云
'ms的这个程序也是读取注册表再显示出来的'-----这是谁告诉你的
回复 1# 诺言
读取注册表可以实现是可以实现,也不麻烦,无非是regenum*和regread

pdp320921 发表于 2011-9-23 22:03:09

去看看注册表下的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
子键和键值就知道怎么弄了
不过注册表中的比控制面板里的多

tsui 发表于 2011-9-23 23:08:18

基本上历史程序安装在楼上写的位置那好像都留有底

bakefish 发表于 2011-9-24 10:17:12

回复飘云
'ms的这个程序也是读取注册表再显示出来的'-----这是谁告诉你的
回复诺言
读取注册表可以 ...
netegg 发表于 2011-9-23 21:55 http://www.autoitx.com/images/common/back.gif

其实用HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
来获得反安装列表并不是太好,比如有子项的情况下,列表里如何处理的问题。应该是有一套规则,并不简单的照搬。

蛋兄的回复让我眼前一亮,不知道有没有空给小弟们点解一下,不胜感谢!

netegg 发表于 2011-9-24 20:33:20

本帖最后由 netegg 于 2011-9-24 20:54 编辑


Local $data = '', $temp, $i = 1, $uninstall = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'
While 1
        $key = RegEnumKey($uninstall, $i)
        If $key = '' Then ExitLoop
        $temp = RegRead($uninstall & '\' & $key, 'UninstallString')
        If Not ($temp = '') Then $data &= $temp & @CRLF
        $i += 1
WEnd
ConsoleWrite($data)

lixiaolong 发表于 2011-9-25 14:50:51

回复 8# netegg

If Not ($temp = '') 还可以这样写...学习了.

poloyzhang 发表于 2011-9-30 06:44:20

貌似360这些软件都是可以得到软件列表>还能得到安装目录及注册表键值.

p5200151 发表于 2011-10-1 09:03:29

楼主是想要静默方式卸载吧,应该是有点难度哦

redapple2008 发表于 2011-10-14 15:46:53

收藏,学了,感谢!

jsgh1983 发表于 2011-10-14 20:21:31

不知道是不是只能通过注册表操作?
页: [1]
查看完整版本: 怎么读取添加删除程序里的项目并卸载指定软件?