在VFP中实现程序自动升级

VFP 6.0 故障解决两篇 一,运行VFP6.0写的程序,提示"资源文件版本不匹配"安装了一个用VFP开发的应用程序,运行它提示“资源文件版本不匹配”,无法运行,并且运行其他以前的用VisualFoxpro开发的应用程序也出现这样的问题,卸载后也还是一样,重新安装VFP5.0或6.0也不管用,尝试以下方法中的一种或多种: ---------------------------------------------------- 阅读详情

在VFP中实现程序自动升级

来自:http://huanqiu.51.net/VFP/26.htm

在开发和使用C/S工作方式的程序时,经常会遇到程序升级的问题,以前经常是用人工方式拷贝升级,这在网络变得日益庞大时显得十分烦琐。能不能像许多网络程序一样,在程序更新时自动更新本地程序呢?笔者经过两天时间,参考了一些资料,在VFP下实现了程序的自动升级功能。基本思路是通过升级程序自动从指定的FTP服务器中下载升级文件来更新程序。程序的基本运行环境:VFP7+Win98(Win2000),服务端:FTP服务器,程序运行正常。对于VFP5以上程序应该可以运行,但没有测试。在其他语言下实现方法应该是相同的。

第一步

    判断程序是否需要升级。最简单的方法是在程序中设定一个版本常量,在程序启动时和远端库中设定的程序最新版本号进行比较。如果比远端库中的版本号旧,则执行升级程序。由于正在运行的程序是不能覆盖的,因此需要一个单独的升级程序来进行升级工作。假定此程序的名字是update.exe,也用VFP编译,则在主程序中须通过以下方法运行此升级程序:

    DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER , STRING , STRING , STRING , STRING ,INTEGER

    = SHELLEXECUTE(0,0,'update.exe',0,0,1)

    同时用quit命令来退出主程序。

第二步

    利用升级程序进行更新。主要升级的程序如下(在使用中需要根据实际情况修改以下程序中用中文说明的地方。为了美观和实际使用的方便,可以建立一个表单,来实现升级服务器的选择、用户名和密码的输入)。

    #Define INTERNET_INVALID_PORT_NUMBER 0

    #Define INTERNET_OPEN_TYPE_DIRECT 1

    #Define INTERNET_OPEN_TYPE_PROXY 3

    #Define INTERNET_DEFAULT_FTP_PORT 21

    #Define INTERNET_FLAG_ASYNC 268435456     && &H10000000

    #Define INTERNET_FLAG_FROM_CACHE 16777216 && &H1000000

    #Define INTERNET_FLAG_OFFLINE 16777216

    #Define INTERNET_FLAG_CACHE_IF_NET_FAIL 65536    && &H10000

    #Define INTERNET_OPEN_TYPE_PRECONFIG 0

    #Define FTP_TRANSFER_TYPE_ASCII 1

    #Define FTP_TRANSFER_TYPE_BINARY 2

    #Define INTERNET_SERVICE_FTP 1

    #Define INTERNET_SERVICE_GOPHER  2

    #Define INTERNET_SERVICE_HTTP    3

    #Define FILE_ATTRIBUTE_NORMAL    128    && 0x00000080

    Declare INTEGER InternetOpen IN wininet;

    STRING sAgent, INTEGER lAccessType, STRING sProxyName,;

    STRING sProxyBypass, STRING  lFlags

    Declare INTEGER InternetCloseHandle IN wininet INTEGER hInet

    Declare INTEGER InternetConnect IN wininet;

    INTEGER hInternetSession, STRING  sServerName,;

    INTEGER nServerPort, STRING  sUsername,;

    STRING  sPassword, INTEGER lService,;

    INTEGER lFlags, INTEGER lContext

    Declare INTEGER FtpGetFile IN wininet;

    INTEGER hFtpSession, STRING  lpszRemoteFile,;

    STRING  lpszNewFile, INTEGER fFailIfExists,;

    INTEGER dwFlagsAndAttributes,;

    INTEGER dwFlags, INTEGER dwContext

    sAgent = ""var1""

    sProxyName = Chr(0)

    sProxyBypass = Chr(0)

    lFlags = 0

    hOpen = InternetOpen (sAgent, INTERNET_OPEN_TYPE_DIRECT,;

    sProxyName, sProxyBypass, lFlags)

    If hOpen = 0

    =MESSAGEBOX(""找不到库 WinInet.Dll 的入口"",16,""  警告"")

    Return

    Endif

    *在此修改自己的FTP服务器数据

    strHost = ""ftp.abc.com""  &&存放升级文件的FTP服务器地址

    strUser = ""user""  &&升级的FTP用户名

    strPwd  = ""1111""  &&FTP用户密码

    hFtpSession = InternetConnect (hOpen, strHost,;

    INTERNET_INVALID_PORT_NUMBER,;

    strUser, strPwd,;

    INTERNET_SERVICE_FTP, 0, 0)

    If hFtpSession = 0

    = InternetCloseHandle (hOpen)

    =MESSAGEBOX(""找不到指定的服务器"",16,""  警告"")

    Return

    Endif

    *以下设置FTP的路径和文件名

    lpszRemoteFile = ""/aaa.exe""           && FTP上的路径和文件名

    lpszNewFile = ""./aaa.exe""          && 下载到本地的路径和文件名,默认在同一目录中

    fFailIfExists = 0        && 如果此文件已经存在,直接进行覆盖,不提问

    dwContext = 0

    lnResult = FtpGetFile (hFtpSession, lpszRemoteFile, lpszNewFile,;

    fFailIfExists, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_ASCII,;

    dwContext)

    = InternetCloseHandle (hFtpSession)

    = InternetCloseHandle (hOpen)

    If lnResult # 1

    =MESSAGEBOX(""升级失败!请检查用户名和密码是否正确。"",16,""  警告"")

    ELSE

    =MESSAGEBOX(""升级成功!请退出升级程序。"",64,""  提示"")

    thisform.Release      &&升级成功可自动离开表单

    Endif

    Return

