请教软件开发中如何开发 工具的更新升级模块!!!!!!

wintersing 2008-12-24 11:03:13
请教各位大虾:

如果在工具运行状态下,用户检查更新升级工具 ,此时可以到指定的服务器下载新版本的工具覆盖本地安装对应目录

但有一点想不通 ,执行程序 **.exe 复制过来的话在当前工具运行状态下是无法覆盖的?????

该如何处理呢???请教大虾们???
...全文
91 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
playguy 2009-06-18
  • 打赏
  • 举报
回复
试试随心智能升级,支持进程与服务程序的升级,也支持自身的升级。
pomelowu 2008-12-25
  • 打赏
  • 举报
回复
转错了,本来想转进程版……
glacierful 2008-12-25
  • 打赏
  • 举报
回复
学习学习。
ilovedrv 2008-12-25
  • 打赏
  • 举报
回复
开一个监视进程,在网上下载更新文件后,关闭要升级的程序,用监视进程进行程序升级
scq2099yt 2008-12-25
  • 打赏
  • 举报
回复
可以把程序分开下过来,然后更新的过程中做一个关闭程序重新启动的操作
oyljerry 2008-12-25
  • 打赏
  • 举报
回复
有些并没有当时就覆盖,而是重启以后再覆盖
MoveFileEx REPLACE_FILE_AFTER_REBOOT
roadblossom 2008-12-25
  • 打赏
  • 举报
回复
up
cnzdgs 2008-12-24
  • 打赏
  • 举报
回复
启动另一个程序来执行更新功能,自己退出。
lyserver 2008-12-24
  • 打赏
  • 举报
回复
给你一段可执行文件自删除的代码,LZ可在此基础上实现更新升级:
BOOL DelMe()
{
SHELLEXECUTEINFO sei;

TCHAR szModule[MAX_PATH],szComspec[MAX_PATH],szParams[MAX_PATH];

if((GetModuleFileName(0,szModule,MAX_PATH)!=0) &&
(GetEnvironmentVariable("COMSPEC",szComspec,MAX_PATH)!=0))
{
lstrcpy(szParams,"/c del");
lstrcat(szParams,szModule);
lstrcat(szParams," > nul");

sei.cbSize = sizeof(sei);
sei.hwnd = 0;
sei.lpVerb = "Open";
sei.lpFile = szComspec;
sei.lpParameters = szParams;
sei.nShow = SW_HIDE;
sei.fMask = SEE_MASK_NOCLOSEPROCESS;

if(ShellExecuteEx(&sei)) {
SetPriorityClass(sei.hProcess, IDLE_PRIORITY_CLASS);
SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL);

SHChangeNotify(SHCNE_DELETE,SHCNF_PATH,szModule,0);
AfxMessageBox("ÎļþÒÑɾ³ý!");
return TRUE;
}
}
return FALSE;
}
ccpaishi 2008-12-24
  • 打赏
  • 举报
回复
可以把程序分开下过来,然后更新的过程中做一个关闭程序重新启动的操作

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