找回密码
 加入
搜索
查看: 9762|回复: 17

[AU3基础] [已解决]如何在不中断程序运行的情况下实现程序的更新

 火.. [复制链接]
发表于 2012-4-29 16:11:49 | 显示全部楼层 |阅读模式
本帖最后由 xyold1 于 2012-4-29 17:08 编辑

手动的办法是先将程序重命名,再复制更新的文件
现在想做一个脚本更新,无奈不知如何重命名,或者有没有更好的办法呢

下面找到的_FileRename试了下也不能重命名正在使用的文件,强制删除也不行
Func _FileRename($fr_FullPath, $fr_Rename)
    If $fr_Fullpath = "" Then
        Return -1
    ElseIf $fr_Rename = "" Then
        Return -1
    ElseIf Not FileExists($fr_Fullpath) Then
        Return -1
    Else
            ;返回所执行命令的退出代码
        Return _RunDOS("ren """& $fr_FullPath &""" """& $fr_Rename &"""")
    EndIf
Endfunc
发表于 2012-4-29 16:19:32 | 显示全部楼层
回复 1# xyold1
楼主有点异想天开了吧?
Windows下面, 正在运行的程序怎么能够改名?
 楼主| 发表于 2012-4-29 16:23:57 | 显示全部楼层
回复 2# user3000
我无知了?
发表于 2012-4-29 16:35:12 | 显示全部楼层
回复 3# xyold1

你应该有玩过游戏吧?
一个游戏其实有很多EXE, 有专门用来更新工作的EXE, 有的还分登录用的EXE; 每个游戏都有个主程序.
大多数游戏进行更新时是不能玩的, 正是这个道理. 现在有些游戏开发了一边玩一边下载更新内容的功能,
但也仅仅是下载, 为将来的更新作准备而已.
 楼主| 发表于 2012-4-29 16:54:26 | 显示全部楼层
回复 4# user3000


    亲,比方不是这么打的,游戏更新的时候 不能玩,那可能是因为服务器也要做想应的更新,不等于玩的时候不能更游戏
 楼主| 发表于 2012-4-29 17:07:52 | 显示全部楼层
唉,上面的函数可以,原来第二个参数只传文件名就行了...
发表于 2012-4-29 17:10:45 | 显示全部楼层
回复 5# xyold1
好吧, 最后再多说两句.
我在网吧工作, 自然少不了做更新游戏的事情.
有时打开某个游戏后会看到这样的提示: 游戏登录器需要重启以便进行更新!
我确定此信息后, 它会关闭, 然后有新信息提示正在安装, 完了, 又重新打开该新登录器!

我自问没有足够的理论跟你讨论这问题, 但看了你5楼的回复, 我心底却真是认为你是无知的了.
发表于 2012-4-29 17:30:04 | 显示全部楼层
那应该更新的是游戏的一些资源文件吧 并非主程序 比如这个 test.txt你可以随时更新 但正在运行的主程序是无法直接更新的
While 1
        ConsoleWrite(FileRead("Test.txt")&@CRLF)
        Sleep(5000)
WEnd
 楼主| 发表于 2012-4-29 17:48:28 | 显示全部楼层
最后再说一句,正在运行的主程序是可以更新的,方法是将其重命名,再复制要更新的文件,重命名函数就是上面的函数  over over
大家别再说不能更新什么的了
发表于 2012-4-29 17:51:35 | 显示全部楼层
本帖最后由 user3000 于 2012-4-29 17:53 编辑

回复 9# xyold1

楼主, 请发下简洁代码上来, 给个学习机会?
或者, 让我见证你的程序(已编译成EXE!!!)不是在退出运行的情况下实现改名的?

因为, WINDOWS向来是禁止给正在运行的程序重命名的.
 楼主| 发表于 2012-4-29 17:53:41 | 显示全部楼层
回复 10# user3000

一会发源码
 楼主| 发表于 2012-4-29 18:12:43 | 显示全部楼层
发表于 2012-4-29 18:53:05 | 显示全部楼层
回复 12# xyold1
经过测试, 在程序一直运行时,的确可以修改程序自身的命名!
简直是创建伪进程的一大利器!从进程里看到了还是原名字, 但实质上该进程的文件已经被改名! 原进程EXE已被重命名!

感谢楼主, 又学习了新知识!
发表于 2012-5-20 06:32:59 | 显示全部楼层
楼主真是高人啊!
发表于 2014-5-2 22:04:58 | 显示全部楼层
楼主真是高人啊!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 12:29 , Processed in 0.085200 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表