【问题标题】:Getting handles of all controls on a window using it's classname使用其类名获取窗口上所有控件的句柄
【发布时间】:2015-07-13 11:57:03
【问题描述】:

我可以通过单击使用鼠标位置来获取句柄。但是我需要在不点击的情况下使用它的类名找到窗口上所有控件的句柄。我必须得到它们,而窗户打开。有可能吗?

【问题讨论】:

    标签: c# .net handle hwnd spy++


    【解决方案1】:

    您可以组合两个流行的 API:

    [DllImport("user32.Dll")]
    private static extern Boolean EnumChildWindows(int hWndParent, PChildCallBack lpEnumFunc, int lParam);
    

    此函数用于获取窗口内的所有“子”窗口。第二个是

    [DllImport("User32.Dll")]
    private static extern void GetClassName(int hWnd, StringBuilder s, int nMaxCount);
    

    使用此方法过滤枚举窗口是否具有特定的类名。

    编码愉快!

    【讨论】:

      【解决方案2】:

      是的,您需要使用各种 API 调用,从 EnumWindows 开始,可能还有 GetClassName

      【讨论】:

        猜你喜欢
        • 2011-02-26
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-13
        • 2011-01-28
        相关资源
        最近更新 更多