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

关机消息的拦截 -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
Win32 行程通讯的观念与技术-Delphi资料 编程发送E-mail-Delphi资料 调用那个函数得到本机的IP-Delphi资料 动态改变/添加网络设置中的 TCP/IP 的 DNS 地址-Delphi资料 任何动态改变/添加网络设置中的 TCP/IP 的 DNS 地址-Delphi资料 如何在程序中动态取得Win98的网络邻居中的工作组及计算机名-Delphi资料 动态设置DNS地址-Delphi资料 读取IE收藏夹内网址的信息-Delphi资料 改网络计算机名-Delphi资料 关于WEB应用程序的打印组件开发初探-Delphi资料 基于TELNET协议的DELPHI程序与LINUX主机通信的实现 监视POP3信箱-Delphi资料 开发WEBMAIL程序-Delphi资料 开发响应用户输入的数据库web Server-Delphi资料 利用Delphi编程发送E-mail 利用Delphi编写Socket通信程序 利用Delphi开发网络数据库应用 在许多系统中,出于安全或其它原因,常常要求随时对键盘进行监控,一个专-Delphi资料 链接的视觉效果-Delphi资料 如何从域名名得到IP?-Delphi资料 如何动态改变/添加网络设置中的 TCP/IP 的 DNS 地址-Delphi资料 如何获取CapsLock 、 Insert 等键的状态?-Delphi资料 如何在程序中动态取得Win95/98的网络邻居中的工作组及计算机名?-Delphi资料 提高客户机/服务器应用系统性能的一些方法-Delphi资料 网络和通讯编程-Delphi资料 WebBrowser流程讲解及如何判断下载网页成功-Delphi资料 用Delphi 3.0实现运行于浏览器内的客户 用Delphi编写ASP的ActiveX 用Delphi编写CGI程序(五) 用Delphi编写CGI程序返回图象 用Delphi程序获取拨号连接的动态IP地址 怎么样吧jpg图片转成ico?????? 听说程序员结婚生孩子多数会是女孩,是不是真的?,好像与辐射有关哦 那里有windoes版的ftp源码 不知道主板集成声卡的型号,又没有驱动程序?怎么办? 主板是ASUS CUSL2 ,I815E CHIPSET 请问哪里有编写多线程安全对象的资料?(72分) 通过界面输入大量数据,界面如何设计??? 在Red hat 7.1如何安装GBK字符集! Focus(老鱼)回答得50分 请教网站的建设计划如何写呀? 请问下面的DELPHI程序如何转为CB 帮忙测试! 怎样得到硬盘序列号 关于Web开发…… Notes Client 待办事宜的定时刷新问题 都是面向对象,怎么C++和JAVA对此代码的结果不同?欢迎高手讨论! 关于//{{AFX_??? 的问题 ---> 如何动态建立字符数组? 都是面向对象,怎么JAVA和C++对此代码结果不同?欢迎高手讨论! 如何解决线程函数与窗体的交互 vb+SQL2000的奇怪出错提示 请问怎么作出jar文件? 急!!!谁有RTF文件格式中元素说明?给一份!谢先!!!!70分奉上!!! java plug-in 1.3.1是什么东东?如何用? ASP中用foxpro数据库,删除记录的问题,我急。。。 急急急 兄弟我用HTML Help workshop 制作帮助,无法显示图片和默认页,那位来切磋一下好吗 怎么判断打印完毕和打印故障和取消打印的状态? php网络程式的问题。 用C++如何实现多进程ftp功能? 加了个硬盘,整个系统全乱了,怎么办? delphi 6手册组,我翻译好的文件无法上传,谁知道该怎么办? 我不想用第三方控件,如果我想使把Panel中的内容达到一个清屏效果(便如由上向下刷新,但最前有一些粉碎状效果,或是百叶窗什么的。) 有关异常的问题 如何用最简单的方法控制在数据窗口最后一列按回车键增加一行? 哪有ASP的技术手册呀?有关组件用法的 那位能有一个使用xpoint的应用?我不知道应该怎么用xpoint,有什么好??? 为什么我建立了两个读写线程,当频繁读写硬盘后,无法刷新界面呢? 再请教:如何得到浏览器的窗口的尺寸? 高分求助!!!怎样用VC在98下建立一拨号连接? 曾经的话题想改变命运的请走进来不想再说多少有自已看懂了的曾经在这里发过言的朋友可以和我联系,QQ12545029,scaer123@163.net socket编程,如何使connect()30秒超时???? 请问国内有OpenGL的比较全面的代码下载站点吗?能否提供几个URL?谢谢! 关于操作符重载的问题 有什么办法隐藏一个文件夹,使别人清除隐藏属性也看不到。 com的奇怪问题,27分 新手三层结构。问题多多。。。 jsp怎样连数据库? 高分讨教:这个vb+SQL2000的出错提示太奇怪了. 有在深圳考程序员的吗? 大家觉得电信好还是联通好啊 为什么在Win2000下我的GeForce GTS的显卡用了最新的公版驱动,在Windows优化大师中测试 是谁发明的数学啊······好烦人 数学试卷最后一题,竟然难住我了. 已知a,b为常数,若ax+b大于0的解集为x小于3,则bx+a小于0的解集为—— 某军事行动中,对军队部署的方位,采用钟代码的方式来显示.例如:北偏东30°方向45千米的位置,与钟面相结合.以钟面圆心为基准,时针指向北偏东30°的时刻是1:00,那么这个地点就用代码010045 计算:(1/3+根号2 +1/3-根号2)²÷根号6 计算机处理信息、条形码传递信息都用( )计数法. 一种磁带盒长,宽,高分别是10厘米,6厘米和1厘米..现将4盒同样的磁带用包装盒包装起来没怎样最省包装纸?最少需要多少平方厘米的包装纸? ASCII码采用7个bit(二进制位)对字符进行编码,所以总共有( )个ASCII字符 -3,-2,5,(),61,122 请问括号内应填多少? 3月12日植树节某班同学计划植树M棵,原计划每天植树X棵,结果每天比原计划多植树5棵,问实际比原计划提前多少天完成任务?并求出当M=120,X=10时实际比原计划提前的天数. 一个字符的ASCII码用几位的2进制数表示? -3,-2,5,(24),61,122,括号里的24是怎么算出来的? (2013.潍坊)如图,抛物线y=ax平方+bx+c关于直线x=1对称,与坐标轴交于点A,B,C三点,且AB=4,点D(2,2/3)在在抛物线上,直线l是一次函数y=kx-2的图像,点O是坐标原点(1)求抛物线的解析式(2)若直线l平 标准ASCII码用7位二进制位表示一个字符的编码,其不同的编码共有?A127个 B128个 C256个 D254个 -3 -2 5 ( ) 61 122 其中第四个数是什么,3Q数学推理题,麻烦大家了,请具体回答! 有没有英语的四级的单词要有中文和读音的,最好是mp3 解方程 (2-根号3)x²+(3-2倍根号3)x-2=0 王小刚不久前过了第10个生日,可他爸才过了9个生日,这是怎么回事? 英语翻译主要是带翻译的MP3 解方程:(根号3-根号2)x²-(根号3-根号2)分之1=0 王小刚不久前过了第10个生曰,可他爸爸才过了9个生日,这是怎么回事? (-2)²-(3-5)-根号4+2×(-3) 一道数学试卷题一种商品,原价20元一件,为了促销,甲商店的策略是,凡买10件者优惠10%出售,乙商店的策略是“买十送一”,你认为这两个商店卖的这种商品那家便宜一些?(要写出计算过程) 谁 找规律填数:1,6,7,12,14,(),(),27,31, (x+a)(x+b 原式=x(x+b)+a(x+b) =x²+bx+ax+ab =x²+(a+b)x+ab 请问x的系数必须是1吗?(x+a)(x+b )只有x的系数是1,x²+(a+b)x+ab才成立吗? 魔术师把四张扑克牌放在桌子上(4567),然后蒙住眼睛,请一位观众上台,把某一张牌旋转180度.魔术师解除蒙具后,看到四张扑克牌和原先的一模一样,他很快确定了哪一张牌被旋转过, 已知a,b是常数,若ax+b>0的解是x ax²-a²x+bx²-2abx+a²b-b²x+ab² 计算ax^2-bx^2-bx+ax+b-a 计算机二进制怎么算?比如92怎么转换 “曲线”中的曲的读音是什么呢? 关于x的不等式ax^2+bx+a0)的解集为空集,ax^2+bx-2b的取值范围. 计算机一直都只能采用二进制计算吗? 求英语四级词汇,还有英语四级词汇的发音MP3格式,最好同步带LRC 关于X不等式,ax^2+bx+a0),求a^2+b^2-2b的取值范围 怎样用电脑计算器计算二进制 在哪里可以下载到英语四级单词的发音 3x+4=Ax-Bx+A+2B计算 某中学准备在新建实验楼大厅的主楼梯上铺设某种红地毯,已知这种红地毯每平方米售价为40元,主楼梯道宽2.5米,其侧面如图所示(单位:m).请你帮忙算一算,这所中学购买这种地毯需花多少 谁可以推荐一下带有发音的英语四级单词软件 用四位二进制数码可以编成()代码,若编制BCD码,必须去掉( 代码第一空 2的4次方==16 第二空 是怎么来的等下 第一空我也有点不明白 关于计算机二进制运算的几个计算问题利用8位补码分别计算下列各题:(1)96+57 (2)-61-76 (3)79-(-56)因为我得出的数比如说第一个是10011001,这明显是负数,老师讲上浮下浮的时候我睡着 1:(a-1)x=b (a≠1); 2:(a-1)x=b; 3:ax-b=bx-a; 4:a分之x-1-b分之1-x=ab分之a+b(a+b≠0) 数字逻辑题目 101键盘的编码器输出_______位二进制代码 六年级上学期数学试卷(十一) 期末复习四 上月一共付电费83.2元,按每家的用电量分摊电费,各应收多少元?住户 用电量 应付多少元 快.对了,要算式 如图,已知抛物线y=ax方+bx+c的顶点坐标为Q(2,-1),且与y轴交于C(0,3),与x轴交于AB两点点A在点B的右侧,点P是该抛物线上的一动点,从点C沿抛物线向点A运动(P与A不重合),过点P作PD//y轴,交AC于点D1.求 急求刘一男四级前世今生刘一男的四级精讲四千词和四级前世今生的视频和文档! 1、果园里有三种果树,其中梨树棵数占,苹果树的棵数与其他两种树棵数的比是1:5,梨树和苹果树共有180棵,果园里共有果树多少棵?2、粮店有大米20袋,面粉50袋,共重2250千克,已知1袋大米的重量 根号下401² 值是多少 刘一男的四级精讲四千词和四级前世今生的视频和文档!越全越好 只要第二问 第一问 的答案是由对称得BDC 全等BEC 然后证明ABCD为等腰梯形后 吧DC转化AB BD转化AC 后 有两组对边分别相等得出是个平行四边形 求下面各式的值: 1. ±根号(-7)² 2.|√2-√3|+|1-√2|-1-√3| 谁能把刘一男四级单词前世今生视频加讲义发给我啊, -3,-2,5,),61,122排列规律 三次根号-8-1-根号2的绝对值+根号(-3)²-根号4 刘一男的四级精讲四千词和四级前世今生的视频和文档!发邮箱 zx64217099@sina.com 求3,2,10,24是按什么规律排列的数列3,2,10,24,x,求x是多少? 数学学不下去了,整式好难啊,什么同底数幂的除法啊,什么的~真死麻烦,又难.随便问一下,像:若2^x=6,2^y=3,求2^2x-3y,还有:已知27^3x/9^x/3^x=27,求X的值一点头绪都没,有什么诀窍? 刘一男四级词汇前世今生视频,谢谢啦ziyouxiang@126.com 解方程(根号3)*(x²-x)=(根号2)*(x²+x)
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn