improve:issue #180
This commit is contained in:
@@ -124,6 +124,37 @@ namespace Ink_Canvas
|
||||
{
|
||||
_settings.InterceptRules[ruleName] = enabled;
|
||||
}
|
||||
|
||||
// 获取规则信息以处理父子关系
|
||||
var rule = _interceptor.GetInterceptRule(type);
|
||||
if (rule != null)
|
||||
{
|
||||
// 如果是父规则,更新所有子规则的设置
|
||||
if (rule.ChildTypes.Count > 0)
|
||||
{
|
||||
foreach (var childType in rule.ChildTypes)
|
||||
{
|
||||
var childRuleName = childType.ToString();
|
||||
if (_settings.InterceptRules.ContainsKey(childRuleName))
|
||||
{
|
||||
_settings.InterceptRules[childRuleName] = enabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 如果是子规则,更新父规则的设置
|
||||
else if (rule.ParentType.HasValue)
|
||||
{
|
||||
var parentRule = _interceptor.GetInterceptRule(rule.ParentType.Value);
|
||||
if (parentRule != null)
|
||||
{
|
||||
var parentRuleName = rule.ParentType.Value.ToString();
|
||||
if (_settings.InterceptRules.ContainsKey(parentRuleName))
|
||||
{
|
||||
_settings.InterceptRules[parentRuleName] = parentRule.IsEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
@@ -19,6 +20,9 @@ namespace Ink_Canvas.Helpers
|
||||
[DllImport("user32.dll")]
|
||||
private static extern bool EnumWindows(EnumWindowsProc enumProc, IntPtr lParam);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern bool EnumChildWindows(IntPtr hWndParent, EnumWindowsProc enumProc, IntPtr lParam);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, out uint processId);
|
||||
|
||||
@@ -110,6 +114,10 @@ namespace Ink_Canvas.Helpers
|
||||
/// </summary>
|
||||
SeewoPincoDrawingFloating,
|
||||
/// <summary>
|
||||
/// 希沃品课教师端 桌面画板
|
||||
/// </summary>
|
||||
SeewoPincoBoardService,
|
||||
/// <summary>
|
||||
/// 希沃PPT小工具
|
||||
/// </summary>
|
||||
SeewoPPTFloating,
|
||||
@@ -122,18 +130,66 @@ namespace Ink_Canvas.Helpers
|
||||
/// </summary>
|
||||
HiteAnnotationFloating,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 桌面悬浮窗
|
||||
/// 畅言智慧课堂 主栏悬浮窗
|
||||
/// </summary>
|
||||
ChangYanFloating,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 画笔设置
|
||||
/// </summary>
|
||||
ChangYanBrushSettings,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 滑动清除
|
||||
/// </summary>
|
||||
ChangYanSwipeClear,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 互动
|
||||
/// </summary>
|
||||
ChangYanInteraction,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 学科应用
|
||||
/// </summary>
|
||||
ChangYanSubjectApp,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 管控
|
||||
/// </summary>
|
||||
ChangYanControl,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 通用工具
|
||||
/// </summary>
|
||||
ChangYanCommonTools,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 场景工具栏
|
||||
/// </summary>
|
||||
ChangYanSceneToolbar,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 绘制窗口
|
||||
/// </summary>
|
||||
ChangYanDrawWindow,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 PPT悬浮窗
|
||||
/// </summary>
|
||||
ChangYanPptFloating,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 PPT页面控制
|
||||
/// </summary>
|
||||
ChangYanPptPageControl,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 PPT返回
|
||||
/// </summary>
|
||||
ChangYanPptGoBack,
|
||||
/// <summary>
|
||||
/// 畅言智慧课堂 PPT预览
|
||||
/// </summary>
|
||||
ChangYanPptPreview,
|
||||
/// <summary>
|
||||
/// 天喻教育云互动课堂 桌面悬浮窗(包括PPT控件)
|
||||
/// </summary>
|
||||
IntelligentClassFloating,
|
||||
/// <summary>
|
||||
/// 天喻教育云互动课堂 PPT悬浮窗
|
||||
/// </summary>
|
||||
IntelligentClassPptFloating,
|
||||
/// <summary>
|
||||
/// 希沃桌面 画笔悬浮窗
|
||||
/// </summary>
|
||||
SeewoDesktopAnnotationFloating,
|
||||
@@ -155,6 +211,8 @@ namespace Ink_Canvas.Helpers
|
||||
public bool IsEnabled { get; set; }
|
||||
public bool RequiresAdmin { get; set; }
|
||||
public string Description { get; set; }
|
||||
public InterceptType? ParentType { get; set; }
|
||||
public List<InterceptType> ChildTypes { get; set; } = new List<InterceptType>();
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -206,8 +264,8 @@ namespace Ink_Canvas.Helpers
|
||||
{
|
||||
Type = InterceptType.SeewoWhiteboard3Floating,
|
||||
ProcessName = "EasiNote",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
WindowTitlePattern = "Note",
|
||||
ClassNamePattern = "HwndWrapper[EasiNote.exe;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃白板3 桌面悬浮窗"
|
||||
@@ -219,7 +277,7 @@ namespace Ink_Canvas.Helpers
|
||||
Type = InterceptType.SeewoWhiteboard5Floating,
|
||||
ProcessName = "EasiNote",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
ClassNamePattern = "HwndWrapper[EasiNote;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃白板5 桌面悬浮窗"
|
||||
@@ -231,43 +289,61 @@ namespace Ink_Canvas.Helpers
|
||||
Type = InterceptType.SeewoWhiteboard5CFloating,
|
||||
ProcessName = "EasiNote5C",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
ClassNamePattern = "HwndWrapper[EasiNote5C;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃白板5C 桌面悬浮窗"
|
||||
};
|
||||
|
||||
// 希沃品课教师端 桌面悬浮窗
|
||||
// 希沃品课教师端 桌面悬浮窗(父规则)
|
||||
_interceptRules[InterceptType.SeewoPincoSideBarFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.SeewoPincoSideBarFloating,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
WindowTitlePattern = "希沃品课——appBar",
|
||||
ClassNamePattern = "Chrome_WidgetWin_1",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃品课教师端 桌面悬浮窗"
|
||||
Description = "希沃品课教师端 桌面悬浮窗",
|
||||
ParentType = null,
|
||||
ChildTypes = new List<InterceptType> { InterceptType.SeewoPincoDrawingFloating, InterceptType.SeewoPincoBoardService }
|
||||
};
|
||||
|
||||
// 希沃品课教师端 画笔悬浮窗
|
||||
// 希沃品课教师端 画笔悬浮窗(子规则)
|
||||
_interceptRules[InterceptType.SeewoPincoDrawingFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.SeewoPincoDrawingFloating,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
WindowTitlePattern = "希沃品课——integration",
|
||||
ClassNamePattern = "Chrome_WidgetWin_1",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃品课教师端 画笔悬浮窗(包括PPT控件)"
|
||||
Description = "希沃品课教师端 画笔悬浮窗(包括PPT控件)",
|
||||
ParentType = InterceptType.SeewoPincoSideBarFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 希沃品课教师端 桌面画板(子规则)
|
||||
_interceptRules[InterceptType.SeewoPincoBoardService] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.SeewoPincoBoardService,
|
||||
ProcessName = "BoardService",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "HwndWrapper[BoardService;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃品课教师端 桌面画板",
|
||||
ParentType = InterceptType.SeewoPincoSideBarFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 希沃PPT小工具
|
||||
_interceptRules[InterceptType.SeewoPPTFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.SeewoPPTFloating,
|
||||
ProcessName = "SeewoPPT",
|
||||
ProcessName = "PPTService",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
ClassNamePattern = "HwndWrapper[PPTService.exe;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃PPT小工具"
|
||||
@@ -278,8 +354,8 @@ namespace Ink_Canvas.Helpers
|
||||
{
|
||||
Type = InterceptType.AiClassFloating,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
WindowTitlePattern = "TransparentWindow",
|
||||
ClassNamePattern = "UIWndTransparent",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "AiClass 桌面悬浮窗"
|
||||
@@ -290,23 +366,147 @@ namespace Ink_Canvas.Helpers
|
||||
{
|
||||
Type = InterceptType.HiteAnnotationFloating,
|
||||
ProcessName = "HiteVision",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
WindowTitlePattern = "HiteAnnotation",
|
||||
ClassNamePattern = "Qt5QWindowToolSaveBits",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "鸿合屏幕书写"
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 桌面悬浮窗
|
||||
// 畅言智慧课堂 主栏悬浮窗(父规则)
|
||||
_interceptRules[InterceptType.ChangYanFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanFloating,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
WindowTitlePattern = "ifly",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 桌面悬浮窗"
|
||||
Description = "畅言智慧课堂 主栏悬浮窗",
|
||||
ParentType = null,
|
||||
ChildTypes = new List<InterceptType>
|
||||
{
|
||||
InterceptType.ChangYanBrushSettings,
|
||||
InterceptType.ChangYanSwipeClear,
|
||||
InterceptType.ChangYanInteraction,
|
||||
InterceptType.ChangYanSubjectApp,
|
||||
InterceptType.ChangYanControl,
|
||||
InterceptType.ChangYanCommonTools,
|
||||
InterceptType.ChangYanSceneToolbar,
|
||||
InterceptType.ChangYanDrawWindow
|
||||
}
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 画笔设置(子规则)
|
||||
_interceptRules[InterceptType.ChangYanBrushSettings] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanBrushSettings,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "画笔设置",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 画笔设置",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 滑动清除(子规则)
|
||||
_interceptRules[InterceptType.ChangYanSwipeClear] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanSwipeClear,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "滑动清除",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 滑动清除",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 互动(子规则)
|
||||
_interceptRules[InterceptType.ChangYanInteraction] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanInteraction,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "互动",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 互动",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 学科应用(子规则)
|
||||
_interceptRules[InterceptType.ChangYanSubjectApp] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanSubjectApp,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "学科应用",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 学科应用",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 管控(子规则)
|
||||
_interceptRules[InterceptType.ChangYanControl] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanControl,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "管控",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 管控",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 通用工具(子规则)
|
||||
_interceptRules[InterceptType.ChangYanCommonTools] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanCommonTools,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "通用工具",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 通用工具",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 场景工具栏(子规则)
|
||||
_interceptRules[InterceptType.ChangYanSceneToolbar] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanSceneToolbar,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "SceneToolbar",
|
||||
ClassNamePattern = "Qt5QWindowOwnDCIcon",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 场景工具栏",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 绘制窗口(子规则)
|
||||
_interceptRules[InterceptType.ChangYanDrawWindow] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanDrawWindow,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "DrawWindow",
|
||||
ClassNamePattern = "Qt5QWindowToolSaveBits",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 绘制窗口",
|
||||
ParentType = InterceptType.ChangYanFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 PPT悬浮窗
|
||||
@@ -314,32 +514,92 @@ namespace Ink_Canvas.Helpers
|
||||
{
|
||||
Type = InterceptType.ChangYanPptFloating,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
WindowTitlePattern = "Exch",
|
||||
ClassNamePattern = "Qt5QWindowToolSaveBitsOwnDC",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 PPT悬浮窗"
|
||||
Description = "畅言智慧课堂 PPT悬浮窗",
|
||||
ParentType = null,
|
||||
ChildTypes = new List<InterceptType> { InterceptType.ChangYanPptPageControl, InterceptType.ChangYanPptGoBack, InterceptType.ChangYanPptPreview }
|
||||
};
|
||||
|
||||
// 天喻教育云互动课堂 桌面悬浮窗
|
||||
// 畅言智慧课堂 PPT页面控制(子规则)
|
||||
_interceptRules[InterceptType.ChangYanPptPageControl] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanPptPageControl,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "PageCtl",
|
||||
ClassNamePattern = "Qt5QWindowToolSaveBitsOwnDC",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 PPT页面控制",
|
||||
ParentType = InterceptType.ChangYanPptFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 PPT返回(子规则)
|
||||
_interceptRules[InterceptType.ChangYanPptGoBack] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanPptGoBack,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "Goback",
|
||||
ClassNamePattern = "Qt5QWindowToolSaveBitsOwnDC",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 PPT返回",
|
||||
ParentType = InterceptType.ChangYanPptFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 畅言智慧课堂 PPT预览(子规则)
|
||||
_interceptRules[InterceptType.ChangYanPptPreview] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.ChangYanPptPreview,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "Preview",
|
||||
ClassNamePattern = "Qt5QWindowToolSaveBitsOwnDC",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "畅言智慧课堂 PPT预览",
|
||||
ParentType = InterceptType.ChangYanPptFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 天喻教育云互动课堂 桌面悬浮窗(父规则)
|
||||
_interceptRules[InterceptType.IntelligentClassFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.IntelligentClassFloating,
|
||||
ProcessName = "ClassIn",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
ProcessName = "IntelligentClassApp",
|
||||
WindowTitlePattern = "桌面小工具 - 互动课堂",
|
||||
ClassNamePattern = "HwndWrapper[IntelligentClassApp.exe;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "天喻教育云互动课堂 桌面悬浮窗(包括PPT控件)"
|
||||
Description = "天喻教育云互动课堂 桌面悬浮窗(包括PPT控件)",
|
||||
ParentType = null,
|
||||
ChildTypes = new List<InterceptType> { InterceptType.IntelligentClassPptFloating }
|
||||
};
|
||||
|
||||
// 天喻教育云互动课堂 PPT悬浮窗(子规则)
|
||||
_interceptRules[InterceptType.IntelligentClassPptFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.IntelligentClassPptFloating,
|
||||
ProcessName = "IntelligentClass",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "HwndWrapper[IntelligentClass.Office.PowerPoint.vsto|vstolocal;VSTA_Main;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "天喻教育云互动课堂 PPT悬浮窗",
|
||||
ParentType = InterceptType.IntelligentClassFloating,
|
||||
ChildTypes = new List<InterceptType>()
|
||||
};
|
||||
|
||||
// 希沃桌面 画笔悬浮窗
|
||||
_interceptRules[InterceptType.SeewoDesktopAnnotationFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.SeewoDesktopAnnotationFloating,
|
||||
ProcessName = "Seewo",
|
||||
ProcessName = "DesktopAnnotation",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
ClassNamePattern = "HwndWrapper[DesktopAnnotation.exe;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = false,
|
||||
Description = "希沃桌面 画笔悬浮窗"
|
||||
@@ -349,9 +609,9 @@ namespace Ink_Canvas.Helpers
|
||||
_interceptRules[InterceptType.SeewoDesktopSideBarFloating] = new InterceptRule
|
||||
{
|
||||
Type = InterceptType.SeewoDesktopSideBarFloating,
|
||||
ProcessName = "Seewo",
|
||||
WindowTitlePattern = "",
|
||||
ClassNamePattern = "",
|
||||
ProcessName = "ResidentSideBar",
|
||||
WindowTitlePattern = "ResidentSideBar",
|
||||
ClassNamePattern = "HwndWrapper[ResidentSideBar.exe;;",
|
||||
IsEnabled = true,
|
||||
RequiresAdmin = true,
|
||||
Description = "希沃桌面 侧栏悬浮窗"
|
||||
@@ -395,7 +655,51 @@ namespace Ink_Canvas.Helpers
|
||||
{
|
||||
if (_interceptRules.ContainsKey(type))
|
||||
{
|
||||
_interceptRules[type].IsEnabled = enabled;
|
||||
var rule = _interceptRules[type];
|
||||
rule.IsEnabled = enabled;
|
||||
|
||||
// 如果是父规则被禁用,则禁用所有子规则
|
||||
if (!enabled && rule.ChildTypes.Count > 0)
|
||||
{
|
||||
foreach (var childType in rule.ChildTypes)
|
||||
{
|
||||
if (_interceptRules.ContainsKey(childType))
|
||||
{
|
||||
_interceptRules[childType].IsEnabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 如果是父规则被启用,则启用所有子规则
|
||||
else if (enabled && rule.ChildTypes.Count > 0)
|
||||
{
|
||||
foreach (var childType in rule.ChildTypes)
|
||||
{
|
||||
if (_interceptRules.ContainsKey(childType))
|
||||
{
|
||||
_interceptRules[childType].IsEnabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 如果是子规则被禁用,检查是否需要禁用父规则
|
||||
else if (!enabled && rule.ParentType.HasValue)
|
||||
{
|
||||
var parentRule = _interceptRules[rule.ParentType.Value];
|
||||
// 检查是否还有其他启用的子规则
|
||||
bool hasEnabledChildren = parentRule.ChildTypes.Any(childType =>
|
||||
_interceptRules.ContainsKey(childType) && _interceptRules[childType].IsEnabled);
|
||||
|
||||
// 如果没有启用的子规则,则禁用父规则
|
||||
if (!hasEnabledChildren)
|
||||
{
|
||||
parentRule.IsEnabled = false;
|
||||
}
|
||||
}
|
||||
// 如果是子规则被启用,则启用父规则
|
||||
else if (enabled && rule.ParentType.HasValue)
|
||||
{
|
||||
var parentRule = _interceptRules[rule.ParentType.Value];
|
||||
parentRule.IsEnabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -470,6 +774,7 @@ namespace Ink_Canvas.Helpers
|
||||
|
||||
try
|
||||
{
|
||||
// 使用递归枚举,包括子窗口
|
||||
EnumWindows(EnumWindowsCallback, IntPtr.Zero);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -483,6 +788,9 @@ namespace Ink_Canvas.Helpers
|
||||
{
|
||||
try
|
||||
{
|
||||
// 递归枚举子窗口
|
||||
EnumChildWindows(hWnd, EnumWindowsCallback, lParam);
|
||||
|
||||
// 基本检查
|
||||
if (!IsWindow(hWnd) || !IsWindowVisible(hWnd)) return true;
|
||||
|
||||
|
||||
@@ -557,6 +557,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Icons-png\HiteAnnotation.png" />
|
||||
<Resource Include="Resources\Icons-png\AiClass.png" />
|
||||
<Resource Include="Resources\Icons-png\天喻教育云.png" />
|
||||
<Resource Include="Resources\Icons-png\畅言智慧课堂.png" />
|
||||
<Resource Include="Resources\PresentationExample\bottombar-dark.png" />
|
||||
<Resource Include="Resources\PresentationExample\bottombar-white.png" />
|
||||
<Resource Include="Resources\PresentationExample\page.jpg" />
|
||||
|
||||
@@ -2893,7 +2893,7 @@
|
||||
|
||||
<!-- 畅言智慧课堂 -->
|
||||
<ui:SimpleStackPanel Grid.Row="2" Grid.Column="0" Orientation="Vertical">
|
||||
<Image Source="/Resources/Icons-png/ChangYan.png" Margin="0,0,0,4"
|
||||
<Image Source="/Resources/Icons-png/畅言智慧课堂.png" Margin="0,0,0,4"
|
||||
Width="42" Height="42" HorizontalAlignment="Center" />
|
||||
<TextBlock Foreground="#fafafa" Text="畅言智慧课堂" HorizontalAlignment="Center"
|
||||
FontSize="14" Margin="0,0,0,4" />
|
||||
@@ -2907,7 +2907,7 @@
|
||||
|
||||
<!-- 畅言PPT -->
|
||||
<ui:SimpleStackPanel Grid.Row="2" Grid.Column="1" Orientation="Vertical">
|
||||
<Image Source="/Resources/Icons-png/ChangYanPPT.png" Margin="0,0,0,4"
|
||||
<Image Source="/Resources/Icons-png/畅言智慧课堂.png" Margin="0,0,0,4"
|
||||
Width="42" Height="42" HorizontalAlignment="Center" />
|
||||
<TextBlock Foreground="#fafafa" Text="畅言PPT" HorizontalAlignment="Center"
|
||||
FontSize="14" Margin="0,0,0,4" />
|
||||
@@ -2921,7 +2921,7 @@
|
||||
|
||||
<!-- 天喻教育云 -->
|
||||
<ui:SimpleStackPanel Grid.Row="2" Grid.Column="2" Orientation="Vertical">
|
||||
<Image Source="/Resources/Icons-png/IntelligentClass.png" Margin="0,0,0,4"
|
||||
<Image Source="/Resources/Icons-png/天喻教育云.png" Margin="0,0,0,4"
|
||||
Width="42" Height="42" HorizontalAlignment="Center" />
|
||||
<TextBlock Foreground="#fafafa" Text="天喻教育云" HorizontalAlignment="Center"
|
||||
FontSize="14" Margin="0,0,0,4" />
|
||||
@@ -2935,7 +2935,7 @@
|
||||
|
||||
<!-- 希沃桌面画笔 -->
|
||||
<ui:SimpleStackPanel Grid.Row="2" Grid.Column="3" Orientation="Vertical">
|
||||
<Image Source="/Resources/Icons-png/SeewoDesktop.png" Margin="0,0,0,4"
|
||||
<Image Source="/Resources/Icons-png/SeewoPinco.png" Margin="0,0,0,4"
|
||||
Width="42" Height="42" HorizontalAlignment="Center" />
|
||||
<TextBlock Foreground="#fafafa" Text="希沃桌面画笔" HorizontalAlignment="Center"
|
||||
FontSize="14" Margin="0,0,0,4" />
|
||||
@@ -2949,7 +2949,7 @@
|
||||
|
||||
<!-- 希沃桌面侧栏 -->
|
||||
<ui:SimpleStackPanel Grid.Row="3" Grid.Column="0" Orientation="Vertical">
|
||||
<Image Source="/Resources/Icons-png/SeewoDesktop.png" Margin="0,0,0,4"
|
||||
<Image Source="/Resources/Icons-png/SeewoPinco.png" Margin="0,0,0,4"
|
||||
Width="42" Height="42" HorizontalAlignment="Center" />
|
||||
<TextBlock Foreground="#fafafa" Text="希沃桌面侧栏" HorizontalAlignment="Center"
|
||||
FontSize="14" Margin="0,0,0,4" />
|
||||
|
||||
@@ -312,6 +312,37 @@ namespace Ink_Canvas
|
||||
{
|
||||
Settings.Automation.FloatingWindowInterceptor.InterceptRules[ruleName] = enabled;
|
||||
}
|
||||
|
||||
// 获取规则信息以处理父子关系
|
||||
var rule = _floatingWindowInterceptorManager?.GetInterceptRule(type);
|
||||
if (rule != null)
|
||||
{
|
||||
// 如果是父规则,更新所有子规则的设置
|
||||
if (rule.ChildTypes.Count > 0)
|
||||
{
|
||||
foreach (var childType in rule.ChildTypes)
|
||||
{
|
||||
var childRuleName = childType.ToString();
|
||||
if (Settings.Automation.FloatingWindowInterceptor.InterceptRules.ContainsKey(childRuleName))
|
||||
{
|
||||
Settings.Automation.FloatingWindowInterceptor.InterceptRules[childRuleName] = enabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 如果是子规则,更新父规则的设置
|
||||
else if (rule.ParentType.HasValue)
|
||||
{
|
||||
var parentRule = _floatingWindowInterceptorManager?.GetInterceptRule(rule.ParentType.Value);
|
||||
if (parentRule != null)
|
||||
{
|
||||
var parentRuleName = rule.ParentType.Value.ToString();
|
||||
if (Settings.Automation.FloatingWindowInterceptor.InterceptRules.ContainsKey(parentRuleName))
|
||||
{
|
||||
Settings.Automation.FloatingWindowInterceptor.InterceptRules[parentRuleName] = parentRule.IsEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 更新UI显示
|
||||
UpdateFloatingWindowInterceptorUI();
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
@@ -480,12 +480,25 @@ namespace Ink_Canvas
|
||||
{ "SeewoWhiteboard5CFloating", true },
|
||||
{ "SeewoPincoSideBarFloating", true },
|
||||
{ "SeewoPincoDrawingFloating", true },
|
||||
{ "SeewoPincoBoardService", true },
|
||||
{ "SeewoPPTFloating", true },
|
||||
{ "AiClassFloating", true },
|
||||
{ "HiteAnnotationFloating", true },
|
||||
{ "ChangYanFloating", true },
|
||||
{ "ChangYanBrushSettings", true },
|
||||
{ "ChangYanSwipeClear", true },
|
||||
{ "ChangYanInteraction", true },
|
||||
{ "ChangYanSubjectApp", true },
|
||||
{ "ChangYanControl", true },
|
||||
{ "ChangYanCommonTools", true },
|
||||
{ "ChangYanSceneToolbar", true },
|
||||
{ "ChangYanDrawWindow", true },
|
||||
{ "ChangYanPptFloating", true },
|
||||
{ "ChangYanPptPageControl", true },
|
||||
{ "ChangYanPptGoBack", true },
|
||||
{ "ChangYanPptPreview", true },
|
||||
{ "IntelligentClassFloating", true },
|
||||
{ "IntelligentClassPptFloating", true },
|
||||
{ "SeewoDesktopAnnotationFloating", true },
|
||||
{ "SeewoDesktopSideBarFloating", true }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user