当前位置:文档之家› STM32用户基于IAP的程序更新技术

STM32用户基于IAP的程序更新技术

STM32用户基于IAP的程序更新技术
STM32用户基于IAP的程序更新技术

用C#开发软件自动更新程序

用C#实现在线升级的关键步骤 这里我主要使用日期信息来检测是否需要下载升级版本。 4.1 准备一个XML配置文件 名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。 名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。 //xml版本号 //升级文件所在服务器端的网址 //升级文件的更新日期 //升级文件的版本号 //升级文件列表 //共有三个文件需升级 //允许重新启动应用程序 //启动的应用程序名 从以上XML文档中可以得知升级文档所在服务器端的地址、升级文档的更新日期、需要升级的文件列表,其中共有三个文件需升级:aa.txt、VB40.rar、VB4-1.CAB。以及是否允许重新启动应用程序和重新启动的应用程序名。 4.2 获取客户端应用程序及服务器端升级程序的最近一次更新日期 通过GetTheLastUpdateTime()函数来实现。 private string GetTheLastUpdateTime(string Dir) { string LastUpdateTime = ""; string AutoUpdaterFileName = Dir + @"\AutoUpdater.xml"; if(!File.Exists(AutoUpdaterFileName)) return LastUpdateTime; //打开xml文件 FileStream myFile = new FileStream(AutoUpdaterFileName,FileMode.Open); //xml文件阅读器 XmlTextReader xml = new XmlTextReader(myFile); while(xml.Read()) { if(https://www.doczj.com/doc/20350810.html, == "UpdateTime") {

firmware升级流程

Firmware升级流程 一.概述 AN5116-02系统中,EC2以及各种ONU的芯片firmware版本均由TEKNOCUS公司提供,且更新比较频繁。目前最新中试的版本为R140,而工程是普遍使用的为R105版本,因此,工程上的AN5116-02系统迫切需要升级以满足新的功能需求和维护要求。一般情况下,我们可通过图形网管命令直接对局/远端的芯片firmware升级。参考拓扑图如下: 二.升级操作方法 升级的对象主要有EC2的firmware和ONU的firmware两项,每一项目又分为三个子项:boot程序,app程序和personality程序(boot可能不是必需的)。升级时,我们不关心三个子项的名称,仅关心这些程序是属于EC2的,还是ONU的,如果我们要升级的子项是EC2上的,则应在图形网管上选择升级“EC2 firmware”;反之,如果是ONU 上的子项升级,则应在图形网管上选择升级“ONU firmware”。另外,boot,app,personality这三个子项一般是严格按照顺序来升级的,即先升级boot,然后是app,最后是personality。升级时,待升级的对象必须在位,如果是ONU,它应该是已经授权了的状态。 下面介绍整个升级流程。 假设目前网管具有以下条件: 网管服务器ip地址为10.26.1.2/16 欲使用的FTP服务器的用户名为test , 密码为test 文件目录为D:\ ONU的授权号为5,其对应在线的EC2槽位号为2。 首先准备好FTP服务器和要升级的所有文件: 1.打开FTP server 软件,并设置用户名和密码均为test,文件存放目录为D:\ 。 2.准备好升级文件。根据归档提供的*.tkf文件编辑好ONU的personality文件 (编辑方法见文档后的附录),并任意改好文件名,如ec2_https://www.doczj.com/doc/20350810.html,f , ec2_https://www.doczj.com/doc/20350810.html,f , ec2_https://www.doczj.com/doc/20350810.html,f ,onu_https://www.doczj.com/doc/20350810.html,f , onu_https://www.doczj.com/doc/20350810.html,f , onu_https://www.doczj.com/doc/20350810.html,f,

软件自动更新技术

