0
C#에서 모든 윈도우 핸들러를 어떻게 수집합니까? 부모님뿐만 아니라 모든 창문이 필요합니다. 고마워,모든 윈도우 핸들러 수집
C#에서 모든 윈도우 핸들러를 어떻게 수집합니까? 부모님뿐만 아니라 모든 창문이 필요합니다. 고마워,모든 윈도우 핸들러 수집
다음 유틸리티 클래스를 사용해보십시오. 주어진 창 핸들을 사용하면 관련된 모든 하위 창을 반환합니다.
public class WindowFinder
{
private class Helper
{
internal List<IntPtr> Windows = new List<IntPtr>();
internal bool ProcessWindow(IntPtr handle, IntPtr parameter)
{
Windows.Add(handle);
return true;
}
}
private delegate bool EnumWindowProc(IntPtr hWnd, IntPtr parameter);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowProc lpEnumFunc, IntPtr lParam);
public static List<IntPtr> GetChildWindows(IntPtr parentWindow)
{
var helper = new Helper();
EnumChildWindows(parentWindow, helper.ProcessWindow, IntPtr.Zero);
return helper.Windows;
}
}
정확히 무엇을 찾고 계신가요? –
일반적으로 나는 윈도우 핸들러를 가지고 있으며 윈도우가 부모인지 윈도우를 찾고 있는지 확인하고 WS_EX_DLGMODALFRAME 스타일을 가지고 있는지 확인하고 싶습니다. – Guy