public static IntPtr GetFocus() { NM.GUITHREADINFO CurrentGuiInfo = new NM.GUITHREADINFO(); CurrentGuiInfo.cbSize = Marshal.SizeOf(CurrentGuiInfo); NM.GetGUIThreadInfo(0, ref CurrentGuiInfo); return(CurrentGuiInfo.hwndFocus); }
public static bool ActiveWindow(IntPtr Parent) { NM.GUITHREADINFO CurrentGuiInfo = new NM.GUITHREADINFO(); CurrentGuiInfo.cbSize = Marshal.SizeOf(CurrentGuiInfo); NM.GetGUIThreadInfo(0, ref CurrentGuiInfo); if (CurrentGuiInfo.hwndActive == Parent) { return(true); } else { return(false); } }
public static bool HasFocus(IntPtr Parent, IntPtr Control) { NM.GUITHREADINFO CurrentGuiInfo = new NM.GUITHREADINFO(); CurrentGuiInfo.cbSize = Marshal.SizeOf(CurrentGuiInfo); NM.GetGUIThreadInfo(0, ref CurrentGuiInfo); //Debug.Listeners[0].WriteLine("\t CurrentGuiInfo.hwndActive: " + CurrentGuiInfo.hwndActive.ToString()); //Debug.Listeners[0].WriteLine("\t CurrentGuiInfo.hwndFocus: " + CurrentGuiInfo.hwndFocus.ToString()); if (Parent == IntPtr.Zero) { if (CurrentGuiInfo.hwndActive == Control) { return(true); } } else { if (CurrentGuiInfo.hwndActive == Parent) { if (CurrentGuiInfo.hwndFocus == Control) { return(true); } else if (NM.IsChild(Control, CurrentGuiInfo.hwndFocus)) { return(true); } } else { if (CurrentGuiInfo.hwndActive == Control) { if (CurrentGuiInfo.hwndFocus == Control) { return(true); } else if (NM.IsChild(Control, CurrentGuiInfo.hwndFocus)) { return(true); } } } } return(false); }