说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

关机消息的拦截 -VB资料

HTML文档下载 WORD文档下载 PDF文档下载
关机消息的拦截 -VB资料

在关机或Logff前信息的拦截

  如果我们关机或Logoff时,我们的程序有时会因而无法按正常程序结束,一般我们会在Form的Unload中一段程序结束时要做什么事,但是,如果使用者直接用开始功能菜单的关机,会使UnLoad的部份没有做到,我们现在就想办法来拦截关机(或Logoff)时的信息。

  一般来说,关机或Logff后,Windows会传依序送出WM_QUERYENDSESSION的信息给每个Process,如果中间有一个Process不能顺利结束(例如:Word修改后未存档,而出现是否存档,但我们按取消),这时该信息执行的结果会传回False(0),这时Windows也就不再继续送WM_QUERYENDSESSION给下一个Proccess。反之,如果所有的Process都可以顺利结束(也就是每个送出的WM_QUERYENDSESSION都传回True),那才代表以以顺利结束。

  不管WM_QUERYENDSESSION最后的结果是可以顺利结束或不能顺利结束,Windows会再送一个WM_ENDSESSION的信息给所有的Process,而wParam的内容便是指出是否可以顺利结束(True菜单可以,False菜单不行,在vb中则CheckwParam = 0 菜单False ,0菜单True),说到这里大概就知道该如何做啦,程序如下:
  
’以下在Form
Private Sub Form_Load()
 Dim ret As Long

 ’记录原来的Window Procedure的位址
 preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
 ’设定form的window Procedure到wndproc
 ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf wndproc)
End Sub
  
Private Sub Form_Unload(Cancel As Integer)
 Dim ret As Long
 Dim fno As Long

 ’取消Message的截取,而使之又只送往原来的Window Procedure
 ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, preWinProc)

 ’这里只是要看看用关机的方式结束程序时,会不会执行到这里
 fno = FreeFile
 Open "c:\tt2" For Append As fno
 Print #fno, "ccc" + vbCrLf
 Close #fno
End Sub
  
’以下在.Bas
Option Explicit
  
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  
Public Const GWL_WNDPROC = (-4)
Public Const WM_ENDSESSION = &H16
Public Const WM_QUERYENDSESSION = &H11
  
Public preWinProc As Long
  
Public Function wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
 If Msg = WM_QUERYENDSESSION Then
   Debug.Print "QryEnd", wParam, lParam
 Else
  If Msg = WM_ENDSESSION Then
   If wParam 0 Then ’代表将顺利关机或LogOff,这时便得做正常结束程序的操作
     Dim fno As Long
     Open "c:\ttt" For Output As #1
     Print #1, "hahcccc5"
     Close #1
   End If
  End If
 End If

 ’将之送往原来的Window Procedure
 wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
