再formclosequery中写代码:
CanClose:=false
就关闭不了该程序,除非结束进程
CanClose:=false
就关闭不了该程序,除非结束进程
解决方案 »
- VCL转OCX的问题?
- rave Execute 打印时为什么会将数据连接对象重新运行次
- Delphi里面字符分割函数是什么 如何分割以 , 为分割的字符串??
- 新手提问:vc代码转为delphi,怎么转呀?
- 好久没来了,散分,同时向给我帮助的人致谢!
- 如何让鼠标放到toolbar的按钮上时就显示按钮的说明信息?
- 一个简单问题
- !!!!!!!!!急急急!!!!!!!!!!!!!
- 拨号上网或isdn上网的机器有固定的ip地址吗?
- 怎么运用internet上SQLserver数据库?
- 我做了一个ActiveForm组件,在浏览器中执行,现在想用它来读取服务器段的一个文本文件数据,怎么做阿?
- 取值?
TForm 的两个事件
1.OnCloseQuery:
将 CanClose 置为False,则不关;
2.OnClose:
可以设置 Action 为 caNone, caHide, caFree, caMinimize
其中的一个;
SC_CLOSE, MF_BYCOMMAND or MF_GRAYED)
Procedure WMClose(Var Msg:TMessage);Message WM_Close;
Procedure WMQuit(Var Msg:TMessage);Message WM_Quit;
接管消息。做出空反应。(废话吗,就是不做反应)
谁都结束不了。
喔,应当对WM_QueryEndSession作出反应
Procedure WMQueryEndSession(Var Msg:TMessage);Message WM_QueryEndSession;
在它的对应事件里写Msg:=0;
拒绝关机什么,结束进程?
程序应该这样写,
很多关键地方都有标号,标志程序运行到哪儿
有一个全局变量记录运行到了哪儿,运行完关键部分,
就将恢复程序运行所需的变量,和这个全局变量写进注册表,登记新的全局变量,
再次启动这程序,就可从头部跳转及时恢复。
如果你的程序要实现不让别人关闭,可以这样的死皮赖脸:
启动时自动启动一个附程序,这两个程序都要建立一互斥对象,以便检查,而不要反复启动引起系统崩溃。好现在就可以假设,你的程序有过检查到再内存中已有了,就不再运行。
那么附程序有什么用哪?两个程序都开计时器,向指定的不同环境变量写系统时间,并检查对方书写的系统时间,如果误差太大就从磁盘启动对方程序。即使对方用杀灭进程的方法,也杀不灭你。
当然,附程序要最好什么资源都没有,什么窗口都没有,让别人无法找到它的Handle,就更别说ProcessHandle和ThreadHandle了。
好象这样一写,变成无赖程序了。