如何获取alt+tab能够切换到的上个窗口的消息?

功能建议 · 95 次浏览
原++ 创建于 2024-07-09 16:43

如题,是否可以增加支持获取alt+tab能够切换到的上个窗口的消息。谢谢


回复内容
CL 2024-07-09 17:16
#1

可以参考这个代码:

using System;
using System.Runtime.InteropServices;

class Program
{
    // 导入必要的 Win32 API 函数
    [DllImport("user32.dll")]
    private static extern IntPtr GetForegroundWindow();

    [DllImport("user32.dll", SetLastError = true)]
    private static extern IntPtr GetWindow(IntPtr hWnd, uint uCmd);

    private const uint GW_HWNDNEXT = 2;

    static void Main()
    {
        IntPtr currentWindowHandle = GetForegroundWindow();
        IntPtr nextWindowHandle = GetWindow(currentWindowHandle, GW_HWNDNEXT);

        Console.WriteLine("当前前景窗口句柄: " + currentWindowHandle);
        Console.WriteLine("下一个窗口句柄: " + nextWindowHandle);
    }
}


原++ 回复 CL 2024-07-09 17:35 :

谢谢崔大,不懂C#,超过能力范围了,是否可以帮忙写下这个子程序呢?将获取到的程序路径和窗口标题写入变量{PreviousWindow},写入格式:[icon:程序路径]窗口标题

没空就算了哈,谢谢崔大。
应该是挺实用的一个功能,比如说在动作里加了菜单模块,一个菜单项是上个窗口,想把它显示成上个窗口的标题。点击即切换到上个窗口。

CL 回复 原++ 2024-07-09 20:01 :

我试了一下,好像不行,获取的还是前台窗口。 

这个可能要记录前台窗口的信息,每次变更的时候记录上一次的。可以结合事件触发试试。

CL 2024-07-09 16:48
#2

没太看懂

原++ 回复 CL 2024-07-09 16:50 :

比如说我现在的窗口是微信,上一个窗口是edge或qq或等等,我想通过该模块获取到上个窗口的标题、句柄、类名等信息。

回复主贴