Windows自动更新API (5)

本文章对以前几篇文章中不足的以及错误的地方,进行修改。希望对大家有所帮助。

在 Vista和Xp中,WUA有很多地方不同的,根据Xp的自动更新版本决定。最大的区别在于刚安装完Xp-sp2后,WUA的版本比较老,且很多接口中的 函数都不提供。比如:代理类,IUpdate3,IUpdateSearcher2等。所以用.net开发时要进行注意客户端是否对WUA进行更新过。基 本上最新的WUA都是v6版了。与Vista下提供的版本差别不大了。

有代理的情况:
比如公司设置代理,Xp下,就不会更新,而Vista会,因为在Vista下会弹出让用户输入代理的用户名和密码的对话框。当这种情况时,自己写的程序要搜索、下载、安装须先创建代理类,然后由代理类创建相应的操作类。

代码参考如下:

1 WUApiLib.UpdateSessionClass session =  new WUApiLib.UpdateSessionClass();
2
3 session.WebProxy.Address = @"**********";
4 session.WebProxy.PromptForCredentials(sender, "Input Your Passport!");

PromptForCredentials方法,弹出系统对话框,然后输入用户名密码后,自动将其给代理类。
1 WUApiLib.IUpdateSearcher upSearch = session.CreateUpdateSearcher();
2 WUApiLib.IUpdateDownloader upDownload = session.CreateUpdateDownloader();
3 WUApiLib.IUpdateInstaller2 upInstall = (WUApiLib.IUpdateInstaller2)session.CreateUpdateInstaller();

最后,如果你使用的D版的操作系统,那么自动更新首先会要求你更新WGA,在验证通过的情况下才能更新后续程序,使用自己写的程序来更新能够更方便的去更新很多Xp下自动更新无法更新的部分,如驱动。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Win10 VS2013 ************************************************ * BOOL GetDiskSpaceInfo(LPCSTR pszDrive * 功能 根据输入的驱动器,获取磁盘总容量 * 空闲空间、簇数量等磁盘信息 * 参数 驱动器根路径,比如“D:\”。 ************************************************ * void GetTime() * 功能 获取并显示本地与系统时间 ************************************************ * void GetLang() * 功能 获取并显示系统的默认语言 ************************************************ * void ShowVersionInfo() * 功能 获取并显示系统版本信息 ************************************************ * void ShowSystemInfo() * 功能 获取并显示硬件相关信息 ************************************************ *void GetFolders() * 功能 获取系统目录等信息 ************************************************ *void WINAPI EnumProcess1() * 功能 调用EnumProcess遍历进程 * 并调用ListProcessModules1函数和 * ListProcessThreads函数列举模块 * 和线程 ************************************************ * VOID ListProcessModules1( DWORD dwPID ) * 功能 调用EnumProcessModules函数 * 列举和显示进程加载的模块 * * 参数 DWORD dwPID 进程PID ************************************************ * VOID ListProcessThreads( DWORD dwPID ) * 功能 调用Thread32First和Thread32Next * 显示一个进程的线程 * * 参数 DWORD dwPID 进程PID ************************************************ * VOID PrintError( LPTSTR msg ) * 功能 打印出错信息 * * 参数 LPTSTR msg ************************************************ * void GetDriveInfo( LPCTSTR lpRootPath) * 功能 返 回 指 定 驱 动 器 的 类 型。 * * 参数 lpRootPathName ************************************************ * void GetSystemMetric(int nIndex) * 功能 返 回 显 示 器 分 辨 率。 * * 参数 ************************************************ * void GetKeyboardInfo() * 功能 返回键盘类型。 * * 参数 *************************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值