相关疑难解决方法(0)

枚举像alt-tab这样的窗口

我正在创建一个alt-tab替代Vista,但我列出了所有活动程序的一些问题.

我正在使用EnumWindows获取Windows列表,但这个列表很大.当我只打开10个窗户时,它包含大约400个项目.对于每一个控件和许多其他东西来说,它似乎都是一个蠢货.

因此,我必须以某种方式过滤此列表,但我无法像alt-tab那样完全执行此操作.

这是我现在用来过滤列表的代码.它工作得很好,但我得到了一些不需要的窗口,如Visual Studio中的独立工具窗口,我也想念iTunes和Warcraft3等窗口.

private bool ShouldWindowBeDisplayed(IntPtr window)
{
    uint windowStyles = Win32.GetWindowLong(window, GWL.GWL_STYLE);

    if (((uint)WindowStyles.WS_VISIBLE & windowStyles) != (uint)WindowStyles.WS_VISIBLE ||
        ((uint)WindowExStyles.WS_EX_APPWINDOW & windowStyles) != (uint)WindowExStyles.WS_EX_APPWINDOW)
    {
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

c# windows winapi

27
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

winapi ×1

windows ×1