软件自动更新思路 时间:2011-06-03 03:17:54 来源:作者:中原石油勘探局地质录井处付全彬 1前言 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题?部署很简单,只要点击安装程序即可,难的在于每当有新版本发布时,能够实现自动升级。我们希望开发一个与具体应用无关的能够复用的自动升级系统。下面结合工作中所承担的井场数据中心项目为大家介绍如何实现可复用的自动升级系统。 2软件自动升级存在的困难 第一,为了查找远程服务器上的更新,应用程序必须有查询网络的途径,这需要网络编程、简单的应用程序与服务器通讯的协议。 第二是下载。下载看起来不需要考虑联网的问题,但要考虑下载用户请求的文件,以及在没有用户同意时下载大文件。友好的自动更新应用程序将使用剩余的带宽下载更新。这听起来简单,但却是一个技术难题,幸运的是已经有了解决方法。 第三个考虑因素是使用新版应用程序更换原应用程序的过程。这个问题比较有趣,因为它要求代码运行时将自己从系统删除,有多种办法可以实现该功能,本文程序主要通过比较新旧版本的日期号来实现替换新版本应用程序的功能。 3软件自动在线升级的原理 写两个程序,一个是主程序;一个是升级程序;所有升级任务都由升级程序完成。 3.1.启动升级程序,升级程序连接到网站,下载新的主程序(当然还包括支持的库文件、XML配置文档等)到临时文件夹; 3.2.升级程序获取服务器端XML配置文件中新版本程序的更新日期或版本号或文件大小; 3.3.升级程序获取原有客户端应用程序的最近一次更新日期或版本号或文件大小,两者进行比较;如果发现升级程序的日期大于原有程序的最新日期,则提示用户是否升级;或者是采用将现有版本与最新版本作比较,发现最新的则提示用户是否升级;也有人用其它属性如文件大小进行比较,发现升级程序的文件大小大于旧版本的程序的大小则提示用户升级。本文主要采用比较新旧版本更新日期号来提示用户升级。 3.4.如果用户选择升级,则获取下载文件列表,开始进行批量下载文档; 3.5.升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序; 3.6.删除旧的主程序,拷贝临时文件夹中的文件到相应的位置; 3.7.检查主程序的状态,若状态为活动的,则启动新的主程序; 3.8.关闭升级程序,升级完成。 4实现在线升级的关键步骤 这里我主要使用日期信息来检测是否需要下载升级版本。 4.1 准备一个XML配置文件 名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。 //xml版本号 <AutoUpdater> <URLAddres URL="http://192.168.198.113/vbroker/log/"/>//升级文件所在服务器端的网址

软件系统部署及升级流程及管理

软件系统部署及升级流程及管理 第一章总则 第一条为保障股份有限公司(简称:公司)信息软件系统安全运行在生产环境,规范软件系统部署与升级流程、控制软件系统的生产运行安全,保证业务流程的顺畅和生产系统的完整性、功能完备,特制定本办法。 第二条本办法所指软件系统包括,但不仅限于公司组织实施的账户管理和受托管理核心业务系统、网上受理系统、呼叫中心系统、投资交易系统、投资估值系统、投资风险控制系统,以及OA办公系统、对外网站系统、基础技术架构系统等涉及的软件系统的部署、安全运行与升级管理。 第三条本办法所指软件系统部署与升级管理主要包括以下内容:软件系统投产前准备、软件系统投产管理、软件系统生产运行管理、软件系统生产安全管理、软件系统升级管理。 第四条信息技术部是本办法的制定部门和执行部门,设立系统运维岗,负责系统软件系统部署、安全运行与升级的具体技术实现,其它相关岗位和部门应按本办法所制定的流程配合完成相关工作。 第二章软件系统投产前准备 第五条软件系统的投产关系到整个信息系统的安全运行,应做好充分的投产前准备。投产前的准备工作包括以下几个方面:环境设备的准备、硬件设备的准备、投产程序和数据的准备、相关投产文档和培训的准备等。 第六条环境设备的准备主要包括:系统架构确认、机房机柜机架配备、电

源使用配备、网络线路配备、操作系统预安装和配置、主机命名和网络配置、存储环境配置检查、备份环境、环境参数配置、数据库配置、中间件配置、环境冗余切换配置、通讯配置、部署操作员配置、环境变量、客户端环境等。 第七条硬件设备的准备主要包括:主机连接方式、主机型号配置、处理器频率和数量、内存配置、内置硬盘容量、网卡类型和数量、光纤通道卡型号和数量、其他内置的I/0卡和其他外设等。 第八条投产程序和数据的准备主要包括:目标程序及相关清单说明、可控版本组织、系统配置参数、数据库初始化数据等。 第九条相关投产文档和培训的准备主要包括:《系统安装部署手册》、《系统IT参数配置手册》、《数据备份和恢复操作指导》、《系统故障与恢复手册》、《系统文件目录清单说明》、《系统运行日志存放说明》、《系统各类密码修改说明》、《文件清理计划及操作指导》、《管理员、项目经理、厂商负责人通讯录》以及相应的功能使用培训、安装部署培训、日常维护培训等。 第十条系统投产准备工作中有关权限管理、参数配置、数据初始化管理应遵照《IT系统权限及数据管理办法》的相关规定: (一)投产系统权限申请设置应形成流程并由业务部门负责人和风险控制 部门审核; (二)软件系统投产的参数配置由信息技术部牵头组织信息,各业务部们 予以协同支持,最终由风险控制部进行参数定级并进行投产参数审 核; (三)对于系统初始化数据,原则上不允许进行数据库文件导入操作,而 应通过数据操作语句进行数据初始化,各基础数据应得到业务部门

API实现程序自动升级