第三步

使用和调用升级程序相同的方法,运行主程序退出升级程序,完成程序的升级过程。

两张表自动对比更新VFP程序 两张表自动对比更新两张表自动对比更新两张表自动对比更新两张表自动对比更新两张表自动对比更新 立即下载

相关推荐

C/S程序版本控制(自动更新)工具

C/S客户端版本自动升级工具,使用http协议,详细请看附件中的说明文档。

基于HTTP的自动升级程序VFP版本,CS,中间层都可用

有很多狐友问我自动升级怎么搞,大家对这个需求还是比较迫切的,我现在把自用这套重新改进了一下,分享给大家,使用起来非常简单。 首先打开自动升级程序组件文件夹,可以看到 服务端和客户端 服务端需要发布到IIS中 具体看发布文档 客户端融合说明 1. 放于主程序中调用文件夹下面有个update_jxc.prg 2. 把它复制你的项目文件夹中,并在VFP项目管理器中添加 主程序调用update_jxc.prg 连编成exe 将exe和其它必须的文件放在一个文件夹中 将第一步中的其它文件复

加菲猫的VFP 502

vfp全国彩票彩种每期开奖号码网络自动更新数据程序代码

除球类外的全国彩种,如该网站升级变更网页代码,此程序也许不能再用。可以让自己程序中的彩票每期开奖号码自动更新。

VFP程序的进步

1 在VFP程序的主窗口中,呈现或取消工具栏后,有效窗口的面积会发生变化,如果原来放置一窗口,需要重新设定窗口的大小,最简单的办法就是设置那个窗口的windowstate属性为2(最大化)2 变量的传递,一种办法是设定全局变量,另一办法是增加_screen中的属性_screen.addproperty(属性名,值)

蓝机灵的专栏 901

VFP写的非常详细的C/S架构的实验,包括文件升级

本例以简单的通讯录为例,说明客户端如何与服务端连接,如何向服务端读取、修改、添加、删除数据。

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5

H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享!

m0_74823947的博客 3096

VFP开发的C/S模式的程序如何实现自动升级功能

最近用VFP开发的C/S模式的信息管理程序,由于公司有自己的VPN网路,系统的用户遍布国内外,所以急需要开发一个实现自动升级功能,这样我就可以随时发布信息的补丁包和新开发的功能了。

Watson的专栏 4089

ArcGISPro小白必看:5分钟搞定3D地形图制作(附免费数据源)

本文为ArcGISPro初学者提供5步制作专业3D地形图的完整指南,涵盖免费数据获取、项目初始化、数据预处理、3D场景构建和成果输出等关键步骤。特别推荐使用NASA的SRTM高程数据和吉林一号卫星影像,帮助用户快速掌握3D地形图制作技巧,适用于教学演示和科研分析。

