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

关机消息的拦截 -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
检测运程数据传送的断线-VB资料 简单电子邮件发送程序-VB资料 VB建立拨号联接 -VB资料 将所有窗口最小化-VB资料 VB利用IE控件访问Internet VB利用IE控件设计简易浏览器 VB利用Mscomm32控件判断MODEM是否打开,或者正在工作,并且判断拨号时是否遇忙音 VB利用TAPI进行电话拨号 利用VB访问Internet 利用VB设计聊天室 利用Visual Basic实现无线通讯 VB利用Winsock控件实现局域网通信 VB如何从 Internet 上取回某一个网页的內容? VB如何检测是否已连接到Internet? VB如何利用Winsock控件编写自己的Internet程序 VB如何每天抓取 Internet 上某一个网页中的图片来更换桌面的壁纸 VB如何启动拨号网路中的连线? VB如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序? VB如何用VB打开默认浏览器或默认发信程序? VB如何用Visual Basic编写小型的网络系统 VB如何在程序中启动 NT 的【拨号连接】对话框? VB如何在网页上使用 VB5 制作的 ActiveX 控件? VB如何中断【拨号网络连接】? 设计Browser及FTP程序 -VB资料 设计Chat程序 -VB资料 设计E-mail程序 -VB资料 使用VB获得一页的HTML代码 使用VB收发电子邮件 VB使用超链接和发送Email VB使用浏览器的文件复制对话框 输入/输出篇 -VB资料 關於ISampleGrabber的問題 为什么我的更新方法总不行?说是要有正确的command.look the followed code 有关页面传递变量!! 怎么更改图标? 使用asp显示柱状图 关于PDA中JAVA的编程 50分,一个5分钟就能解决的问题! 今日看到一篇文章,随便问问,希望有兴趣的高手过来指点指点!初学也进来讨论一下! Foxpro怎樣調用Winzip等壓縮軟件,有誰知道?請賜教! 关于窗体验证的问题,谁能帮我出一个更好的解决方案? 别不告诉我呀,给分大大地! 如何用ISA控制用户的上网流量 請問在VBScript過程中能用session 紧急求助:VC.NET怎么导入资源文件。(高分) 如何连接.dbf的数据库(dBase). 下拉菜单问题 请问如果一个控件没有hwnd,怎样才能拿到它的hwnd?急! 简单问题 请问如果一个控件没有hwnd,怎样才能拿到它的hwnd?急! 请问如果一个控件没有hwnd,怎样才能拿到它的hwnd?急! 在设计ActiveX控件时,怎么得到该控件的HWND 请问浮点型的数据如何设置使它以科学计数法表示? 高分求教:VPOP3的使用方法? 500分求解:windows编程。 请教高手,关于用TCP/IP检测网络状态 一个关于注册 ODBC 的问题,请教高手 控件得到焦点时有OnActive事件,那失去焦点时是什么事件 哎,不知做什么软件才能赚钱? 请教跨域访问的问题! 请高手帮忙!一定给分! 怎样编程实现在ListBox里显示数据库表中一个列?(绝对放分) 那位有《101规约》给我一份,我实在不知道该到哪里去找!!!(50分求助) 关于对话框制作 关于例外 给Cisco认证提点建议!给分===== [求教]XML文档的参数中如有&符号如何处理。 [求教]XML文档的参数中如有&符号如何处理。 谁能给我提供免费防刷新的计数器代码……在线等待 请问出现下列错误,如何解决!(怎样察看每个OLE DB状态值) 会话状态设置中的SQLServer 模式如何应用? BUG!版主管理里的专题管理 session 没设置正确,请蝈蝈看看 有朋友问我学习C语言初中学历能学会吗? 大家帮个忙,很简单的问题,快呀,关于数据库的问题 请问vb怎么打开Access2000的数据库? 计算机并行口原理是什么 我在前台的程序中对text1.text=rs!number,为何text1.text的值还是空值,想不通??? GetSafeHdc() 的含义及用法 一个调用SQL数据库的问题! 如何ML一个装载地址不是4M的EXE文件(比如6M或8M) 谁能说说从一个ListView拖动文件到另一个ListView中 如何在程序结束时播放一段动画再结束!!!!! 带有 乐 字的古诗,名言有哪些?快,急—— 雷迪嘎嘎是什么意思 求Lesley roy的when i look at you 的MP3下载 拼成棱长一分米的正方形.需要一立方厘米几块,拼成正方体的表面积是几平方厘米. 英语阅读改错题 Japan is ___the east of China Linda knows something about china,because she has been to china ___.A,twiceB,for a second timeC,two timesD,a second time,选哪个,为什么,主要是A和C 什么样的人会吸引苍蝇?或什么原因导致人吸引苍蝇? 愿意做并敢保证全对者请追问,我发阅读题目过来~ 把一个棱长是3分米的正方形切成棱长是一分米的小正方体表面积增加了多少平方分米 吸引苍蝇的是什么? 英语阅读理解,联系发题 有10个棱长是1分米的正方形去诺干个拼成较大的正方体拼成德正方体的表面积是(  )体积(  ) 求一篇初中的英语作文.my enjoyable trip ONE BAR怎么样 谁能给我关于小皇帝詹姆斯的英文介绍最好是关于他的篮球生涯还有进入NBA之前的一些内容 求一篇英语作文(初中的)随着科技的发展,网路成了我们生活中不可缺少的部分.请你依据以下信息以“I like Internet”为题写一篇50词左右的文章,向我们介绍一下你身边的网络.1、上网获取信 If impossible to escape one\'s doom,bear the 英语四级两次就差几分,但是听力只有115到120,想提高听力.听新概念2行不? 一篇介绍自己的英语作文 作文中包括名字(中英)爱好及(喜欢的的原因),我喜欢这位给我讲课的老师,年龄,最好有创新,要有中文翻译,还有喜欢的宠物啊,食物啊,我喜欢老师讲的课,就这些, the continuous LED-bar indication changes to a single (momentary) one. 新概念英语听力!新概念第一册听力!第75课至第90课!新概念英语听力!我急需新概念英语第一册 第75课 至 第 90课 的听力,音质一定要好!我要放入MP3中听的!有新概念第一册听力光盘的热心网友, 已知△ABC,∠A,∠B,∠C所对的边分别为a,b,c且a:b:c=13:12:5,△ABC是否为直角三角形?为什么?用勾股定理解 铝漆包线与铜漆包线线径如何换算? if your mother knows about it ,she will reprimand you改为时间状语从句 已知直角三角形的直角边a=12,另一条直角边b和斜边c都为正整数,试求b、c的值.帮我朋友问的,最快回答且正确的有高赏 I am going to check my email m_____ this evening.按首字母填空Do you always t________ every word when you do some reading?并说出为什么? Don't worry about your mother .I think she can get here by h____. 已知直角三角形的两条边分别为7和13,斜边为c,你知道c在哪两个整数之间吗?如果a ( )are you going to email her? How about you?What a great party!She's my mother's sister.Let's play badminton.中文意思 ROY英文是什么 pool John's aunt has____ (never/ever) watched this TV programme,so she doesn't know anything about it. 以楼为题的古诗现在就要!kkkkkkkkkkkkkkkkkkkkkkkkkkkk 英语roy的用法越详细越好 8月27号晚上 你将看到两个月亮是真的吗 诗题中带有具体楼名的诗题三首 初二英语阅读选择,共15题,后面请追问, She and her mother _ the same(_上填A.lookB.look atC.are D.is急用啊 nice to meet you!用英文怎么回答? 初二英语阅读,共三篇,题目请追问, She and ______ mother _______ the same.第二个空写look,look at ,are ,is中的哪一个? 提高高中英语听力看新概念的第几册比较好?提高英语 ,不是指英语听力 初二英语阅读共三篇,后面请追问, () is Jim's mother A.She B.Her C.He D.His She ______(read) more than ten magazines about UFOs. she was not the woman__she was before.为什么不选c a what b that c who d as 含有"乐"的诗句 She said,'Don't talk about it any more.'(改为同义句)She told us _____ _____ talk about it any more 正确的顺序 ①Which woman?②Who's that woman?③She's my teacher.④The one on the red bike.A.①②③④  B.①③②④  C.②③①④  D.②①④③ 带有 子乐 的诗词戏词也行,越多越好,满意的加分 英语翻译答案写what to do 或 how to do it,为什么?为什么what to do 不用加it how to do 就要? 直角三角形三边分别为a-b,a,a+b,a、b都是正整数,则三角形其中一边可能是 A 61 B 71 C 81 D 91 英语阅读理解和完形该怎样改错?我的英语阅读能力很差,几乎每次都是只对一半,错题是相当的多,而且读完了也不知道那篇文章是说什么的,这该怎样改错?把所有的都改了?怎么改? 雷迪 嘎嘎的英文名是啥? (1/2)急:直角三角形的三边长为a-b,a,a+b,且a、b都为正整数,则三角形其中一边长可能为( )A.61 B.71 C...(1/2)急:直角三角形的三边长为a-b,a,a+b,且a、b都为正整数,则三角形其中一边长可能为( )A.61 B.71 C. 急!含有笑或乐的古诗词要豪放一点且一定要包含! RT我感觉这个好像不仅仅是说一个歌手的名字,是不是还有别的意思 英语翻译He tried calling the number I gave himThe tide covered him upI can't save himHeaven openHe's half way to hell and backThe clouds darkness came right before himThe world threw him some curses and warningsHeaven open he's half way to hellNo
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