zoukankan      html  css  js  c++  java
  • office 2013补丁包更新

            总是有客户发现使用office 2013 下的插件有问题,这个问题出现在低版本上,所以要给office 2013打上补丁,打上后,运行插件ok,出现的bug解决掉了。那么给office打补丁包就成了解决此类bug的方案。如何给office打补丁包呢?

           360卫士可以扫描软件漏洞,然后在线下载并安装补丁包。这种方案固然好,但是有两个弊端。首先,客户机器上装360,客户不一定会修补漏洞,假如客户会操作,那么一次扫描,未必能够打完所有office 2013的补丁,有可能得多次扫描。然后,客户机器上没有360安全卫士,这时候,你不可能要求客户装360卫士。 
          在这种情况下,于是我就想到了,把补丁包下载下来,直接让客户装。问题是office 2013的补丁包着实很多,不可能在微软的网站上下载所有的,关键是太耗时间了。我想到用360安全卫士先扫描修补,看能不能直接拿到下载好的补丁包。结果发现360下的补丁包全部是cab格式的。这可能是补丁包安装后的副产品,我在360的补丁管理列表中,直接定位到了微软的下载页面上。后来,经过很长时间摸索,终于知道哪些补丁是很重要的补丁,把这几个关键的补丁打上就好了。在探索的过程中,曾几度陷入烦躁,沮丧当中。早知道,应该对探索充满信心,对结果有着乐观的态度,有助于问题及早解决。

          找到补丁包了,接下来就是如何批量安装了。一个一个点击安装绝非良策。那客户怎么忍受呢。于是,我用了批处理+C#程序,简化了整个安装过程,客户只需要轻轻一点,安装补丁的程序就开始运行了:

         

     1   private void btnOk_Click(object sender, RoutedEventArgs e)
     2         {
     3             //获取当前程序执行的目录
     4 
     5             this.tipMessage.Text = "正在更新补丁,可能会花费几分钟。。。";
     6 
     7             ThreadPool.QueueUserWorkItem(delegate
     8             {
     9                 string dir = Environment.CurrentDirectory;
    10                 Process proc = null;
    11                 try
    12                 {
    13                     string targetDir = string.Format(dir);
    14                     proc = new Process();
    15                     proc.StartInfo.WorkingDirectory = targetDir;
    16                     proc.StartInfo.FileName = "updateOffice2013.bat";
    17                     proc.Start();
    18                     proc.WaitForExit();
    19 
    20 
    21                     this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
    22                                 (ThreadStart)delegate()
    23                                 {
    24                                     this.tipMessage.Text = "更新完成";
    25                                 });
    26                 }
    27                 catch (Exception ex)
    28                 {
    29                     this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
    30                                 (ThreadStart)delegate()
    31                                 {
    32                                     this.tipMessage.Text = "更新出错";
    33                                 });
    34 
    35                     Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
    36                 }
    37             });
    38         }

    用wpf写的小小的一段代码,关键的核心在于 updateOffice2013.bat 这个批处理文件,文件的内容很简单:

    cd /d %~sdp0
    for %%i in (*.exe) do %%i /q

    第一句切换到批处理文件所在的目录,第二句循环执行exe文件 /q 参数表示静默安装,不要弹出对话框之类的东西。

    最终安装目录结构如下:

    注意:安装包是按版本顺序排序的,用户右键以管理员的权限运行 office2013Update.exe即可。

          

  • 相关阅读:
    2017蓝桥杯最大公共子串(C++B组)
    C++ memset函数用法
    2017蓝桥杯取位数(C++B组)
    2017蓝桥杯承压计算(C++ B组)
    安卓动画(Animation使用)
    2017蓝桥杯等差素数(C++B组)
    JSON取值前判断
    jstl
    centos到底下载哪个版本?
    HTML页面定时跳转方法
  • 原文地址:https://www.cnblogs.com/wangqiang3311/p/7728572.html
Copyright © 2011-2022 走看看