标题:关于拷贝程序(覆盖)的问题
只看楼主
天狼剑星
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
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
VFP帮助有这说法,看看有无关系:
如果您计划发布适合于 Windows 合格证标识(Logo certification) 的应用程序,则不应使用 RUN 命令,因为该命令可能潜在的与系统组策略要求发生冲突。应该使用带有 ShellExecuteEx.API 的 DECLARE DLL 命令作为替代。
2016-04-21 15:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463944-1-1.html




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

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