N NetAnts Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-27 #1 1、假如a.exe正在运行,版本是v1.0;<br>2、执行a.exe(v2.0),则自动将正在运行的v1.0删除,替换为v2.0(包括正在运行的程序和磁盘上的文件都替换);<br>3、如果执行的版本是相同的,则无需替换;<br><br>请问以上功能可以实现吗?怎么实现?
1、假如a.exe正在运行,版本是v1.0;<br>2、执行a.exe(v2.0),则自动将正在运行的v1.0删除,替换为v2.0(包括正在运行的程序和磁盘上的文件都替换);<br>3、如果执行的版本是相同的,则无需替换;<br><br>请问以上功能可以实现吗?怎么实现?
C Crab Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-27 #2 将 a.exe 无关紧要、基本不动的部分做成 exe,可能更新的部分做成 dll, <br>升级时一检查有旧版本,就把原来的 dll 替换成新版本的。<br>但如果你的 1.0 Dll 已被装入,就不行了。
将 a.exe 无关紧要、基本不动的部分做成 exe,可能更新的部分做成 dll, <br>升级时一检查有旧版本,就把原来的 dll 替换成新版本的。<br>但如果你的 1.0 Dll 已被装入,就不行了。
C chaoro Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-27 #5 最好负责升级部分和运行部分开,否则不好玩。
N NetAnts Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-28 #6 怎么判断正在运行的这个程序的版本是1.0还是2.0呢?<br>怎么取得正在运行的和即将运行的版本这两个程序的版本号进行比较呢?
H hoke Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-28 #7 可以用GetFileVersionInfo取得版本信息:<br>s := GetFileVersionInfoSize(pchar(Application.Exename), cardinal(dump));<br>GetFileVersionInfo(Pchar(Application.Exename), 0, s, buffer);
可以用GetFileVersionInfo取得版本信息:<br>s := GetFileVersionInfoSize(pchar(Application.Exename), cardinal(dump));<br>GetFileVersionInfo(Pchar(Application.Exename), 0, s, buffer);
H honghs Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-29 #8 难道你不知道有个东西叫注册表的吗?,你的应用程序把版本信息写到注册表中,应用程序中也有个版本标识。然后2。0运行的时候去检查一下注册表表中的版本号,如果小的话,你应该知道如何做了吧<br>:先看看旧应用的path,要不谁知道拷贝到那个鬼目录下。然后要判断旧应用是否在运行,如果正在运行,则提示是否终止运行,就把新的应用拷贝到旧应用的目录下,当然最后不要忘记更新注册表中的版本信息。<br>应用和升级程序分开来做是最容易做到的。
难道你不知道有个东西叫注册表的吗?,你的应用程序把版本信息写到注册表中,应用程序中也有个版本标识。然后2。0运行的时候去检查一下注册表表中的版本号,如果小的话,你应该知道如何做了吧<br>:先看看旧应用的path,要不谁知道拷贝到那个鬼目录下。然后要判断旧应用是否在运行,如果正在运行,则提示是否终止运行,就把新的应用拷贝到旧应用的目录下,当然最后不要忘记更新注册表中的版本信息。<br>应用和升级程序分开来做是最容易做到的。