社区彩票 社区农场 社区赌场 社区法院 社区房产 社区股市 欢迎大家到这个网上的共同的家园交流你的思想、分享你的经验!收藏本页 联系我们 论坛帮助 redbridge 重登录隐身用户控制面板搜索风格论坛状态论坛展区社区设施社区服务退出 >> PowerBuilder编程技术与相关应用我的收件箱 (0) 程序员家园论坛→软件开发→ PowerBuilder → [转帖]使用PB调用API自动更新(非FTP模式) 您是本帖的第 12 个阅读者 * 贴子主题:[转帖]使用PB调用API自动更新(非FTP模式) hongjuan 头衔:菜鸟协会会长 等级:管理员 威望:1 文章:35158 积分:44536 魅力:34850 现金:18265 存款:11106 门派:足彩协会 住址:幸福之家21号 注册:2003-12-31 鲜花(0) 鸡蛋(0) 楼主 [转帖]使用PB调用API自动更新(非FTP模式)

一、STRUCTURE定义 1、s_filetime global type s_filetime from structure long dwlowdatetime long dwhighdatetime end type 2、s_win32_find_data global type s_win32_find_data from structure long dwfileattributes s_filetime ftcreationtime s_filetime ftlastaccesstime s_filetime ftlastwritetime long nfilesizehigh long nfilesizelow long dwreserved0 long dwreserved1 character cfilename[255] character calternatefilename[14] end type 3、s_netresource global type s_netresource from structure long dwScope long dwType long dwDisplayType long dwUsage string lpLocalName string lpRemoteName string lpComment string lpProvider end type 一、WNetAddConnection2A function ulong WNetAddConnection2A(ref s_netresource lpNetResource, String lpPassword, String lpUserName, long dwFlags) library "mpr.dll" Alias for "WNetAddConnection2A" 说明: VB声明 Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long

DSP在线升级程序步骤

