C# 带有0x3B代码的Windows消息

C# 带有0x3B代码的Windows消息,c#,.net,winforms,winapi,.net-4.0,C#,.net,Winforms,Winapi,.net 4.0,在Windows XP中注销时,系统会将代码为0x3B的消息发送到应用程序的主窗口。它与0x11 WM_QUERYENDSESSION消息一起接收。以下是WndProc的传入消息日志: Message processing: Id = 0x3B, wParam = -2147483637, lParam = 0, result = 0 Message processing: Id = 0x11, wParam = 0, lParam = -2147483648, result = 0 Form

在Windows XP中注销时,系统会将代码为0x3B的消息发送到应用程序的主窗口。它与0x11 WM_QUERYENDSESSION消息一起接收。以下是WndProc的传入消息日志:

Message processing: Id = 0x3B, wParam = -2147483637, lParam = 0, result = 0 Message processing: Id = 0x11, wParam = 0, lParam = -2147483648, result = 0 Form closing event handler. Reason:WindowsShutDown Message processed: Id = 0x11, wParam = 0, lParam = -2147483648, result = 1 Message processed: Id = 0x3B, wParam = -2147483637, lParam = 0, result = 1 Message processing: Id = 0x3B, wParam = -2147483639, lParam = 0, result = 0 Message processing: Id = 0x16, wParam = 1, lParam = -2147483648, result = 0 Form closed event handler. Reason:WindowsShutDown Message processing: Id = 0x46, wParam = 0, lParam = 1239312, result = 0 Message processed: Id = 0x46, wParam = 0, lParam = 1239312, result = 0 Message processing: Id = 0x47, wParam = 0, lParam = 1239312, result = 0 Message processed: Id = 0x47, wParam = 0, lParam = 1239312, result = 0 Message processing: Id = 0x86, wParam = 0, lParam = 0, result = 0 Message processing: Id = 0x7F, wParam = 2, lParam = 0, result = 0 Message processed: Id = 0x7F, wParam = 2, lParam = 0, result = 852077 Message processing: Id = 0x7F, wParam = 2, lParam = 0, result = 0 Message processed: Id = 0x7F, wParam = 2, lParam = 0, result = 852077 Message processed: Id = 0x86, wParam = 0, lParam = 0, result = 1 Message processing: Id = 0x6, wParam = 0, lParam = 0, result = 0 Message processed: Id = 0x6, wParam = 0, lParam = 0, result = 0 Message processing: Id = 0x1C, wParam = 0, lParam = 2620, result = 0 Message processed: Id = 0x1C, wParam = 0, lParam = 2620, result = 0 Message processing: Id = 0x8, wParam = 0, lParam = 0, result = 0 Message processed: Id = 0x8, wParam = 0, lParam = 0, result = 0 Message processing: Id = 0x2, wParam = 0, lParam = 0, result = 0 Message processed: Id = 0x2, wParam = 0, lParam = 0, result = 0 Message processing: Id = 0x82, wParam = 0, lParam = 0, result = 0 Message processed: Id = 0x82, wParam = 0, lParam = 0, result = 0 消息处理:Id=0x3B,wParam=-2147483637,lParam=0,result=0 消息处理:Id=0x11,wParam=0,lParam=-2147483648,result=0 表单关闭事件处理程序。原因:WindowsShutDown 已处理消息:Id=0x11,wParam=0,lParam=-2147483648,结果=1 已处理消息:Id=0x3B,wParam=-2147483637,LPRAM=0,结果=1 消息处理:Id=0x3B,wParam=-2147483639,lParam=0,result=0 消息处理:Id=0x16,wParam=1,lParam=-2147483648,结果=0 表单关闭事件处理程序。原因:WindowsShutDown 消息处理:Id=0x46,wParam=0,lParam=1239312,结果=0 已处理消息:Id=0x46,wParam=0,lParam=1239312,结果=0 消息处理:Id=0x47,wParam=0,lParam=1239312,结果=0 已处理消息:Id=0x47,wParam=0,lParam=1239312,结果=0 消息处理:Id=0x86,wParam=0,lParam=0,result=0 消息处理:Id=0x7F,wParam=2,lParam=0,result=0 已处理消息:Id=0x7F,wParam=2,LPRAM=0,结果=852077 消息处理:Id=0x7F,wParam=2,lParam=0,result=0 已处理消息:Id=0x7F,wParam=2,LPRAM=0,结果=852077 已处理消息:Id=0x86,wParam=0,lParam=0,结果=1 消息处理:Id=0x6,wParam=0,lParam=0,result=0 已处理消息:Id=0x6,wParam=0,LPRAM=0,结果=0 消息处理:Id=0x1C,wParam=0,lParam=2620,result=0 已处理消息:Id=0x1C,wParam=0,lParam=2620,结果=0 消息处理:Id=0x8,wParam=0,lParam=0,result=0 已处理消息:Id=0x8,wParam=0,LPRAM=0,结果=0 消息处理:Id=0x2,wParam=0,lParam=0,result=0 已处理消息:Id=0x2,wParam=0,LPRAM=0,结果=0 消息处理:Id=0x82,wParam=0,lParam=0,result=0 已处理消息:Id=0x82,wParam=0,lParam=0,结果=0 我的应用程序在注销时在Windows XP中出现错误。它关不上。原因是:

Message processed: Id = 0x3B, wParam = -2147483637, lParam = 0, result = <b>3</b>
处理的消息:Id=0x3B,wParam=-2147483637,lParam=0,结果=3 而不是1


你知道这个消息是什么意思吗?为什么处理不正确?

我的Google fu显示这是一条未记录的消息—WM_CLIENTSHUTDOWN。可能很感兴趣,但它所做的只是将WM_QUERYENDSESSION/WM_ENDSESSION发送到窗口及其子窗口。返回值3(MCSR_DONOTSHUTDOWN)表示窗口或其子窗口正在否决请求。

我的Google fu显示这是一条未记录的消息-WM_CLIENTSHUTDOWN。可能很感兴趣,但它所做的只是将WM_QUERYENDSESSION/WM_ENDSESSION发送到窗口及其子窗口。返回值3(MCSR_DONOTSHUTDOWN)表示窗口或其子窗口正在否决请求。

显示消息处理代码?特别是对于最接近的问题?@Scott:这个问题与编程非常相关,即使可以问得更好(例如,一些示例代码可能会有帮助)。它是WM_INITENDSESSION,否则没有文档记录。请确保将其传递给DefWindowProc(),否则您确实会遇到关机问题。默认情况下,我的应用程序不会覆盖此消息处理。除了主窗体之外,它没有任何其他子窗体。是否显示消息处理代码?特别是对于最接近的问题?@Scott:这个问题与编程非常相关,即使可以问得更好(例如,一些示例代码可能会有帮助)。它是WM_INITENDSESSION,否则没有文档记录。请确保将其传递给DefWindowProc(),否则您确实会遇到关机问题。默认情况下,我的应用程序不会覆盖此消息处理。除了主窗体之外,它没有任何其他子窗体。感谢您提供的详细说明和链接。感谢您提供的详细说明和链接。