| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2170 人关注过本帖
标题:关于拷贝程序(覆盖)的问题
只看楼主 加入收藏
天狼剑星
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2010-11-11
结帖率:72.73%
收藏
 问题点数:0 回复次数:2 
关于拷贝程序(覆盖)的问题
大家好,请教一个问题
在软件(以A.EXE表示)的main.prg里,先行判断是否有更新的版本,如果有,则退出当前程序,运行升级软件(以B.EXE表示)
A.EXE 的相关语句:MESSAGEBOX("系统需要升级,请按确定后自动更新!",48,"系统提示信息")
          close all
          CLEAR EVENTS
          RUN /n B.exe
          QUIT


B.EXE 的思路:从共享的网络路径里,把新版的A.EXE复制到本地,覆盖原来的A.EXE,然后再关闭自己,运行新的A.EXE

碰到的问题:运行A时,若检测到有更新的版本,运行B.EXE之后,无法覆盖拷贝A.EXE,提示“无法复制A.EXE”
            但若是从项目管理器里运行,则可以完成,或者直接运行B.EXE,也是可以完成

猜测:是不是A.EXE,在做RUN /n B.exe之后,自身并未退出干净,尚有进程存在,以至无法覆盖拷贝?
      如果是,帮我看看语句是不是有什么问题? 怎么调整可以解决? 或者在运行B.exe的时候,要先检查一下是否有A.EXE的进程存在?如果结束它?

希望大侠们能看的懂我的描述并请帮忙支招,谢谢!

搜索更多相关主题的帖子: 软件 检测 close 提示信息 
2016-04-21 15:38
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
          close all
          CLEAR EVENTS
          RUN /n B.exe
messagebox(11111)
          QUIT

看看运行B后有无提示11111?
2016-04-21 15:49
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
VFP帮助有这说法,看看有无关系:
如果您计划发布适合于 Windows 合格证标识(Logo certification) 的应用程序,则不应使用 RUN 命令,因为该命令可能潜在的与系统组策略要求发生冲突。应该使用带有 ShellExecuteEx.API 的 DECLARE DLL 命令作为替代。
2016-04-21 15:53
快速回复:关于拷贝程序(覆盖)的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025052 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved