cab包安装完毕后,如何让系统自动重启?

acejoy 2010-05-24 05:45:37
因为程序需要重启后才能生效,所以做了如下操作:
自己定制了一个setup dll,在
SETUP_API codeINSTALL_EXIT Install_Exit(
HWND hwndParent,
LPCTSTR pszInstallDir, // final install directory
WORD cFailedDirs,
WORD cFailedFiles,
WORD cFailedRegKeys,
WORD cFailedRegVals,
WORD cFailedShortcuts
)
里面加上了:
//重新启动
ExitWindowsEx(EWX_REBOOT, 0);

但是这样做是有问题的,那个cab包文件,被系统锁住了,无法删改移动。

有没有办法用另外的方式达到目标?
...全文
215 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
md16888 2010-06-02
  • 打赏
  • 举报
回复
重新启动可以这样写:

PROCESS_INFORMATION pi = {0};
DWORD dwRes = 0;
codeINSTALL_EXIT cie = codeINSTALL_EXIT_DONE;
TCHAR szApp[200];
swprintf(szApp, L"%s\\你的应用程序的名称.exe", pszInstallDir);
CreateProcess(szApp, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, &pi);
ro1ck 2010-06-01
  • 打赏
  • 举报
回复
mark
无聊客 2010-05-31
  • 打赏
  • 举报
回复
......
无聊了,所以来看看:)
载舟之水 2010-05-28
  • 打赏
  • 举报
回复
因为它开始无聊了。。。
Rolei_kezhu 2010-05-28
  • 打赏
  • 举报
回复
关注下
项目中也正在做这个需求
ProgrammerNO1 2010-05-28
  • 打赏
  • 举报
回复
无聊客回来啦?
iqlife 2010-05-27
  • 打赏
  • 举报
回复
在安装包中加个小程序安装到目录,安装完后调用关机程序即可
peng_qi2008 2010-05-27
  • 打赏
  • 举报
回复
做个定时器,等返回后过了2秒 在调用重启功能
无聊客 2010-05-27
  • 打赏
  • 举报
回复
SETUPDLL去调用一个另外的程序,然后另外的程序弹出一个提示框询问用户是否重新启动,这个应该不影响SETUP过程。。。
xmsheji 2010-05-27
  • 打赏
  • 举报
回复
步骤:
1.定制setup.dll,让其有重启功能
2.在项目属性中的ce setup 加入setup.dll

jianhenjh 2010-05-24
  • 打赏
  • 举报
回复
不知道,顶一下
acejoy 2010-05-24
  • 打赏
  • 举报
回复
发现这样操作后,系统重启了,但是那个原始的安装包,无法做文件的删除/转移操作了。我估计是setup dll中,那个方法返回值有问题,因为重启就没有继续返回正确的数值,导致出错。
我只想在安装完毕后,提示用户,点击OK就重启,并不想去影响原始的安装包。但是现在看在dll中,无法使用安装后重启的方法了。
不知道是否有其他办法能做到。即使是在setup dll中执行另外的程序,重启机器,也有不足。就是setup dll中,返回值是否能正确处理,是不确定的。
世外涛缘 2010-05-24
  • 打赏
  • 举报
回复
楼主是在Install_Exit中删除cab么?
这样肯定不行,可以在cab中再做个小程序,让其随系统启动执行,来完成删除cab的操作。

7,660

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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