如题,我现在需要将检测出来的本机没有安装的系统补丁下载并安装,这个程序使用C++写的,不知道如何下载补丁这个操作,哪位知道给小弟说一下
URLDownloadToFile https://baike.baidu.com/item/URLDownloadToFile/2700084?fr=aladdin
装一个VS,全选就好了,反正用得上
你的意思是你想自己用C++语言实现一个windows补丁更新的功能,类似于360安全卫等软件的系统补丁更新功能?如果是的话,那你可以看看window更新API,就是用来检测系统更新补丁的API,可以直接实现该功能,https://www.cnblogs.com/appleseeker/archive/2007/07/13/817430.html
还可以利用WMI实现系统补丁检测https://blog.csdn.net/darkread/article/details/8064449
当然你可以可以首先获取到补丁名称类似于,kb什么什么的,然后自己实现一个在网络搜索该补丁的功能,搜索到补丁地址,然后根据地址进行下载
用WMI获取操作系统补丁信息 示例代码 https://download.csdn.net/download/ljx269919845/4400864
Windows Update Agent API 检查系统补丁安装情况的函数 https://blog.csdn.net/aasmfox/article/details/8015524
Windows Update Agent API https://msdn.microsoft.com/en-us/library/aa387099.aspx 这些应该够你用了
好吧,好人做到底,帮你找到了下载地址,http://www.catalog.update.microsoft.com/home.aspx 这里是可以直接搜索补丁编号,然后就可以获取到下载地址了,不要说都提供给你了,还不行啊,如果真不行只有帮你到底了,哈哈
我看过了,返回的数据里面,有补丁对应的ID信息,根据这个ID构造地址就可以了,比如你这个截图里面的,
里面的id 看到没有,你这个补丁有6个版本,自然里面有6个id,到你这一步就可以获取到id信息了,下一步就是根据id构造数据包就可以获取到相应的下载地址了,看截图
发送这个数据包可以获取到下载地址
POST http://www.catalog.update.microsoft.com/DownloadDialog.aspx HTTP/1.1
Host: www.catalog.update.microsoft.com
Connection: keep-alive
Content-Length: 287
Cache-Control: max-age=0
Origin: http://www.catalog.update.microsoft.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://www.catalog.update.microsoft.com/DownloadDialog.aspx
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
PostData:如下
updateIDs=%5B%7B%22size%22%3A0%2C%22languages%22%3A%22%22%2C%22uidInfo%22%3A%226e3b0c6d-f716-4ac3-9059-1008067ac19b%22%2C%22updateID%22%3A%226e3b0c6d-f716-4ac3-9059-1008067ac19b%22%7D%5D&updateIDsBlockedForImport=&wsusApiPresent=&contentImport=&sku=&serverName=&ssl=&portNumber=&version=
275ee12e503f3d6b89d3f725fa950c8973f20d2d 把这个ID换成相应的id就可以了,这个是最重的下载地址