常用的软件管家检查软件更新的工作原理是什么?

        软件管家是如何检测本机软件是否有新版本的?扫描更新的具体过程是怎样的?
        是通过扫描本地的注册表,还是读取每款软件的配置文件?
        如果是配置文件的话是什么样的配置文件;看注册表的话,有些软件在注册表中没有版本信息。
        软件管家提示的更新软件是保存在软件管家的服务器上?还是说保存在官方网站上,软件管家只是代替软件发送一个更新请求?
        通过wireshark抓包,能看出来很大一部分软件检查更新时服务器都会返回一个XML文件,想问下这个xml文件是什么作用?软件如何读取这样的XML文件?并如何通过这样的文件进行下载更新

当初研究过一下,这类软件还是需要花费不少精力做好的。
大部分是找注册表,如果没有注册表就找一些系统安装目录,比如program files。还有一些特定软件安装为止灯,这个需要之前研究,然后找到规则来判断。

返回xml应该是服务器上保存的各个软件最新的版本,更新地址等信息,然后再跟本地的比较。然后提示用户有更新等。

是否有新软件:联网搜索软件最新版本在跟本地比较 如有更新,提示更新。
扫描:注册表和常用安装目录下的EXE文件应该都会有涉及。常用安装目录是除系统盘之外的所有盘符加上系统盘内的那个常用文件夹。
提示的更新软件:应该是保存在官网,软件管家应该只是代替,不然的话服务器负荷不足,而且管家不可能事先知道你要安装什么软件。
xml文件:应该是保存软件更新发布地址或者说下载地址至于如何读取,这个真没研究过通过下载应该是打开文件并根据提供的关键字取出更新地址然后管家在进行联网下载最后安装。

注:以上均为个人推理猜想所得,如有出入勿怪

首先是类似Windows的添加删除程序功能,能把所有安装的程序列出来,具体有没有相关API没研究过,
程序的版本通常都是可以通过读取可执行文件的资源信息得到的。

至于每个程序 的可更新版本,可服务器端估计是需要有专门的人来维护的,
发现新的可用版本就上传到服务器上;