开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1114|回复: 4
收起左侧

[已解决] 用函数创建的窗口程序将被关闭时怎样调用可否被关闭

 关闭 [复制链接]
结帖率:100% (5/5)
发表于 2017-12-9 08:22:35 | 显示全部楼层 |阅读模式   浙江省金华市
30精币
易语言窗口程序在即将被关闭时可以用
  
子程序名返回值类型公开备 注
__启动窗口_可否被关闭逻辑型 


上面这个返回 真 假 来决定是否可以关闭,这个代码 在windows系统关闭之前也会起作用可以阻止系统关闭

那用函数创建的窗口怎么实现类似的功能


最佳答案

查看完整内容

系统关闭时会给每个窗口发消息的. 你只需要在自己的相应消息处理上返回假 上边那个文章后说有举例.消息返回假后.有5秒的时间来做自己的事.

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (5/5)
 楼主| 发表于 2017-12-9 09:14:40 | 显示全部楼层   浙江省金华市
  
窗口程序集名保 留  保 留备 注
启动窗口程序集   
变量名类 型数组备 注
默认窗口子程序指针  
hwnd整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
默认窗口 = SetWindowLongA (取窗口句柄 (), -4, &处理)
子程序名返回值类型公开备 注
处理整数型 
参数名类 型参考可空数组备 注
句柄整数型
消息整数型
参数1整数型
参数2整数型
如果真 (消息 = 17)
' 要进行的关机前操作写这里
返回 (CallWindowProcA (默认窗口, 句柄, 消息, 参数1, 参数2))
DLL命令名返回值类型公开备 注
CallWindowProcA整数型 
DLL库文件名:
 
在DLL库中对应命令名:
CallWindowProcA
参数名类 型传址数组备 注
程序指针子程序指针
窗口句柄整数型
消息整数型
参数1整数型
参数2整数型
DLL命令名返回值类型公开备 注
SetWindowLongA子程序指针 
DLL库文件名:
 
在DLL库中对应命令名:
SetWindowLongA
参数名类 型传址数组备 注
窗口句柄整数型
要置的特征整数型
新特征子程序指针


回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 22 天

发表于 2017-12-9 08:22:36 | 显示全部楼层   陕西省渭南市
系统关闭时会给每个窗口发消息的.
你只需要在自己的相应消息处理上返回假

上边那个文章后说有举例.消息返回假后.有5秒的时间来做自己的事.

有效的截获Windows关机消息

基本上我们截获关机消息有如下需求和解决方案
1.阻止关机
前面已经说过了,这在Win7是不行的,如果你非要说我的程序就只给XP用户使,那么你要有这个功能也可以。你需要做的是在WM_QUERYENDSESSION中1秒内返回FALSE,最好是立即返回FALSE。如果你还要弹出一个对话框选择是否关机,那么默认行为是关机,在WM_QUERYENDSESSION返回FALSE前弹出模态的MessageBox给你的用户可怜的1秒钟选择是否关机。如果你取消关机了,可以在WM_ENDSESSION中通知用户。
2.写入参数到文件
微软MSDN建议是在WM_QUERYENDSESSION中立即返回,把所有的保存操作放到WM_ENDSESSION中处理,当然不要忘了XP 1秒和Win7 5秒的Block限制。
3.提示用户一些信息
如果你是要和我的软件功能一样提醒一下用户,那么把提示消息行为放在WM_QUERYENDSESSION中处理,但是Win7中如果在你的程序之前有程序阻塞超过5秒,那么就会切换到Win7独有的关机界面,这时候就看不到提示信息了,这样怎么办呢。我们上面说过了XP的Win7的程序关机顺序是不一样的,可以使用SetProcessShutdownParameters函数将当前程序的关机顺序提前并使用ShutdownBlockReasonCreate函数创建在关机界面上的提示消息。

评分

参与人数 2精币 +1 荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!
panpcj + 1 好不甘心我自己找到了答案没人回答就给你了

查看全部评分

回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 22 天

发表于 2017-12-9 08:28:35 | 显示全部楼层   陕西省渭南市
是通过消息返回来通知系统的.这个文章写的比较详细.可以看看.
内容太多了.转不过来了.
http://blog.csdn.net/wenzhou1219/article/details/18138885
回复

使用道具 举报

结帖率:100% (5/5)
 楼主| 发表于 2017-12-9 08:35:42 | 显示全部楼层   浙江省金华市
jr21066 发表于 2017-12-9 08:28
是通过消息返回来通知系统的.这个文章写的比较详细.可以看看.
内容太多了.转不过来了.
http://blog.csdn. ...

另一种说法 能不能检测到系统即将关闭 马上执行某一命令
函数看不懂 看懂也吃力 有实例吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表