74 lines
3.5 KiB
C#
74 lines
3.5 KiB
C#
|
using System.Windows.Automation;
|
|||
|
|
|||
|
namespace Ink_Canvas.Helpers {
|
|||
|
internal class WinTabWindowsChecker {
|
|||
|
/*
|
|||
|
public static bool IsWindowMinimized(string windowName, bool matchFullName = true) {
|
|||
|
// 获取Win+Tab预览中的窗口
|
|||
|
AutomationElementCollection windows = AutomationElement.RootElement.FindAll(
|
|||
|
TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Window));
|
|||
|
|
|||
|
foreach (AutomationElement window in windows) {
|
|||
|
//LogHelper.WriteLogToFile("" + window.Current.Name);
|
|||
|
|
|||
|
string windowTitle = window.Current.Name;
|
|||
|
|
|||
|
// 如果窗口标题包含 windowName,则进行检查
|
|||
|
if (!string.IsNullOrEmpty(windowTitle) && windowTitle.Contains(windowName)) {
|
|||
|
if (matchFullName) {
|
|||
|
if (windowTitle.Length == windowName.Length) {
|
|||
|
// 检查窗口是否最小化
|
|||
|
WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern;
|
|||
|
if (windowPattern != null) {
|
|||
|
bool isMinimized = windowPattern.Current.WindowVisualState == WindowVisualState.Minimized;
|
|||
|
//LogHelper.WriteLogToFile("" + windowTitle + isMinimized);
|
|||
|
return isMinimized;
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
// 检查窗口是否最小化
|
|||
|
WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern;
|
|||
|
if (windowPattern != null) {
|
|||
|
bool isMinimized = windowPattern.Current.WindowVisualState == WindowVisualState.Minimized;
|
|||
|
return isMinimized;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// 未找到软件白板窗口
|
|||
|
return true;
|
|||
|
}
|
|||
|
*/
|
|||
|
|
|||
|
public static bool IsWindowExisted(string windowName, bool matchFullName = true) {
|
|||
|
// 获取Win+Tab预览中的窗口
|
|||
|
AutomationElementCollection windows = AutomationElement.RootElement.FindAll(
|
|||
|
TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Window));
|
|||
|
|
|||
|
foreach (AutomationElement window in windows) {
|
|||
|
//LogHelper.WriteLogToFile("" + window.Current.Name);
|
|||
|
|
|||
|
string windowTitle = window.Current.Name;
|
|||
|
|
|||
|
// 如果窗口标题包含 windowName,则进行检查
|
|||
|
if (!string.IsNullOrEmpty(windowTitle) && windowTitle.Contains(windowName)) {
|
|||
|
if (matchFullName) {
|
|||
|
if (windowTitle.Length == windowName.Length) {
|
|||
|
WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern;
|
|||
|
if (windowPattern != null) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern;
|
|||
|
if (windowPattern != null) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|