End Function
程序缩小为任务条右下角的小图标-Delphi资料 得到 Windows 用户名和序列号-Delphi资料 得到windows临时路径-Delphi资料 得到Windows用户名和序列号-Delphi资料 得到计算机的名字和ip-Delphi资料 得到内存的 Status-Delphi资料 得到上一个激活的组件-Delphi资料 得到在内存中运行的所有应用程序的handle-Delphi资料 调用控制面板项目大全-Delphi资料 动态改变当前显示模式-Delphi资料 动态改变屏幕分辨率-Delphi资料 动态建立不常用的对象-Delphi资料 对控制面板进行操作-Delphi资料 返回程序执行参数-Delphi资料 防止 Win95 显示严重错误-Delphi资料 改变操作系统日期-Delphi资料 改计算机名-Delphi资料 关闭 Windows-Delphi资料 关闭外部应用程序-Delphi资料 监视剪贴板内容-Delphi资料 检测磁盘是否变化-Delphi资料 检测驱动器容量-Delphi资料 检查驱动器是否就绪:-Delphi资料 建立简单的任务栏应用程序-Delphi资料 将程序放在Windows启动中-Delphi资料 将光标限制在某区域-Delphi资料 将文件放入回收站-Delphi资料 禁止用户切换任务-Delphi资料 控制面板大全-Delphi资料 控 制 系 统 菜 单-Delphi资料 拦截消息处理过程-Delphi资料 求一函数,在线等....... 剛從vb轉delphi,幫我看一看!結貼很快! 如何可在WINXP中改MAC?? sprintf(a,"%2X",b)问题 关于简单的access查询 java字符转换问题!!! 请教一个Struts标记问题! 一个cab下载的错误信息解读,请教高人。 OutLook?怎么用它发邮件,经常提示错误? 帮看这段删除纪录代码有什么问题?三层结构oracle 本人要做一个WEB合同管理平台,由于以前没做过,请大家指示? Web Application 中怎么来调用 Web Server?谢谢! DataGrid中模板列嵌套的DataGrid怎样相应其事件 [调查]程序员证在你们公司里到底有多大的作用?有多少人有证?希望有没有证的都进来说一下。 怎样把字符串"C;\aaa\bbb"变成字符串"C:\aaa\ccc\dd"?用什么函数,操作? 我的SQL Server 装好后,出现下面的错误 这个文件查找真是怪!......msdn源代码居然有问题, 进来看看... 请问在TreeView控件中如何通过光标的上下移动获得光标所在项在数据库中的ID值 對掌上電腦Sony Peg-TG50和ACER N10怎麼看??? 使用SOAP协议传递服务器端查询结果容量问题? 菜鸟问题:数据窗口怎么设置检索参数?急!!在线等 ****入门提出的问题****,请各位高手指教! 很简单的一个问题。 这个问题怎么处理? vb如何调用一个组件?? 一个小问题,可不简单哦! 应聘CMM时,会被问到什么有关CMM的问题? 调用servlet出现这个错误HTTP method POST is not supported by this URL 在公网上如何连接远程数据库啊。。 这算不算bcb的bug?关于Image控件的使用。 使用 GDI 函数画直线时,如何同时在该直线的两端画出箭头来? 怎样改变网卡的工作模式???~~ 疑难杂症--关于共享adsl专线的网络问题--疑难杂症 小弟有一事请教??? 我的IE WEB 控件---TREEVIEW控件,怎么没有treeView.AfterSelect()事件? 新手接触midas的若干典型问题!小的头都搞大了!还是不行!望各位大虾赏个脸解答一下! 一个静态页面中的困惑!心急如焚.................. 请问这句话什么意思? 如何判断一个用户的会话已经失效?-解决立马给分 急:如何改变datagrid的背景色 string sqlstr=DataGrid1.Items[1].Cells[1].Text有错吗? 帮忙,请教一个问题! 请教高手:以下情况如何写sql语句和填写datagrid? 如何对dbf的数据库进行操作 请教大虾 写一个画流程图软件的需求分析(用VB做)(简单步骤也行) 关于权限问题。 如何让客户端在1024*768的状态下,显示800*600的效果 include和header有什么区别? 如何把从数据库中读到的值赋给变量 如何在owc做的饼图上写上 名称,数量,百分比 ?急,用过的请帮忙,先谢了 如何使对话框的菜单项无效? 人们把带正电的射线叫什么射线?带负电得叫什么射线? 下列有关细胞间的信息交流的叙述正确的是()A激素与靶细胞膜上蛋白质结合,将信息传递给靶细胞B细胞分泌的化学物质必须经过血液的运输才能将信息传递给靶细胞C高等植物细胞之间的胞间 材料作文怎么审题 高尔基体的主要功能高尔基体跟动物细胞分泌液形成有关还是跟动物细胞分泌物形成有关 如图为细胞间信息交流的一种方式,下列有关叙述不正确的是( ) A.图中a可能表示某种信号分子 B.图中甲表图A.图中a可能表示某种信号分子 B.图中甲表示分泌细胞图中乙细胞表示靶细胞 C. 材料作文审题阅读下面的材料,根据要求作文.3月11日,最新的《福布斯》富人榜出炉,墨西哥的电信大鳄卡洛斯•斯利姆成为世界新首富.《福布斯》杂志说:盖茨和巴菲特在富翁榜上的位次 无水芒硝(元明粉)是做什么用的啊 谁给我推荐下质量价格好的供应商 最好是湖北湖南安徽江西这边的 服务器的定义是什么? 材料作文审题立意材料:猴子出名会模仿人,一个老人看到一个猴子,便扔一个草帽过去,然后猴子拿着帽子高兴的走了.数年后,老人的孙子重复他爷爷的事情,猴子不再捡帽子,猴王出来便说:“ 花粉管内的精子那里来 DELL NBD 我想问一下DELL 的服务有哪几种分别是什么 ,还有这个NBD 是什么服务 , 加湿器里面可不可以加空气清洗剂 鲁滨逊用记多少年的时间做了一只独木船还挖了一条多少尺的运河把船运到了半里外的小河里 求满足{x|x^2+1=0,x∈R}真包含于M包含于{x|x^2-1=0,x∈R}的集合M的个数快 船做好后,下没下水呢?他还战胜了哪些困难?阅读 鲁滨逊漂流记 《鲁滨逊漂流记》中鲁宾逊怎么记得时间 M={x|2x+1>=0},N={x|x^2-(a+1)+a 有什么物质溶于水显碱性,不溶于水不显碱性呢?如题.顺便问下怎么判断这种溶液显碱性? 鲁滨逊漂流记,中鲁滨逊做了怎样一只船?用了多少时间?他用这只船干什么?结果怎样 A=(-∞,-3)∪(2,+∞)B={x|mx+1 You should get up e______to catch the bus谁会了帮忙填一下, 220V电器,为什么开关两边(零火)都有电,测电压是380还能正常工作 是为什么刚注册号 还没有 积分 不好意思 啊 谢谢了 已知A={x|x²+x-6>0},B={x|mx+1<0},若B包含于A,求m的取值范围 电熨斗高温挡那个55欧怎么算的 盐酸和氢氧化钠反应的化学方程试 第二天早朝时,吴王会怎么对大臣么说取消攻打楚国的事.请替吴王写个发言稿.注意写出人物的神情、语气等.急100到200字之间 细胞之间的信息交流图二中①表示什么,②表示细胞膜上的什么,其化学本质是什么. 高中化学,用中括号括起来的部分.这里中和热的热化学方程式一定要写离子方程吗?就是氢氧化钠与盐酸的那个反应. 那些进行科学研究的科学家,怎么记得了那么多公式,定义,还有各方面的应用技术我在大学读通信工程的,看到那么多定理、定义,头就大了,不知道那些研究员怎么记得了那么多东西来进行研究 鲁滨逊用了几年时间造了一艘木船不要答非所问 还要是在荒岛上做的船 氯化铵与氢氧化钠共热化学方程式 夜雨寄北 译文 鲁滨逊造木船的经过 花粉由什么粒子构成 细胞识别与细胞间信息交流细胞识别与细胞间的信息交流有哪些区别? 鲁滨逊在海岛上造独木船的过程请看好题目在答 行么. 读古诗,列方程.巍巍古寺在山林,不知寺内多少僧.三百六十四只碗,看看用尽不差争.三人共食一碗饭,四人共吃一碗羹.我的解法:设寺内共有X名僧人.……(下面就不会了)如果回答令我满意, 鲁滨逊造木舟之后有没有下水 自上高二后,语文竟成拉分项 每次90多(150)原来语文一直是长项的啊,现在却.作文较弱 尤其材料作文平时有看书 有做题 听讲啊,看着平时睡觉不下功夫的人都轻松的拿高分 更心里不平衡了 读诗词解题:(列方程,算出周于的年龄)告诉我方程读诗词解题:(列方程,算出周于的年龄) 大江东去浪淘尽,千古风流数人物;而立之年督东吴,早逝英年两位数;十位恰小个位三,各位平 吴王准备出兵攻打楚国为什么遭到了一些大臣的反对要仔细一些的吧! Don't worry.You shall get the book you want this Friday ,____according to the record,(————接上)Mr..Clark is to come to return it.A afterB whileC whenD while脑抽了 D 是when 一个高一函数增减性问题.函数f(x)=∣x-a∣在(-∞,2】上单调递减,则a的取值范围是?原题是这样的:函数f(x)=∣x-a∣在(-∞,2】上单调递减,则a的取值范围是:A、a≥ 2 B、a ≥ 1 C、 a < 2 D、 a <1 吴王准备攻打楚国,大臣为什么要反对? He got his book this Sunday.(改为否定句)I _____ _____ his book this Sunday. 电动势电子移动的微观解释电动势等于 在电池内两极的电压 说明电池(不是在电路中)正负极有电势差 ,电子在里面就会有电场线,电子逆着电场线走 ,最终达到平衡 电池两端不应该有电压 you could help—— the desk a repairing b repair c repairs drepaired 与蛋白质有关的氨基酸在人体其他部位的细胞内是否存在,简要说明理由?重赏. 求高手剖析电路(要微观~,如里面的电子如何移动等),我是高2的新生,刚学完物理第一章电场,和第二章电路,譬如,学的电势差就是电路中的电压,为什么电路中有电压,为什么串联电路的电流会保 There is a c___ on the desk .you can get onlionC是单词开头的字母! 神经细胞存在身体的哪个部位呢?最好有图片 细胞间信息交流方式,及所需结构 中国三大海峡之一—琼州海峡阅读答案 what's the matter?my desk is broken it's requires_________ A repair B repaired C to repairD repairing,Q1036592830,还有题 Say the word for each picture.中文意思 关于细胞间信息交流叙述不正确的是A、信号分子与靶细胞的识别与结合具有专一性B、与不同激素分子结合的受体是不同的C、胰岛素和甲状腺激素的受体分布在不同的体细胞上D、细胞间的信 鲁滨逊的船造好了,他一定会设法离开荒无人烟的孤岛.那么,他是怎么样离开孤岛的?他经历了怎样不可思议的航行?请你充分发挥自己的想象,把故事接着写下去.不少于400字. 离体培养可不可以用花粉粒 台湾海峡,琼州海峡,直布罗陀海峡的英文是什么?请分别注明! 鲁宾逊在第几次什么时,船在途中遇到袭击,鲁宾逊来到荒岛 浙江省长李强再盼“浙商回归” 希望浙老汉约网友对方是儿媳:真警察配合拍照俄印蒙三国总理同日访华 中国周边外交美国与沙特进入公开紧张状态 多重分歧儿子被男生表白妈慌了 专家:应尊重孩奥巴马参观学校旁听课程 揶揄国会议员英国公务员薪酬制度注重个人能力且具等英国公务员薪酬制度注重个人能力且具等安倍称亚洲国家都担心中国 日本应领导国际晚班车:美国与沙特进入公开紧张状阿富汗士兵与北约部队26日发生武装冲英国公务员薪酬制度注重个人能力且具等中国首次成功研发H7N9禽流感病毒疫世界主要城市10月27日天气预报俄总理说中国是俄非常重要和可靠的战略美国与沙特进入公开紧张状态 多重分歧美国与沙特进入公开紧张状态 多重分歧伊朗处死16名反政府组织囚犯 回应边西班牙华商遭警察勒索殴打 寻求律师援奥巴马参观学校旁听课程 揶揄国会议员冯小刚:春晚我打算娱乐大众,每天想如【免费PR招聘信息-北京专场】百度、乐视移动与Cubic TELECOM『artnet | 深度』德勤《20李克强发火了!一句话带你看完58集《花千骨》!票据理财热战互联网金融平台东莞企业倒闭潮:工厂关门不停 政府暗孙红雷范冰冰韩庚叶祖新告诉你学好文化如何理解当代艺术你属什么?你的脾气就是什么样!隔断一隔,家居空间立马变多又变大!中国人的性格历史9岁年收入过百万美金,13岁当CEO上班族营养效率手册特级教师魏书生:家长无形中会毁掉孩子风云变幻的股市,下一步怎么走?伏彩瑞:未来十年,是教育创业者的机会世界多国伸援手 争分夺秒救助尼泊尔灾好奇 互联网大佬们年轻时长啥样?沪江网与乐视网发布战略合作,探索在线合伙人创业,合的不是钱,而是人品!好
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