none
c#怎么模拟360软件更新? RRS feed

答案

  • 你好!
         自己写代码来实现有一定的难度,你可以尝试ClickOnce部署方式:
    http://msdn.microsoft.com/zh-cn/library/142dbbz4%28VS.80%29.aspx
          希望对你有帮助!
    周雪峰
    • 已建议为答案 mazhou 2010年3月11日 9:24
    • 已标记为答案 BigBadBoy 2010年3月11日 11:46
    • 取消答案标记 BigBadBoy 2010年3月11日 12:10
    • 已标记为答案 BigBadBoy 2010年3月11日 13:48
    2010年3月11日 7:37
    版主
  • 360软件管家里面,点了更新,就会后台下载并后台安装,这个用c#代码怎么实现?
    例如:我要从www.baidu.com/software.aspx下载一个wopti.exe的可执行文件,怎么用c#代码实现后台下载,并后台安装?

    所谓的后台下载和后台安装,也不是绝对的,如果你仔细你会发现360在安装好还是要重启自己的程序的,因为很多程序在运行时是不能被替换的。

    你需要单独写一个loader程序,他负责下载和安装你的主程序。

    主程序在启动的时候会定时调用loader检查是否有新的程序,如果有,loader开始下载,等下载完成后,主程序退出,loader接管,开始安装(不要出现界面),安装好了后启动主程序,loader退出即可。

    family as water
    • 已标记为答案 BigBadBoy 2010年3月11日 13:48
    2010年3月11日 8:29
  • 后台很简单啊,就是一个工作线程,好象有现成的backgroundworkthread可用,把你的函数扔进去就可以了。

    至于下载还是蛮简单的吧,好象直接有download类,名字可能不一定是download。如果要从html页面检查版本的话,可以考虑正则匹配,把版本找出来,再决定是否下载,下载地址也可以这么出来。

    安装界面的话,一种是安装程序有这么个控制开关,如/noview之类,可以参考安装程序说明档,另外一种就是把安装程序的窗口位置调整到看不到的地方,如-1000,-1000,眼不见为净。
    霸王
    • 已标记为答案 BigBadBoy 2010年3月11日 13:48
    2010年3月11日 13:14

全部回复

  • 你可以在后台线程中通过WEBSERVICE下载.exe文件到本地,
    如果文件下载完毕,立刻执行这个.EXE文件


    努力+方法=成功
    2010年3月11日 7:35
  • 你好!
         自己写代码来实现有一定的难度,你可以尝试ClickOnce部署方式:
    http://msdn.microsoft.com/zh-cn/library/142dbbz4%28VS.80%29.aspx
          希望对你有帮助!
    周雪峰
    • 已建议为答案 mazhou 2010年3月11日 9:24
    • 已标记为答案 BigBadBoy 2010年3月11日 11:46
    • 取消答案标记 BigBadBoy 2010年3月11日 12:10
    • 已标记为答案 BigBadBoy 2010年3月11日 13:48
    2010年3月11日 7:37
    版主
  • 360软件管家里面,点了更新,就会后台下载并后台安装,这个用c#代码怎么实现?
    例如:我要从www.baidu.com/software.aspx下载一个wopti.exe的可执行文件,怎么用c#代码实现后台下载,并后台安装?

    所谓的后台下载和后台安装,也不是绝对的,如果你仔细你会发现360在安装好还是要重启自己的程序的,因为很多程序在运行时是不能被替换的。

    你需要单独写一个loader程序,他负责下载和安装你的主程序。

    主程序在启动的时候会定时调用loader检查是否有新的程序,如果有,loader开始下载,等下载完成后,主程序退出,loader接管,开始安装(不要出现界面),安装好了后启动主程序,loader退出即可。

    family as water
    • 已标记为答案 BigBadBoy 2010年3月11日 13:48
    2010年3月11日 8:29
  • 你好!
         自己写代码来实现有一定的难度,你可以尝试ClickOnce部署方式:
    http://msdn.microsoft.com/zh-cn/library/142dbbz4%28VS.80%29.aspx
          希望对你有帮助!
    周雪峰

    的确很深奥,那么就抛开360的检查更新不说,说说简单的后台下载和后台安装吧?
    例如:我要从www.baidu.com/software.aspx下载一个wopti.exe的可执行文件,怎么用c#代码实现后台下载,并后台安装?
    后台下载的原理是什么?c#代码该怎么实现?
    软件的安装应该会出现安装界面,那么后台安装是怎么控制其他程序安装界面不显示的?
    2010年3月11日 11:50
  • 360软件管家里面,点了更新,就会后台下载并后台安装,这个用c#代码怎么实现?
    例如:我要从www.baidu.com/software.aspx下载一个wopti.exe的可执行文件,怎么用c#代码实现后台下载,并后台安装?

    所谓的后台下载和后台安装,也不是绝对的,如果你仔细你会发现360在安装好还是要重启自己的程序的,因为很多程序在运行时是不能被替换的。

    你需要单独写一个loader程序,他负责下载和安装你的主程序。

    主程序在启动的时候会定时调用loader检查是否有新的程序,如果有,loader开始下载,等下载完成后,主程序退出,loader接管,开始安装(不要出现界面),安装好了后启动主程序,loader退出即可。

    family as water
    谢谢你的建议,能告诉我后台下载的相关代码和怎么控制安装时才能不出现安装界面吗?
    2010年3月11日 12:02
  • 后台很简单啊,就是一个工作线程,好象有现成的backgroundworkthread可用,把你的函数扔进去就可以了。

    至于下载还是蛮简单的吧,好象直接有download类,名字可能不一定是download。如果要从html页面检查版本的话,可以考虑正则匹配,把版本找出来,再决定是否下载,下载地址也可以这么出来。

    安装界面的话,一种是安装程序有这么个控制开关,如/noview之类,可以参考安装程序说明档,另外一种就是把安装程序的窗口位置调整到看不到的地方,如-1000,-1000,眼不见为净。
    霸王
    • 已标记为答案 BigBadBoy 2010年3月11日 13:48
    2010年3月11日 13:14