VB/强制结束或非法结束程序时的事件

「已注销」 2017-02-03 08:45:04
就是我写了个VB程序,如果强制结束我的程序那么就补好了,必须让他点我的关闭按钮才行,就怕强制结束或用户电脑太卡把我程序给卡冻结了,如果强制结束或者冻结结束程序的事件该怎么来检测呢?是另写一个程序检测吗?
...全文
271 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2017-02-08
  • 打赏
  • 举报
回复
既然先来的A判定为非正常,那么后来的B保持队形(同样当成非正常处理)有什么问题?
「已注销」 2017-02-08
  • 打赏
  • 举报
回复
引用 4 楼 Tiger_Zhao 的回复:
你程序写得再好,直接断电照样是没有任何处理的非正常结束。 与其考虑如何防止非正常结束(这是不可能的),不如考虑如何在非正常结束后再运行时如何处理异常数据。 可以参考数据库的事务处理方式,断电重启后未成功的事务操作会回滚。
那电脑断电后再启动电脑中的哪项数据会变化,比如我写A/B两个程序,A程序启动后判断这个电脑的数据是否正常,不正常就等于非法断电,那么程序删掉我的数据库或者配置文件,主程序读取不到配置文件也就不能加载帐号密码了,,这个行吗?
「已注销」 2017-02-08
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
http://bbs.csdn.net/topics/390787357
写的非常好!
赵4老师 2017-02-07
  • 打赏
  • 举报
回复
Tiger_Zhao 2017-02-07
  • 打赏
  • 举报
回复
你程序写得再好,直接断电照样是没有任何处理的非正常结束。
与其考虑如何防止非正常结束(这是不可能的),不如考虑如何在非正常结束后再运行时如何处理异常数据。
可以参考数据库的事务处理方式,断电重启后未成功的事务操作会回滚。
赵4老师 2017-02-06
  • 打赏
  • 举报
回复
不要企图优雅的结束(因为这是不可能办到的) 而要在烂的不能再烂的摊子上也能重整河山!
舉杯邀明月 2017-02-04
  • 打赏
  • 举报
回复
如果用户用任务管理器“结束任务”,系统会给你的程序发消息。   你的程序相应的“主线程窗口”也就得到通知,在“QueryUnload”事件中第2个参数就可判断。   同时,如果在“QueryUnload”事件中未处理并阻止窗口关闭(或者根本就没有写事件过程代码),    也会触发相应的窗口Unload事件(如果这儿你也不处理,程序接下来就会结束了)。 如果用户在任务管理器的“进程”选项卡中用“结束进程(树)”的方式结束你的程序,   那么你的程序根本没有补救机会,直接被系统咔嚓了,不会给你任何通知。 也许用命令行的 taskkill.exe ,不加/F及加 /F参数,会分别对应上面所述两种状态(没验证过,猜测的)。 反正你这个问题,我没弄明白你究竟想知道什么。 也就只能给你说这些了,你自己看着办。
X-i-n 2017-02-03
  • 打赏
  • 举报
回复
完全可以,只要强制结束再重新运行的时候不需要考虑数据丢失的问题。再严格点可以互相唤醒,主进程检测守护进程,没检测到就再运行一个;守护进程检测主进程,没检测到就再运行一个

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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