如何在关闭本程序后,再调用本程序,使其重新运行?

zsloyes 2003-08-23 05:43:03
我想在程序出错后,关闭本程序,再调用本程序,使其重新运行
请问如何实现这一功能?
...全文
127 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanshangming 2003-08-24
  • 打赏
  • 举报
回复
如果单纯想防止NMUDP连不到主机出错,可以直接用主机IP地址
zsloyes 2003-08-24
  • 打赏
  • 举报
回复
谢谢季大哥
jishiping 2003-08-24
  • 打赏
  • 举报
回复
其实你仍然可以使用代码防止二次运行。只不过你可以使用其它的方法,允许自己的程序二
次运行。方法很多,这儿举个例子,比如,使用某个特定的命令行参数。有这个参数就允许
二次运行,没有这个参数,就不允许二次运行。
Santos 2003-08-23
  • 打赏
  • 举报
回复
我在项目中针对这种问题时这样解决的。

首先制作一个服务,专门检查该程序的进程是否存在,一般10秒钟检查一次,时间可根据具体情况调整,如果发现,该进程不存在了,就调用它,调用的方法很多,WinExec(),ShellExecute()等等。

其次该程序中有检错机制,如果发现你认为严重的错误,就关闭程序。

这样的办法非常有效,而且容易实现。
zsloyes 2003-08-23
  • 打赏
  • 举报
回复
谢谢,我按照你的说法,取笑程序二次运行;在OnClose中写入代码,实现这一功能:)
ktcserver 2003-08-23
  • 打赏
  • 举报
回复
可以先将程序复制一段引导代码在内存里面,当主进程死了后,另一进程将主进程杀死。然后重新启动主进程。就像病毒或黑客程序一样。
zsloyes 2003-08-23
  • 打赏
  • 举报
回复
我就是在WinMain函数中添加代码防止程序二次运行!
我试试看,谢谢!
jishiping 2003-08-23
  • 打赏
  • 举报
回复
首先,你的程序有没有使用代码,防止程序第二次执行?如果没有的话,直接使用WinExec
或者CreateProcess之类的函数,再次运行这个程序,同时结束当前的进程,应该是可以的。
我没有用过NMFTP控件,前两天在BCB版看到一个网友的问题,最后说是推出程序前,需要先
释放(删除)NMFTP控件才行。
zsloyes 2003-08-23
  • 打赏
  • 举报
回复
我用的NMFTP,有时候连不上网络,就会出错,我想出错后调用 Application->Terminate()退出程序,我试过在OnClose里面调用本程序,但是不行,请教季世平大哥!
jishiping 2003-08-23
  • 打赏
  • 举报
回复
“我想在程序出错后,关闭本程序,再调用本程序,使其重新运行”

自己的程序怎么知道自己出错了?你这儿说的“出错”的含义是什么?如果指的是造成程序
死掉,自己的程序已经死了怎么可能知道?
Friecin 2003-08-23
  • 打赏
  • 举报
回复
不要意思!题目看错了!Sorry!

Friecin 2003-08-23
  • 打赏
  • 举报
回复
OnClose()
{
WinExec("YouWnatRunProgram.exe",0);
Close();
}

//-------------------------
这样简单了一些,如果你的这两个程序之间需要交换的数据,可以采用DDE方式。
zsloyes 2003-08-23
  • 打赏
  • 举报
回复
我只想在本程序里面写,再写一个程序就 麻烦了!
albeta 2003-08-23
  • 打赏
  • 举报
回复
运行另外一个程序,监视这个程序,如果这个程序被关闭了,就重新启动。
zsloyes 2003-08-23
  • 打赏
  • 举报
回复
在线等待!解决问题马上给分

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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