weixin_28314575的博客 239

利用猫框Qiyu_HttpClient类在VFP中生成微信小程序码

最近用VFP在做MES+微信小程序结合的项目,期中有一项需求是:扫描报工二维码进行生产报工,要求在MES中生成报工小程序二维码码,在小程序中和微信中扫描该二维码都能跳转小程序相关页面。进入小程序中再扫码跳转到相关页面的功能,在微信开发者工具很快就实现了,但在做直接用微信扫报工码进入小程序再跳转到相关页面的功能时,一波三折着实费了好大劲,最终在曾老师的点拨和猫框的加持下顺利完成。现在将整个曲折的开发...

加菲猫的VFP 1219

Mem0 vs LangMem vs Letta:三大AI记忆框架实战对比(附代码示例)

本文深入对比了Mem0、LangMem和Letta三大AI记忆框架的核心特性与适用场景。Mem0提供开箱即用的记忆管理服务,适合快速集成;LangMem深度融入LangGraph生态,适合复杂工作流;Letta则采用虚拟内存系统,旨在突破上下文窗口限制。文章通过实战代码示例,为开发者选择适合其业务需求的AI记忆解决方案提供了清晰指南。

g9h0i1的博客 679

【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现

摘要:YOLOv4在目标检测领域实现了精度与速度的平衡,通过CSPDarknet53骨干网络、SPP+PANet特征融合及CIoU损失函数等创新,在MS COCO数据集达到65.7% AP50,V100显卡实现62FPS实时检测。核心优化包括Mosaic数据增强、自对抗训练和解耦头结构,显著提升小目标检测和遮挡场景鲁棒性。代码实现采用CSP模块和SPP多尺度池化,兼顾计算效率与检测性能,为工业落地提供高效解决方案。(149字)

一碗白开水一 1358

我为什么一直在用VFP

(这也是个老话题。) 时光荏苒,信息技术一日千里,软件开发已经差不多到了“模糊语言”的境界,开发语言本身特质的重要性越来越低,而超语言的需求分析、概念设计、项目管理、多工具综合能力越来越重要。 VFP是上个世纪80年代未的产品,开始时风头并不逊C++、Pascal、Basic多少。但从2000年中以后无论是软件开发能力还是数据库管理能力,除了引入SQL和面向对象,VFP就没有什么大升级。 就

工作、学习笔记 2298

数学工具箱:Clarke与Park变换

本文详细解析了FOC(磁场定向控制)中的核心数学工具——Clarke变换与Park变换。首先阐述了坐标变换的必要性:将复杂的三相交流系统简化为直流系统,便于精确控制。Clarke变换将三相静止坐标系转换为两相静止坐标系,减少变量数量;Park变换进一步将两相静止坐标系转换为两相旋转坐标系,实现交流量到直流量的转换。文章提供了两种变换的数学公式、物理意义图解及C语言实现代码,并简要介绍了逆变换过程。这些变换为电机控制提供了关键的数学基础,后续将结合GD32F303的FPU特性进行优化实现。

汽车电子软件领域知识分享 178

Vfp实现向钉钉群发送消息,消息提醒不错过

作者:中河我在工作是见到过python、jave、php实现发送消息至钉钉群,觉得蛮好用的,一次消息通知多少人。搜了一圈没有发现我们VFP是怎么打通调用,那我们vfp程序能不能实现这样的功能呢?答案是肯定的,那我就来填坑写上一个,可以通过猫框轻松实现,步骤和代码如下:首先我们要获得钉钉Hook地址,具体操作步骤:任意一个钉钉群–> 群设置–> 添加机器人–> 自定义机器人命名–&...

加菲猫的VFP 334

华为OD机试 - 机器人活动区域(Python/JS/C/C++ 双机位C卷 200分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。现有一个机器人,可放置于 M × N的网格中任意位置,每个网格包含一个非负整数编号。当相邻网格的数字编号差值的绝对值小于等于 1 时,机器人可在网格间移动问题:求机器人可活动的最大范围对应的网格点数目。说明:1)网格左上角坐标为 (0, 0),右

学Java,找哪吒 1432

视频压缩的工作原理

