Unexpected behaviour of Process.MainWindowHandle

妖精的绣舞 提交于 2019-11-28 11:10:46

@edg,

I guess it's an error in MSDN. You can clearly see in Relfector, that "Main window" check in .NET looks like:

private bool IsMainWindow(IntPtr handle)
{
    return (!(NativeMethods.GetWindow(new HandleRef(this, handle), 4) != IntPtr.Zero)  
             && NativeMethods.IsWindowVisible(new HandleRef(this, handle)));
}

When .NET code enumerates windows, it's pretty obvious that first visible window (i.e. top level window) will match this criteria.

Actually Process.MainWindowHandle is a handle of top-most window, it's not really the "Main Window Handle"

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!