之前,我问过this question如何让用户返回到他们正在使用的前一个窗口,但我找到了解决方案,但这又产生了另一个问题。决定上一个窗口的函数有时会起作用(如果发生了一组我不能随意重新创建的事件,但这些事件是随机发生的)。在某些情况下,它返回两个窗口,有时返回一个窗口。
所以,为了解决这个问题,我决定我应该继续浏览以前的窗口,直到我到达一个不是任务栏的窗口,但是,我不知道如何确定任务栏的IntPtr。
我试过了:
IntPtr taskBarWnd = FindWindow("Shell_TrayWnd", null);但它似乎不起作用。如果我调用MessageBox.Show(taskBarWnd.ToInt64().ToString()),我会得到131258,但当我调用时:
IntPtr thisWnd = GetForegroundWindow();
IntPtr lastWnd = GetWindow(thisWnd, 2);它引用了任务栏,但当我调用上面相同的MessageBox函数时,它返回131260 (如果图标在隐藏图标区域内,则返回65774)。
发布于 2013-04-17 13:32:12
我现在不能检查,因为这是我的iPad,但我非常确定任务栏窗口都使用自定义窗口类,所以你应该能够调用GetClassName并从结果中找出你的句柄引用了什么。
https://stackoverflow.com/questions/16049772
复制相似问题