当你正在观看你最喜欢的节目,出现缓冲的时候,这是什么原因?当 Wi-Fi 带宽不足以下载传输视频流所需的数据时,就会发生缓冲。也有可能是视频网站发布了未压缩版本的视频文件,因此视频文件太大而无法流畅地流式传输。在高清模式下,图像分辨率为1080x1920像素,如果我们想象一个视频由许多这些图像组成,称为帧,那么 Wi-Fi 连接必须多快才能播放24帧/秒?答案是超1000兆,没错。由于每一帧都是48兆比特的数据,它实际上需要48×24每秒兆比特 (Mbps) 以观看视频24帧/秒。

学以致用 知行合一 1280

VFP控制键鼠的组件,电脑自动填报,我刚好可以喝杯咖啡

最近同事有填报价格的,一万多条记录,从EXEL填到软件里面。想着做一个工具,简单操作,又不容易出错。拉出猫框,随意做一个表单。价格选择按钮 click功能:导入EXCELlcfile=Getfile("XLS,XLSX") If !File(lcfile) Wait "文件不存在" Windows Return .F. Endif xx=newobject("importexcel",...

加菲猫的VFP 197

利用XGBoost实现短期电力负荷预测

本数据集为某地区2009年-2015年的用电负荷,时间片为每分钟这里我们定义了XGB模型作为实例,来进行模型训练,之后我们会对其使用网格搜索找到最优的参数。

优快云 精品推荐 4495

VFP右键功能

用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。用其他语言做的软件,其TEXT、EDIT、COMBOX等都有右键功能, 即一按右键就会在其对象旁弹出一个这样的菜单(见右图), 惟独VFP做的程序没有,您说气不气人。微信小程序,微信公众号开发,H5 APP开发,Extjs BS开发,VFP面向对象进阶,VFP中间层开发。"VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发"_med_copy "复制(C)"

加菲猫的VFP 87

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

揭密VFP顶层菜单的秘密,精准控制

我们平常使用顶层菜单,就是用菜单设计器设计好,再在顶层表单中加载,那我们需要更精准去控制控件。如果你想控制菜单是否可用,可以使用但这个加载教程是个半吊子,若想精准控制,无从下手,那么秘密藏在哪里呢?经过猫猫一下午的摸索,终于摸出它的秘密了。首先要弄明白菜单项各项的组成一级是顶层菜单,即菜单本身可以看出第一排菜单,它是顶层菜单,他有六个菜单项即PAD。我们以VFP开发环境的菜单为例来做控制说明。控制...

加菲猫的VFP 864

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

vfp报表纸张设置_VFP 9.0中实现多种自定义纸张格式的报表打印

VFP9.0中实现多种自定义纸张格式的报表打印徐小栋【期刊名称】《福建电脑》【年(卷),期】2009(025)001【摘要】该文叙述了在VFP9.0开发的应用程序中,利用报表设计器设计的各种非WINDOWS标准页面大小的报表,在WINDOWS2003/XP下如何打印的问题.通过在WINDOWS2003/XP的"打印机和传真"窗口中设置"服务器属性",创建多种自定义纸张规格和修改VFP报表文件,在...

weixin_33477290的博客 1020

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

vfp 什么是VFP?

<br />vfp 什么是VFP?<br /> Visual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。<br /> FoxBase采用命令行方式(为了和当时流行的数据库软件dBase兼容……)但是速度比当时其他的数据库软件要快。<br /> VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。它提供了功能

风无痕 4301

vfp9sp2 最新升级补丁

主要是修复了报表中数据分组的一些问题,升级后版本号为 7423。 可惜这个补丁做得实在不如人意,居然只是一个简单的自解压包而无安装程序,解压后还要自己将他们复制到合适的位置。 运行时库安装程序下载:VFP9SP2(Rev.7423), VFP8SP1(Rev.3117), VFP7SP1(Rev.9465), VFP6(Rev. 8862)

都市夜猫的专栏 2373

Vfp6的几个函数

几个为Vfp6写的函数,单位系统用vfp6开发。不打算升级的Vfp9.针对现在互联网时代所写的几个函数   Func Strextract(cSearchExpression, cBeginDelim , cEndDelim , nOccurrence)  *!* *******************************************  *!* Create By Alan

bill20100829的博客 1345
上一篇: 走出ERP误区
下一篇: 粘贴VFP顶层表单技巧
vin2000
博客等级 码龄22年 22粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值