目标板:C2000的28335/28069 一、主要思路: 1、准备升级程序(相当于一个bootloader),作为上电首先运行的程序。进入升级程序,首先判断需不需要升级,需要升级,进入升级状态,通信完成新的主程序的接收,存入,升级成功后,进入主程序运行。 2、在主程序运行时,收到升级指令,标记升级标志,重启进入升级程序进去升级。 3、板子上电后,会调到flash启动的起始地址0x33FFF6(DSP28335),这个地址存放着程序的codestart 的其实地址。所以,修改了0x33FFF6的存放的值,那么就能决定执行那一段程序。还可以通过汇编跳转指令直接跳转到程序codestart执行。 二、升级程序 1、具备能力:具备通信能力和Flash读写能力 2、准备:Flash API移植、上位机的升级配套程序;存储升级标志位的空间(外部EEPROM,不会随便擦除的内部Flash) 3、流程:接收->校验->烧写->跳转 三、升级步骤 1、数据接收:通过CAN/串口等方式接收数据。由于28335内存较小,不适合缓存大量的数据,这里是接收一部分数据,校验完成后烧写进Flash,再去接收一部分数据 2、数据解析:接收到的数据是hex格式的数据,所以需要解析才能放入对应的flash地址。但由于28335能力限制,这里采用先在上位机解析完成,采用先告知地址,然后发送数据的方式完成数据通信和传输。 3、校验:这里采用crc校验。 /****************************************************** *Name : crc16 *Function: crc校验16位 *Params : data(UInt8 *):待操作的数组 len:数据长度 *Return : UInt16:返回CRC值 CRC校验码为2个字节高位在前 *******************************************************/ UInt16 crc16(Uint8 *data, UInt16 len) { UInt16 CRC = 0xFFFF; UInt8 j, TMP = 0; UInt8 i; for (i = 0; i < len; i++)

在linux系统下部署和更新程序的步骤(精)

在linux 系统中部署程序的步骤 1. 用linux 命令新建文件夹utxt 。 2. 利用FTP 新建站点,在站点中将本地的总tar 包拖到linux 系统的指定文件夹utxt 下面。 3. 在linux 窗口中,转到utxt 目录下面,执行命令“tar -xzvf tar包名”解压tar 包。 4. 再执行ll 命令,可以看到总的tar 包已经解压到当前目录下。 5. 再在utxt 目录下面新建目录software, 在software 目录下面新建两个目录dbmonitor 和scripts 。 6.(当前在utxt 目录下面, 因为总的tar 包解压到了utxt 目录下面 再执行命令“cp dbmonitor.tar.gz software/dbmonitor/”,将dbmonitor.tar.gz 包拷贝到dbmonitor 目录。 7. 再切换到dbmonitor 目录(执行命令cd software/dbmonitor/), 执行ll 命令, 可以看到dbmonitor.tar.gz 包。 8. 再执行“tar -xzvf dbmonitor.tar.gz”命令解压tar 包。 9. 再修改配置文件dbmon.ini ,执行vi dbmon.ini,再执行i 修改文件,修改完成后按esc 键,现输入:wq 保存并退出,若放弃保存则输入:q! 。 10. 再运行守护程序,执行命令./sysmonitor_mon.sh &,再输入exit 退出程序,再查看是否启动成功(ps -elf|grep sys)。 升级程序的步骤(更新dbmonsrv.new 文件) 1. 利用FTP 将dbmonsrv.new 文件拷贝到linux 系统相应的目录下面。

Qt实现软件自动更新

前言 最近在学习Qt开发上位机,想实现一个检查更新的功能,网上搜索了 一大圈,发现实现过程都很复杂,关键是代码看不懂,所以就自己开发一种 简单的方式来实现。实现效果如下: 1.点击“检查更新”按钮,如果当前版本低于远程的版本,那么会弹出如下 窗口,提示更新,并显示远程的的版本号,更新时间,更新说明,如下图所示: 2.如果点击"去下载",那么会调用系统默认浏览器,直接创建下载任务。点击"不更新",则取消更新。 如果当前版本号和远程一致,那么会提示"已经是最新版本": 实现原理 首先在远程放置了一个文件,内容包含最新版软件的版本号、下载链接、更新时间、更新说明等,当用户点击"检查更新"时,会访问这个文件的地址,并对文件内容进行解析,得到最新的版本号、下载链接、更新时间、更新说 明等,如果版本号比当前软件的版本号高,那么弹出更新窗口。

我们先创建一个文本文件,可以是TXT格式、XML格式、JSON格式等等,因为之前学习过JSON的解析,所以这里我选择了JSON格式,当然选择其他格式也都是可以的。命名为 software_update.json,内容如下: 1.{ 2."PulseSensor": 3. { 4. "LatestVerison":"V1.1", 5. "Url":" //XXX. XXX. XXX /Demo_v1.1.exe", 6. "UpdateTime":"2019-03-31", 7. "ReleaseNote":"\n1.添加检查更新说明,包含版本号,下载链接,更 新时间,更新说明.\n2.优化“关于”界面" 8. }, 9."RGBContrl": 10. { 11. "LatestVerison":"V1.0", 12. "Url":" //***. ***.***/Demo_v1.1.exe", 13. "UpdateTime":"2019-03-30", 14. "ReleaseNote":"版本说明" 15. } 16.} 其中Url键值,是最新版软件的下载地址,然后把这个文件存放到服务器上,可以通过链接直接访问,如果有软件发布,只需要修改这个文件的内容:版本号、下载链接、更新说明、更新时间。当然,从文件内容也可以看出,支持多个软件的说明放在一起。 Qt端的实现 Qt端的实现,主要使用到了网络请求和JSON解析两个部分。 1.pro文件添加网络支持 1.# 网络请求 2.QT += network 2.添加头文件 1.//网络相关头文件 2.#include 3.#include 4.#include 5.//JSON相关头文件 6.#include 7.#include 8.#include 3.对象的定义和函数的声明 1.QNetworkAccessManager *manager; //定义网络请求对象 2.int parse_UpdateJSON(QString str); //解析数据函数的声明 3.void replyFinished(QNetworkReply *reply); //网络数据接收完成槽函数的声 明 4.QString CurVerison = "V1.1"; //定义当前软件的版本号 4.连接信号与槽 1.manager = new QNetworkAccessManager(this); //新建 QNetworkAccessManager对象

软件系统部署及升级流程及管理.doc

. 软件系统部署及升级流程及管理 第一章总则 第一条为保障股份有限公司(简称:公司)信息软件系统安全运行在 生产环境,规范软件系统部署与升级流程、控制软件系统的生产运行安全,保证业务流程的顺畅和生产系统的完整性、功能完备,特制定本办法。 第二条本办法所指软件系统包括,但不仅限于公司组织实施的账户管理和受托管理核心业务系统、网上受理系统、呼叫中心系统、投资交易系统、投资估 值系统、投资风险控制系统,以及OA 办公系统、对外网站系统、基础技术架构 系统等涉及的软件系统的部署、安全运行与升级管理。 第三条本办法所指软件系统部署与升级管理主要包括以下内容:软件系统投产前准备、软件系统投产管理、软件系统生产运行管理、软件系统生产安全管 理、软件系统升级管理。 第四条信息技术部是本办法的制定部门和执行部门,设立系统运维岗,负责系统软件系统部署、安全运行与升级的具体技术实现,其它相关岗位和部门应 按本办法所制定的流程配合完成相关工作。 第二章软件系统投产前准备 第五条软件系统的投产关系到整个信息系统的安全运行,应做好充分的投产前准备。投产前的准备工作包括以下几个方面:环境设备的准备、硬件设备的

准备、投产程序和数据的准备、相关投产文档和培训的准备等。 第六条环境设备的准备主要包括:系统架构确认、机房机柜机架配备、电源使用配备、网络线路配备、操作系统预安装和配置、主机命名和网络配置、存 储环境配置检查、备份环境、环境参数配置、数据库配置、中间件配置、环境冗 余切换配置、通讯配置、部署操作员配置、环境变量、客户端环境等。 第七条硬件设备的准备主要包括:主机连接方式、主机型号配置、处理器频率和数量、内存配置、内置硬盘容量、网卡类型和数量、光纤通道卡型号和数 量、其他内置的I/0 卡和其他外设等。 第八条投产程序和数据的准备主要包括:目标程序及相关清单说明、可控版本组织、系统配置参数、数据库初始化数据等。 第九条相关投产文档和培训的准备主要包括:《系统安装部署手册》、《系统 IT 参数配置手册》、《数据备份和恢复操作指导》、《系统故障与恢复手册》、《系统文件目录清单说明》、《系统运行日志存放说明》、《系统各类密码修改说明》、《文件清理计划及操作指导》、《管理员、项目经理、厂商负责人通讯录》以及相应的功能使用培训、安装部署培训、日常维护培训等。 第十条系统投产准备工作中有关权限管理、参数配置、数据初始化管理应遵 照《 IT 系统权限及数据管理办法》的相关规定: (一 ) 投产系统权限申请设置应形成流程并由业务部门负责人和风险控制 部门审核; (二 ) 软件系统投产的参数配置由信息技术部牵头组织信息,各业务部们 予以协同支持,最终由风险控制部进行参数定级并进行投产参数审 核;

Android应用程序的自动更新升级

Android应用程序的自动更新升级(自身升级、通过tomcat) 刚入手android一个多月,因公司需要提交技术文档,才写了这个demo测试,想保存下来,以备后用!有什么不对的地方欢迎大家指正,这个示例也是参考了网上别人的demo自己做的。 Android应用 程序的升级(自身升级) 一、引言: 很多的Android应用都具有版本检测和自动更新的功能,用户一键就可以完成软件的升级和更新。Android应用程序的升级本质上是利用了Linux系统的软件包管理和安装机制,而对于上层这一功能的开发来说很容易,只需要我们开发人员利用Android自带的API就 可以实现。 二、功能说明: 1、本示例用来实现单个应用程序的自身升级 2、程序启动时,连接tomcat7 web服务器进行版本的检测,若有新版本则提示更新 3、将从web服务器下载的新版本的APK文件放到sdcard中 4、监听新版本的APK应用是否安装完成,如果是,则将下载的apk文件从sdcard中删除 三、程序框架流程:

四、环境说明: 1、服务器端:Ubuntu下的tomcat7web服务器,安装后默认端口是8080,Android模拟器访问时要将apk文件放到/var/lib/tomcat7/webapps/ROOT/目录下,Android模拟器的访问方式是http://10.0.2.2/NewAppSample.apk 2、Android模拟器端的开发环境: Ubuntu+eclipse+ADT 五、流程详解及关键点说明: (一) 新版本的应用程序(NewAppSample)准备: a) 新建一个android工程,编辑其版本代码为2,高于我们的旧版本用于更新测试,版本名称为1.0.1 b) 编辑应用程序对应的版本信息文件version.json 说明:后缀为json的文件是一种轻量级的数据交换格式,比xml要快很多,适合于小型数据的网络交换,其实质类似键值对,键用字符串的形式表示与其值用冒号隔开,能存储多种数据类型。 (二) 旧版本的应用程序准备: 1、在其AndroidManifest.xml中定义版本代码为versionCode=”1”让其自动生成即可,我们主要利用程序的版本代码的高低来判断是否有新的版本,用于更新。 2、我们在应用程序启动时自动联网检测是否有新的版本,即在onCreate()函数中进行联网检测。 a) 从服务器获得读取版本信息文件version.json,我们单独写了一个类来实现,用其GetUpdateInfo静态方法来返回读取的version.json,返回形式是字符串。代码如下

如何实现CAD表格的自动更新

如何实现CAD表格的自动更新 经常需要使用表格的CAD工程师一定会有这样一个深刻的体会,与EXCEL异常强大的表格处理能力相比,CAD的表格简直就是“小儿科”。虽然,随着CAD技术的不断进步,CAD 软件的表格处理能力也在不断提升,但不管怎样,始终与EXCEL相距甚远。其实也不奇怪,谁让人家EXCEL是专业的呢! 当需要用的表格比较简单时,许多工程师选择直接在CAD中绘制。这种方式的缺点是,效率低,而且无法让表格实现自动统计功能,许多在EXCEL中可以轻易实现的功能,在CAD 表格中却难以实现。 当表格比较复杂时,很多人选择先在EXCEL中完成表格的编辑,然后,利用Ctrl+C和Ctrl+V快捷键的方式将表格直接复制到CAD中。这种方式明显比前一种方法优越,因为通过EXCEL,工程师就可以使用EXCEL表格中各种数学函数和自动统计功能。然而,这种方式依然有许多不尽如人意之处,比如,当外部的EXCEL表格的数据发生改变时,CAD表格中的表格不会自动更新。那,究竟有没有更完美的方法,让设计师在使用CAD的同时,又可以享受EXCEL强大的表格处理能力呢? 回答是肯定的。 虽然没能在CAD中实现像EXCEL那样强大的表格处理功能(包括AutoCAD),但浩辰CAD (2011以上版本)却给出了一种折中的解决方案——通过AutoXlsTable(一个小插件,已集成到软件中),实现CAD和EXCEL协同作业。 我想这么说,很多没用过这个功能的朋友一定还没明白,还是让我们来看看实际操作吧! 1、启动浩辰CAD(其它CAD软件好像没有这个功能),选择如下图所示的菜单命令。 2、选择命令后EXCEL会自动起动。当然,前提是你已经安装了EXCEL。而且,你会发现EXCEL的“加载项”中多了一个“AutoXlsTable”的按钮(如下图所示)。

C利用批处理实现正在运行程序自动更新

关于自动更新,在.NET下面已经是很普通的事情,无非就是在服务器端保存配置好要更新的程序,然后客户端再写一个小程序来检测,有更新的则复制过来.就这么个思路,这么个简单的问题还要占一篇首页?但你可别急,看看我的标题,再慢慢的看下去,或许哪一天,你可能还真的会用得着呢,就算用不着,相信对各位回头温习一下久违的C ommand也是不错呀! 利用ShareDevelop的ICSharpCode.Core实现了一个插件应用程序,这两天想要弄个自动更新,将更新功能作为插件包括在应用程序中,本来以为按照上面的思路是很容易实现的,也确实实现了部分,为什么说部分呢,因为主Exe文件没有更新成功啦!想想原因其实也很简单:主Exe本身就在运行,在运行阶段的Exe或DLL是没法复盖的.这下子,这可怎么办?这时一个想法冒出,先将主Exe进程杀掉,然后再复制不成吗?咦,好象是道理哦,自杀了之后,自然可以复制过来呀,但是转念又想,如果主Exe 自己都不存在,那后面的复制功能怎么才能执行呢?难不成因为不差钱,有钱能使鬼推磨,帮主Exe一把? 这世界当然是没有鬼的,即使有,它也不可能这么厉害的能帮到主Exe的,在座位上脑子里想的总是自杀再重生这个方案.Google,Baidu这些大神祭起半天也没有找到好的解决方案,只好退下来.看来只有靠自己自力更生,当然这个不一定行得通,但至少尝试过了…… 不就是复制嘛?就是copy呀,百无头绪当中,我在cmd中(我一般是会开着cmd 的), 无意识的敲着copy/?,xcopy/?之类的查看,其中xcopy的帮助还真是提醒了我,请看下面:(繁体系统,粘贴过来的,所以没有转换成简体)

用VC++如何实现程序版本在线升级更新

现在很多共享软件都有"在线升级"功能,比如"Windows 优化大师","超级兔子",所谓在线升级就是一个版本检测程序,通过他,用户可以随时检查有没有新版本程序,以便及时升级,下面我们就在自己的程序里来实现这个功能: 在正式编程前,我要说的是:我不赞成某些共享软件在每次启动时候都检测新版本,并弹出窗口提醒用户,有时候这大大影响或者妨碍了用户的操作和使用,我们要实现的功能是:让用户自己去检查新版本! 编程思路是这样的:首先我们在主页某个地址放一个文件,然后在我们的程序里来检查它,以便获得新版本信息!这里版本信息文件我们用INI文件来操作!比如下列格式, [Version] Version=12 [URL] URL=https://www.doczj.com/doc/20350810.html,/123.exe 其中的 Version是新版本号,12表示V1.2版,这个格式完全可以自己设置,URL是新版本程序下载地址 另外,要获取INTETNET上的文件,我们一般有2种办法,一是通过FTP下载,二是HTTP直接连接,如果你有国际域名空间,那么就可以使用匿名FTP在程序里获取版本信息文件,但是对于使用免费主页的朋友来说就麻烦了。因为服务器不是我们的,这就不太方便了。那么采用HTTP方式获取版本信息文件就很有必要了!要获取网站上的某个文件并保存在本地,我们只需要一个API函数URLDownloadToFile()即可,当成功下载INI文件后我们就可以读取这个文件并进行分析工作了! 具体实现过程: 打开VC,建立MFC程序,放置一个标签IDC_VER ,用来输出信息,另外安排2个按狃,分别是 IDC_CHECK,IDC_DOWNLOAD 前者用来检查是否有新版本,后者用来下载新版本程序! 首先我们添加一个成员变量char new_url[100] 来存放新版本程序的下载地址: 然后在IDC_CHECK 按钮事件里输入以下代码来检查有无新版本: SetDLgItemText(IDC_VER,"正在检查,请等待。。。。。。"); int ret=URLDownloadToFile(NULL,"http://ip/vesion.ini","c:\\version.ini",0,NULL); if (ret==S_OK) //如果下载成功 { // 读取Version 段的数据,得到新版本好 int newversion=GetPrivateProfileInt("Version","Ver",10,"c:\\version.ini"); if (newversion>10) //跟当前版本比较,10表示目前版本V1.0 ,根据具体版本自己设置 { SetDLgItemText(IDC_VER,"有新版本了!");

实现局域网中客户端程序的自动分发与更新

实现局域网中客户端程序的自动分发与更新 关于程序开发中C/S和B/S两种模式的讨论网上随处可见,B/S模式以其客户端的零维护等优点已逐渐成为主流的开发模式。随着绿色软件的盛行,很多客户端程序不需要进行安装,因此有些面向局域网应用的项目中,程序员完全可以根据具体应用开发出C/S程序,为了方便客户端程序升级维护,可以结合B/S模式的优点,实现客户端用浏览器自动下载升级客户端程序。笔者曾经用Delphi开发了一个面向局域网的C/S模式的系统,最近因客户业务变化客户端程序需要随时进行更新与维护。如果每一次升级维护都需要管理员到每个部门每台客户机进行重新复制文件,用户显然是难以接受的。因此笔者考虑做一个ActiveX控件嵌入到Html页面文件中,让用户借助浏览器实现客户端程序的自动分发、更新。以下以Delphi开发工具为例,将解决过程及基本代码写出来,所有代码在Delphi7+Window9X、Win2k、WinXP下测试过。 一、解决问题的思路及要点 Internet Explorer 3.0以上版本就支持在网页中嵌入ActiveX控件,用户通过浏览器访问网页时,将网页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻留在用户本地机器上,下次再访问相同的网页时,如果ActiveX控件的版本不变,不再下载该控件,而是直接运行用户本地的控件。因此我们可以在Delphi中创建一个ActiveX控件,以实现自动下载客户端程序的功能。 在Delphi中实现文件下载的方法很多,比较简便的是直接用idHTTP组件。idHTTP提供了个Get方:Get(AURL:String; Const AresPonseContent:Tstream),该方法用Tstrem来封装了 返回的内容,通过对Tstream的SaveTo方法来保存下载的文件。Get方法必须指定下载文件正确的URL,而服务端的IP是可能改变的。在HTML中,利用脚本技术JavaScript可以获取当前 网页的URL,当访问者用浏览器打开一个网页时,JavaScript将产生一个指向该页面的Document 对象,Document的Location属性用于指定当前网页的URL。因此在编写代码时必须将Get方法的AURL参数设定为一个变量,这样可以先获取服务端网页的URL后,再传递给Get方法以便正确下载文件。 正确下载客户端程序后,还应该自动执行该程序。在DELPHI使用函数WinExce(lpCmdLine :pAnsichar;uCmdShow:Cardinal)即可执行外部EXE文件。

实现程序的自动更新

基于visual c++之windows核心编程代码分析(8)自动下载更新程序 分类:VC++编程技术Visual C++2010编程技术Visual Studio2012Windows82011-12-1622:46149 人阅读评论(0)收藏举报我们编写Windows程序,经常需要自动更新,该功能如何实现呢,我们来看代码实现与注释讲解 view plaincopy to clipboardprint? 1.#include"stdafx.h" 2.#include"AutoUpdate.h" 3. 4.#ifdef_DEBUG 5.#define new DEBUG_NEW 6.#endif 7. 8.//唯一的应用程序对象 9. 10.CWinApp theApp; 11. https://www.doczj.com/doc/20350810.html,ing namespace std; 13. 14.#define MYVERSION5//定义程序版本。请注意:每次发 布,值应该不相同,建议使用自然数递增数列! 15. 16.DWORD WINAPI UpdateThreadProc(LPVOID lParam) 17.{ 18./* 19.*如果有必要,可以使用GetTempPath()函数获取系统临时文件目录,将用到的文 件下载至该目录。本实例中直接使用程序当前目录, 20.*并在升级完成时将其删除。 21.*/ 22.wchar_t*TempFileName=new wchar_t[255];//升级文件临时文件名,在 该程序中为“AutoUpdate_.exe”

23.wmemset(TempFileName,0,255); 24.wsprintf(TempFileName,L"%s_.exe",AfxGetApp()->m_pszAppName);//wsp rintf对字符串进行格式化处理 25. 26.URLDownloadToFile(NULL,_T("http://127.0.0.1/update.txt")/*升级信息 配置文件,请根据实际自行修改*/,_T("Update.ini"),0,NULL); 27. 28.FILE*pFile=_wfopen(L"update.ini",L"r"); 29.if(!pFile) 30.return-1;//如果打开文件失败,则返回。 31. 32.char UpdateInfo[10];//变量存储“update.ini”中的信息 33.memset(UpdateInfo,0,10); 34.fgets(UpdateInfo,10,pFile);//从下载回来的升级配置文件中读取版本号 35.fclose(pFile); 36. 37.int UpdateVersion=atoi(UpdateInfo);//atoi函数返回 (const char*_Str)参数转化为int的值。 38. 39.if(UpdateVersion>MYVERSION)//判断现有版本是否大于程序自身版本 40.{ 41.//MessageBox(NULL,_T("发现新版"),_T("在线更新 "),MB_ICONINFORMATION); 42.URLDownloadToFile(NULL,_T("http://127.0.0.1/AutoUpdate.exe")/* 升级文件链接,请根据实际自行修改*/,TempFileName,0,NULL); 43. 44.PROCESS_INFORMATION PI; 45.STARTUPINFO SI; 46.memset(&SI,0,sizeof(SI)); 47.SI.cb=sizeof(SI); 48.if(CreateProcess(TempFileName,L"/install",NULL,NULL,FALSE,N ORMAL_PRIORITY_CLASS,NULL,NULL,&SI,&PI)) 49.//启动升级程序后退出 50.ExitProcess(0); 51.}

安全补丁更新流程

安全补丁更新流程 Prepared on 24 November 2020

远东宏信有限公司 安全补丁更新流程修订记录

目录 第1章介绍 1.1. 基本概念 未及时进行安全补丁更新的系统或软件很容易遭受的攻击,并导致未授权访问、系统拒绝服务,进而导致信息泄露、业务中断等重大安全事故的发生。然而,补丁的更新不当甚至可能带来比网络攻击更大的安全事故。因此保障各类补丁及时、安全、稳妥地更新安装是保障信息系统安全的重要手段。 补丁经常会由于以下三种原因而进行发布: 1)修补应用程序或操作系统的漏洞。许多黑客通过缓冲区溢出对应用程序和操作系统 进行网络攻击。通过补丁的安装能够对这类漏洞进行很好的修补。补丁也常常会由 于修正系统的功能问题进行发布。

2)改变功能或更新特征库等从而对新的安全威胁进行检测。 3)修改软件的配置使它更加的安全。 1.2. 用途和目标 遵照变更流程文档进行安全补丁更新能够降低系统的安全隐患发生的可能。安全补丁更新流程文档提供了对变更流程中补丁更新所涉及的步骤进行说明,使系统安全管理专员能够更好地依照变更流程的规定对各种补丁进行更新操作,并保证其有效性、稳定性和安全性。 但是安全补丁更新流程文档并不会说明指定的补丁是怎样对漏洞进行修补从而降低安全风险的。 本流程的目标是: ●规范不同操作系统、应用程序、硬件设备系统的补丁定期检查。 ●确认补丁安装的需求和申请的步骤。 ●提供补丁更新流程在变更流程中所涉及的各项细化表格。 ●规定各安全相关职员在补丁更新中的职责。 1.3. 范围 下面表格说明了哪些远东宏信内部操作系统、应用软件、硬件设备的升级更新属于安全补丁管理的范围,哪些不是。 表格1:安全补丁管理范围

