(ShellExcute)如何延迟几秒后打开一个程序?

上岸の鱼 2010-12-10 03:17:46
如题,例如通常我们用:ShellExecute(0, _T("open"), strProgramPath, 0, 0, SW_SHOWNORMAL);来打开程序,但我希望这个函数能够在延迟一些时间(如5秒)再打开,那么能通过设定这个ShellExecute的参数来实现么?
或者大家有能够实现的方法也可以。

注:不能再调用ShellExcute的线程里Sleep。因为我做这个延迟打开的原因是做一个重启功能,程序只允许运行一个实例,而程序关闭退出稍微有点慢,比如6,7秒,我新打开的程序必须得等到原本的程序确切关闭后才可以。

欢迎各位大虾指点迷津
...全文
265 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guogy 2010-12-14
  • 打赏
  • 举报
回复
调用前可以先sleep个几秒,应该也能达到预期的效果……
上岸の鱼 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yihandrensunyong 的回复:]
程序关闭慢。?能不能跟到最后关闭的那一步 在那里在ShellExecute()或者 你程序启动前可以先SLeep
[/Quote]

这位兄台,那个我已经做好了,CSDN不知道怎么不提示我帖子有回复,唉,,结果我的方法就是你这样实现的
上岸の鱼 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luciferstar 的回复:]
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL ;
ShExecInfo.lpVerb =NULL;
ShExecInfo.lpFile = ……
[/Quote]

这位仁兄,方法让我眼前一亮呀。。哈哈,不错,虽然那个我已经做好了,但你的方法值得学习呀
yihandrensunyong 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luciferstar 的回复:]
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL ;
ShExecInfo.lpVerb =NULL;
ShExecInfo.lpFile = ……
[/Quote]
学习
yihandrensunyong 2010-12-10
  • 打赏
  • 举报
回复
程序关闭慢。?能不能跟到最后关闭的那一步 在那里在ShellExecute()或者 你程序启动前可以先SLeep
LuciferStar 2010-12-10
  • 打赏
  • 举报
回复
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL ;
ShExecInfo.lpVerb =NULL;
ShExecInfo.lpFile = "cmd.exe";
ShExecInfo.lpParameters = cmd;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);

int ret=WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
在退出被执行的程序后,才会往下走。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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