我在尝试时遇到问题WM_CLOSE
一个 Window 资源管理器进程,发送该消息将尝试关闭 Windows Shell 资源管理器进程并提示用户关闭窗口。这不是预期的行为,我想知道如何解决它?
如何优雅地关闭各个资源管理器窗口,而不同时关闭整个电脑?目标是获得与用户自己单击 X 按钮相同的行为。
编辑:我发现我能够获取资源管理器进程的所有子窗口,但从那时起我不确定如何识别哪些窗口是实际的、用户可见/可交互的资源管理器窗口。
11/21/2012 16:27:49 [12] DEBUG - Closing process with PID: 2680
11/21/2012 16:27:49 [12] DEBUG - Window has 11 descendant windows
11/21/2012 16:27:49 [12] DEBUG - Found child window: hWnd: 590746 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: 4:27 PM hWnd: 656010 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: hWnd: 2294392 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: hWnd: 1245586 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: User Promoted Notification Area hWnd: 2949496 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: System Promoted Notification Area hWnd: 1245548 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: hWnd: 852646 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: hWnd: 918356 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: Running applications hWnd: 1769950 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: Running applications hWnd: 1179980 Window State: Normal
11/21/2012 16:27:49 [12] DEBUG - Found child window: TF_FloatingLangBar_WndTitle hWnd: 458926 Window State: Normal
你怎么得到窗户?您可以通过文本调用 winapi 来获取句柄,因此桌面资源管理器可能没有标题。http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx查看 lpWindowName 参数。
另外,我只是在这里猜测,您可能会查看桌面资源管理器和其他资源管理器实例之间的关系,以及它们与 GetDesktopWindow() 返回的hande之间的关系。http://msdn.microsoft.com/en-us/library/windows/desktop/ms633504(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms633504(v=vs.85).aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)