diff --git a/Ink Canvas/FloatingWindowInterceptorManager.cs b/Ink Canvas/FloatingWindowInterceptorManager.cs index 9eb9f6ea..2c505220 100644 --- a/Ink Canvas/FloatingWindowInterceptorManager.cs +++ b/Ink Canvas/FloatingWindowInterceptorManager.cs @@ -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) { diff --git a/Ink Canvas/Helpers/FloatingWindowInterceptor.cs b/Ink Canvas/Helpers/FloatingWindowInterceptor.cs index 33ffafac..5d401a71 100644 --- a/Ink Canvas/Helpers/FloatingWindowInterceptor.cs +++ b/Ink Canvas/Helpers/FloatingWindowInterceptor.cs @@ -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 /// SeewoPincoDrawingFloating, /// + /// 希沃品课教师端 桌面画板 + /// + SeewoPincoBoardService, + /// /// 希沃PPT小工具 /// SeewoPPTFloating, @@ -122,18 +130,66 @@ namespace Ink_Canvas.Helpers /// HiteAnnotationFloating, /// - /// 畅言智慧课堂 桌面悬浮窗 + /// 畅言智慧课堂 主栏悬浮窗 /// ChangYanFloating, /// + /// 畅言智慧课堂 画笔设置 + /// + ChangYanBrushSettings, + /// + /// 畅言智慧课堂 滑动清除 + /// + ChangYanSwipeClear, + /// + /// 畅言智慧课堂 互动 + /// + ChangYanInteraction, + /// + /// 畅言智慧课堂 学科应用 + /// + ChangYanSubjectApp, + /// + /// 畅言智慧课堂 管控 + /// + ChangYanControl, + /// + /// 畅言智慧课堂 通用工具 + /// + ChangYanCommonTools, + /// + /// 畅言智慧课堂 场景工具栏 + /// + ChangYanSceneToolbar, + /// + /// 畅言智慧课堂 绘制窗口 + /// + ChangYanDrawWindow, + /// /// 畅言智慧课堂 PPT悬浮窗 /// ChangYanPptFloating, /// + /// 畅言智慧课堂 PPT页面控制 + /// + ChangYanPptPageControl, + /// + /// 畅言智慧课堂 PPT返回 + /// + ChangYanPptGoBack, + /// + /// 畅言智慧课堂 PPT预览 + /// + ChangYanPptPreview, + /// /// 天喻教育云互动课堂 桌面悬浮窗(包括PPT控件) /// IntelligentClassFloating, /// + /// 天喻教育云互动课堂 PPT悬浮窗 + /// + IntelligentClassPptFloating, + /// /// 希沃桌面 画笔悬浮窗 /// 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 ChildTypes { get; set; } = new List(); } #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.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() + }; + + // 希沃品课教师端 桌面画板(子规则) + _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() }; // 希沃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.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() + }; + + // 畅言智慧课堂 滑动清除(子规则) + _interceptRules[InterceptType.ChangYanSwipeClear] = new InterceptRule + { + Type = InterceptType.ChangYanSwipeClear, + ProcessName = "ClassIn", + WindowTitlePattern = "滑动清除", + ClassNamePattern = "Qt5QWindowOwnDCIcon", + IsEnabled = true, + RequiresAdmin = true, + Description = "畅言智慧课堂 滑动清除", + ParentType = InterceptType.ChangYanFloating, + ChildTypes = new List() + }; + + // 畅言智慧课堂 互动(子规则) + _interceptRules[InterceptType.ChangYanInteraction] = new InterceptRule + { + Type = InterceptType.ChangYanInteraction, + ProcessName = "ClassIn", + WindowTitlePattern = "互动", + ClassNamePattern = "Qt5QWindowOwnDCIcon", + IsEnabled = true, + RequiresAdmin = true, + Description = "畅言智慧课堂 互动", + ParentType = InterceptType.ChangYanFloating, + ChildTypes = new List() + }; + + // 畅言智慧课堂 学科应用(子规则) + _interceptRules[InterceptType.ChangYanSubjectApp] = new InterceptRule + { + Type = InterceptType.ChangYanSubjectApp, + ProcessName = "ClassIn", + WindowTitlePattern = "学科应用", + ClassNamePattern = "Qt5QWindowOwnDCIcon", + IsEnabled = true, + RequiresAdmin = true, + Description = "畅言智慧课堂 学科应用", + ParentType = InterceptType.ChangYanFloating, + ChildTypes = new List() + }; + + // 畅言智慧课堂 管控(子规则) + _interceptRules[InterceptType.ChangYanControl] = new InterceptRule + { + Type = InterceptType.ChangYanControl, + ProcessName = "ClassIn", + WindowTitlePattern = "管控", + ClassNamePattern = "Qt5QWindowOwnDCIcon", + IsEnabled = true, + RequiresAdmin = true, + Description = "畅言智慧课堂 管控", + ParentType = InterceptType.ChangYanFloating, + ChildTypes = new List() + }; + + // 畅言智慧课堂 通用工具(子规则) + _interceptRules[InterceptType.ChangYanCommonTools] = new InterceptRule + { + Type = InterceptType.ChangYanCommonTools, + ProcessName = "ClassIn", + WindowTitlePattern = "通用工具", + ClassNamePattern = "Qt5QWindowOwnDCIcon", + IsEnabled = true, + RequiresAdmin = true, + Description = "畅言智慧课堂 通用工具", + ParentType = InterceptType.ChangYanFloating, + ChildTypes = new List() + }; + + // 畅言智慧课堂 场景工具栏(子规则) + _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() + }; + + // 畅言智慧课堂 绘制窗口(子规则) + _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() }; // 畅言智慧课堂 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.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() + }; + + // 畅言智慧课堂 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() + }; + + // 畅言智慧课堂 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() + }; + + // 天喻教育云互动课堂 桌面悬浮窗(父规则) _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.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() }; // 希沃桌面 画笔悬浮窗 _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; diff --git a/Ink Canvas/InkCanvasForClass.csproj b/Ink Canvas/InkCanvasForClass.csproj index 6261f394..8dc5b359 100644 --- a/Ink Canvas/InkCanvasForClass.csproj +++ b/Ink Canvas/InkCanvasForClass.csproj @@ -557,6 +557,9 @@ + + + diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 735d6df4..aafb6fc1 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -2893,7 +2893,7 @@ - @@ -2907,7 +2907,7 @@ - @@ -2921,7 +2921,7 @@ - @@ -2935,7 +2935,7 @@ - @@ -2949,7 +2949,7 @@ - diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingWindowInterceptor.cs b/Ink Canvas/MainWindow_cs/MW_FloatingWindowInterceptor.cs index 5d3ae88f..c0e0fd4f 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingWindowInterceptor.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingWindowInterceptor.cs @@ -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(); diff --git a/Ink Canvas/Resources/Icons-png/AiClass.png b/Ink Canvas/Resources/Icons-png/AiClass.png new file mode 100644 index 00000000..502af30d Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/AiClass.png differ diff --git a/Ink Canvas/Resources/Icons-png/天喻教育云.png b/Ink Canvas/Resources/Icons-png/天喻教育云.png new file mode 100644 index 00000000..c8e44e8f Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/天喻教育云.png differ diff --git a/Ink Canvas/Resources/Icons-png/畅言智慧课堂.png b/Ink Canvas/Resources/Icons-png/畅言智慧课堂.png new file mode 100644 index 00000000..2dad8b45 Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/畅言智慧课堂.png differ diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs index f2afd357..25a82220 100644 --- a/Ink Canvas/Resources/Settings.cs +++ b/Ink Canvas/Resources/Settings.cs @@ -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 } };