找到任务栏的IntPtr

本文关键字:IntPtr 任务栏 | 更新日期: 2023-09-27 18:09:28

之前,我问过关于将用户返回到他们正在使用的上一个窗口的问题,但是我已经找到了解决方案,但是它产生了另一个问题。决定前一个窗口的函数有时会工作(如果发生了一组事件,我不能随意重新创建,而是随机发生)。在某一时刻,它后退2个窗口,有时后退1个窗口。它这样做是因为任务栏首先挡道,然后是窗口。

所以,为了解决这个问题,我已经决定我应该继续通过以前的窗口,直到我得到一个不是任务栏的窗口,但是,我不知道如何确定任务栏的IntPtr。

I have try:

IntPtr taskBarWnd = FindWindow("Shell_TrayWnd", null);

但它似乎不起作用。如果我调用MessageBox.Show(taskBarWnd.ToInt64().ToString()),我得到131258,但是当我这样做时:

IntPtr thisWnd = GetForegroundWindow();
IntPtr lastWnd = GetWindow(thisWnd, 2);

它引用了任务栏,但是当我调用上面相同的MessageBox函数时,它返回131260(如果图标在隐藏图标区域内,则返回65774)。

有没有人知道,如果有什么我可以尝试确定如果lastWnd我已经计算是任务栏?我不希望有检查IntPtr是否彼此接近而不是相等的东西

找到任务栏的IntPtr

我现在不能检查,因为这是我的iPad,但我很确定任务栏窗口都使用自定义窗口类,所以你应该能够调用GetClassName并从结果中找出你的句柄指的是什么