自动更新程序设计实现思路

自动更新程序设计实现思路 由于业务需要,以前的单个文件自动升级无法满足当前的普遍需要,必须想做一种懒人的自动升级办法,也就是每次程序启动前必须进行实时更新后才可以运行程序。 若准备让客户端程序实施自动更新,必须的前提条件是: 1.专用更新服务器支持。 2.客户端每次启动的时候都检查更新。 详细的分,应该如下: 服务器端: 1自动更新服务器可单独架设,也可和其他服务器一起使用。 2 自动更新服务器必须维护一个更新列表。比如说是Update.XML。列表内维护需要监视更新的文件名称,版本号。 3 服务器端必须可以根据目录内文件内,自动生成Update,XML文件。 客户端: 1.客户端每次启动前都必须检测服务器当前版本号,务必使每次更新后 及时的进行更新至最新版本。 2.客户端自动更新在主程序之前运行,自动连接到服务器,并下载服务 器的文件列表。 3.将下载的文件列表与本地列表相比较,若有不同,则自动更新不同的 内容。下载至临时目录。下载完毕后复制到程序目录。 为了证明以上思路是否可行,必须拿一个现成的自动升级来分析分析.正好今日在玩一款游戏,暂就拿他分析分析看看这款游戏是如何做的自动升级. 自动升级—— 服务端维护一个程序全部的列表,程序自动将服务端的列表下载到本地,并且读取文件名和mod5 例如:https://www.doczj.com/doc/20350810.html,/update/gamecity/lobby/files.dat 在服务器维护了一个完整的安装包,安装包内涵盖了全部升级所需要的文件。。。。 基本上升级的事情已经分析的差不多了。。。。 1.客户端启动游戏的时候,首先启动的是自动升级的程序,自动升级的程序 自动到网站上下载一个全部文件的列表表单和MD5码。。。 2.通过分析和比较以上MD5是否相同,如果不相同就调用自动升级。。。。 3.自动下载到指定的目录下,然后关闭自动升级,并且同时启动主程序。。。。。 网站更新目录: https://www.doczj.com/doc/20350810.html,/update/ 列表表单

相关主题
文本预览
相关文档 最新文档