diff --git a/Ink Canvas/InkCanvasForClass.csproj b/Ink Canvas/InkCanvasForClass.csproj index a95c13e..0a3be70 100644 --- a/Ink Canvas/InkCanvasForClass.csproj +++ b/Ink Canvas/InkCanvasForClass.csproj @@ -213,6 +213,7 @@ + @@ -330,6 +331,7 @@ + @@ -505,8 +507,10 @@ + + diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index eeb0cf9..7731704 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -1405,6 +1405,33 @@ IsOn="True" FontFamily="Microsoft YaHei UI" FontWeight="Bold" Toggled="ToggleSwitchAutoKillHiteAnnotation_Toggled" /> + + + + + + + + + + + + + DesktopAnnotation + + - - - + ValueChanged="InkAlphaSlider_ValueChanged"/> - - - + ValueChanged="InkAlphaSlider_ValueChanged"/> { @@ -44,7 +49,7 @@ namespace Ink_Canvas { ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); if (sender == Fold_Icon && lastBorderMouseDownObject != Fold_Icon) isShouldRejectAction = true; }); - + if (isShouldRejectAction) return; // FloatingBarIcons_MouseUp_New(sender); @@ -186,6 +191,11 @@ namespace Ink_Canvas { } public async void UnFoldFloatingBar_MouseUp(object sender, MouseButtonEventArgs e) { + await UnFoldFloatingBar(sender); + } + + public async Task UnFoldFloatingBar(object sender) + { await Dispatcher.InvokeAsync(() => { LeftUnFoldButtonQuickPanel.Visibility = Visibility.Collapsed; RightUnFoldButtonQuickPanel.Visibility = Visibility.Collapsed; @@ -206,12 +216,14 @@ namespace Ink_Canvas { await Task.Delay(0); await Dispatcher.InvokeAsync(() => { - if (StackPanelPPTControls.Visibility == Visibility.Visible) { + if (StackPanelPPTControls.Visibility == Visibility.Visible) + { if (Settings.PowerPointSettings.IsShowBottomPPTNavigationPanel && isDisplayingOrHidingBlackboard == false) AnimationsHelper.ShowWithSlideFromBottomAndFade(BottomViewboxPPTSidesControl); if (Settings.PowerPointSettings.IsShowSidePPTNavigationPanel && - isDisplayingOrHidingBlackboard == false) { + isDisplayingOrHidingBlackboard == false) + { AnimationsHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); AnimationsHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); } @@ -227,8 +239,7 @@ namespace Ink_Canvas { isFloatingBarChangingHideMode = false; } - private async void - SidePannelMarginAnimation(int MarginFromEdge, bool isNoAnimation = false) // Possible value: -50, -10 + private async void SidePannelMarginAnimation(int MarginFromEdge, bool isNoAnimation = false) // Possible value: -50, -10 { await Dispatcher.InvokeAsync(() => { if (MarginFromEdge == -10) LeftSidePanel.Visibility = Visibility.Visible; diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs index 60ccc93..945851c 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -17,8 +17,7 @@ using MessageBox = System.Windows.MessageBox; using iNKORE.UI.WPF.Modern; using Microsoft.Office.Core; -namespace Ink_Canvas -{ +namespace Ink_Canvas { public partial class MainWindow : Window { public static Microsoft.Office.Interop.PowerPoint.Application pptApplication = null; public static Presentation presentation = null; @@ -81,7 +80,6 @@ namespace Ink_Canvas private static bool IsShowingAutoplaySlidesWindow = false; - private void TimerCheckPPT_Elapsed(object sender, ElapsedEventArgs e) { if (IsShowingRestoreHiddenSlidesWindow || IsShowingAutoplaySlidesWindow) return; try { @@ -102,7 +100,7 @@ namespace Ink_Canvas timerCheckPPT.Stop(); //获得演示文稿对象 presentation = pptApplication.ActivePresentation; - + // 获得幻灯片对象集合 slides = presentation.Slides; @@ -132,7 +130,7 @@ namespace Ink_Canvas // 此处是已经开启了 PptApplication_PresentationOpen(null); - + //如果检测到已经开始放映,则立即进入画板模式 if (pptApplication.SlideShowWindows.Count >= 1) PptApplication_SlideShowBegin(pptApplication.SlideShowWindows[1]); @@ -151,8 +149,7 @@ namespace Ink_Canvas var folderPath = Settings.Automation.AutoSavedStrokesLocation + @"\Auto Saved - Presentations\" + presentation.Name + "_" + presentation.Slides.Count; - try - { + try { if (!File.Exists(folderPath + "/Position")) return; if (!int.TryParse(File.ReadAllText(folderPath + "/Position"), out var page)) return; if (page <= 0) return; @@ -164,27 +161,23 @@ namespace Ink_Canvas presentation.Windows[1].View.GotoSlide(page); }).ShowDialog(); } - catch (Exception ex) - { + catch (Exception ex) { LogHelper.WriteLogToFile(ex.ToString(), LogHelper.LogType.Error); } }), DispatcherPriority.Normal); //检查是否有隐藏幻灯片 - if (Settings.PowerPointSettings.IsNotifyHiddenPage) - { + if (Settings.PowerPointSettings.IsNotifyHiddenPage) { var isHaveHiddenSlide = false; foreach (Slide slide in slides) - if (slide.SlideShowTransition.Hidden == Microsoft.Office.Core.MsoTriState.msoTrue) - { + if (slide.SlideShowTransition.Hidden == Microsoft.Office.Core.MsoTriState.msoTrue) { isHaveHiddenSlide = true; break; } Application.Current.Dispatcher.BeginInvoke(new Action(() => { - if (isHaveHiddenSlide && !IsShowingRestoreHiddenSlidesWindow) - { + if (isHaveHiddenSlide && !IsShowingRestoreHiddenSlidesWindow) { IsShowingRestoreHiddenSlidesWindow = true; new YesOrNoNotificationWindow("检测到此演示文档中包含隐藏的幻灯片,是否取消隐藏?", () => { @@ -194,11 +187,8 @@ namespace Ink_Canvas slide.SlideShowTransition.Hidden = Microsoft.Office.Core.MsoTriState.msoFalse; IsShowingRestoreHiddenSlidesWindow = false; - }, () => { - IsShowingRestoreHiddenSlidesWindow = false; - }, () => { - IsShowingRestoreHiddenSlidesWindow = false; - }).ShowDialog(); + }, () => { IsShowingRestoreHiddenSlidesWindow = false; }, + () => { IsShowingRestoreHiddenSlidesWindow = false; }).ShowDialog(); } BtnPPTSlideShow.Visibility = Visibility.Visible; @@ -208,34 +198,27 @@ namespace Ink_Canvas //检测是否有自动播放 if (Settings.PowerPointSettings.IsNotifyAutoPlayPresentation // && presentation.SlideShowSettings.AdvanceMode == PpSlideShowAdvanceMode.ppSlideShowUseSlideTimings - && BtnPPTSlideShowEnd.Visibility != Visibility.Visible) - { + && BtnPPTSlideShowEnd.Visibility != Visibility.Visible) { bool hasSlideTimings = false; - foreach (Slide slide in presentation.Slides) - { - if (slide.SlideShowTransition.AdvanceOnTime == MsoTriState.msoTrue && slide.SlideShowTransition.AdvanceTime > 0) - { + foreach (Slide slide in presentation.Slides) { + if (slide.SlideShowTransition.AdvanceOnTime == MsoTriState.msoTrue && + slide.SlideShowTransition.AdvanceTime > 0) { hasSlideTimings = true; break; } } - if (hasSlideTimings) - { - Application.Current.Dispatcher.BeginInvoke((Action)(() => - { - if (hasSlideTimings && !IsShowingAutoplaySlidesWindow) - { + + if (hasSlideTimings) { + Application.Current.Dispatcher.BeginInvoke((Action)(() => { + if (hasSlideTimings && !IsShowingAutoplaySlidesWindow) { IsShowingAutoplaySlidesWindow = true; new YesOrNoNotificationWindow("检测到此演示文档中自动播放或排练计时已经启用,可能导致幻灯片自动翻页,是否取消?", () => { presentation.SlideShowSettings.AdvanceMode = PpSlideShowAdvanceMode.ppSlideShowManualAdvance; IsShowingAutoplaySlidesWindow = false; - }, () => { - IsShowingAutoplaySlidesWindow = false; - }, () => { - IsShowingAutoplaySlidesWindow = false; - }).ShowDialog(); + }, () => { IsShowingAutoplaySlidesWindow = false; }, + () => { IsShowingAutoplaySlidesWindow = false; }).ShowDialog(); } })); presentation.SlideShowSettings.AdvanceMode = PpSlideShowAdvanceMode.ppSlideShowManualAdvance; @@ -262,15 +245,16 @@ namespace Ink_Canvas private string pptName = null; - private void PptApplication_SlideShowBegin(SlideShowWindow Wn) { + private async void PptApplication_SlideShowBegin(SlideShowWindow Wn) { if (Settings.Automation.IsAutoFoldInPPTSlideShow && !isFloatingBarFolded) - FoldFloatingBar_MouseUp(null, null); - else if (isFloatingBarFolded) UnFoldFloatingBar_MouseUp(null, null); + await FoldFloatingBar(new object()); + else if (isFloatingBarFolded) await UnFoldFloatingBar(new object()); - isStopInkReplay=true; + isStopInkReplay = true; LogHelper.WriteLogToFile("PowerPoint Application Slide Show Begin", LogHelper.LogType.Event); - Application.Current.Dispatcher.Invoke(() => { + + await Application.Current.Dispatcher.InvokeAsync(() => { if (currentMode != 0) ImageBlackboard_MouseUp(null, null); //调整颜色 @@ -286,14 +270,12 @@ namespace Ink_Canvas //SymbolIconBtnColorBlackContent.Foreground = Brushes.White; ThemeManager.Current.ApplicationTheme = ApplicationTheme.Dark; //BtnExit.Background = new SolidColorBrush(StringToColor("#AACCCCCC")); - } - else { + } else { //Dark //BtnExit.Background = new SolidColorBrush(StringToColor("#AA555555")); } } - } - else if (screenRatio == -256 / 135) { } + } else if (screenRatio == -256 / 135) { } lastDesktopInkColor = 1; @@ -343,8 +325,7 @@ namespace Ink_Canvas if (Settings.PowerPointSettings.IsShowSidePPTNavigationPanel && !isFloatingBarFolded) { AnimationsHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); AnimationsHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); - } - else { + } else { LeftSidePanelForPPTNavigation.Visibility = Visibility.Collapsed; RightSidePanelForPPTNavigation.Visibility = Visibility.Collapsed; } @@ -352,10 +333,10 @@ namespace Ink_Canvas BtnPPTSlideShow.Visibility = Visibility.Collapsed; BtnPPTSlideShowEnd.Visibility = Visibility.Visible; ViewBoxStackPanelMain.Margin = new Thickness(10, 10, 10, 10); - ViewboxFloatingBar.Opacity = Settings.Appearance.ViewboxFloatingBarOpacityInPPTValue; if (Settings.PowerPointSettings.IsShowCanvasAtNewSlideShow && + !Settings.Automation.IsAutoFoldInPPTSlideShow && GridTransparencyFakeBackground.Background == Brushes.Transparent && !isFloatingBarFolded) { if (currentMode != 0) { currentMode = 0; @@ -378,21 +359,20 @@ namespace Ink_Canvas BorderFloatingBarMainControls.Visibility = Visibility.Visible; - if (Settings.PowerPointSettings.IsShowCanvasAtNewSlideShow) + if (Settings.PowerPointSettings.IsShowCanvasAtNewSlideShow && + !Settings.Automation.IsAutoFoldInPPTSlideShow) BtnColorRed_Click(null, null); isEnteredSlideShowEndEvent = false; PptNavigationTextBlock.Text = $"{Wn.View.CurrentShowPosition}/{Wn.Presentation.Slides.Count}"; LogHelper.NewLog("PowerPoint Slide Show Loading process complete"); - if (!isFloatingBarFolded) - { + if (!isFloatingBarFolded) { new Thread(new ThreadStart(() => { Thread.Sleep(100); Application.Current.Dispatcher.Invoke(() => { ViewboxFloatingBarMarginAnimation(60); }); })).Start(); } - }); } @@ -427,8 +407,7 @@ namespace Ink_Canvas LogHelper.WriteLogToFile(string.Format( "Saved strokes for Slide {0}, size={1}, byteLength={2}", i.ToString(), memoryStreams[i].Length, byteLength)); - } - else { + } else { File.Delete(folderPath + @"\" + i.ToString("0000") + ".icstk"); } } @@ -448,8 +427,7 @@ namespace Ink_Canvas BtnExit.Foreground = Brushes.Black; //SymbolIconBtnColorBlackContent.Foreground = Brushes.White; ThemeManager.Current.ApplicationTheme = ApplicationTheme.Light; - } - else { + } else { //Dark } @@ -675,6 +653,5 @@ namespace Ink_Canvas private void ImagePPTControlEnd_MouseUp(object sender, MouseButtonEventArgs e) { BtnPPTSlideShowEnd_Click(BtnPPTSlideShowEnd, null); } - } } \ No newline at end of file diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs index 7fc43fb..8aa95f6 100644 --- a/Ink Canvas/MainWindow_cs/MW_Settings.cs +++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs @@ -677,7 +677,8 @@ namespace Ink_Canvas { if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas - || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT) + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) timerKillProcess.Start(); else timerKillProcess.Stop(); @@ -689,7 +690,8 @@ namespace Ink_Canvas { SaveSettingsToFile(); if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas - || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT) + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) timerKillProcess.Start(); else timerKillProcess.Stop(); @@ -701,7 +703,36 @@ namespace Ink_Canvas { SaveSettingsToFile(); if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas - || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT) + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) + timerKillProcess.Start(); + else + timerKillProcess.Stop(); + } + + private void ToggleSwitchAutoKillVComYouJiao_Toggled(object sender, RoutedEventArgs e) + { + if (!isLoaded) return; + Settings.Automation.IsAutoKillVComYouJiao = ToggleSwitchAutoKillVComYouJiao.IsOn; + SaveSettingsToFile(); + if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || + Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) + timerKillProcess.Start(); + else + timerKillProcess.Stop(); + } + + private void ToggleSwitchAutoKillSeewoLauncher2DesktopAnnotation_Toggled(object sender, RoutedEventArgs e) + { + if (!isLoaded) return; + Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation = ToggleSwitchAutoKillSeewoLauncher2DesktopAnnotation.IsOn; + SaveSettingsToFile(); + if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || + Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) timerKillProcess.Start(); else timerKillProcess.Stop(); @@ -714,7 +745,8 @@ namespace Ink_Canvas { SaveSettingsToFile(); if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas - || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT) + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) timerKillProcess.Start(); else timerKillProcess.Stop(); @@ -727,7 +759,8 @@ namespace Ink_Canvas { SaveSettingsToFile(); if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas - || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT) + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) timerKillProcess.Start(); else timerKillProcess.Stop(); @@ -740,7 +773,8 @@ namespace Ink_Canvas { SaveSettingsToFile(); if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas - || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT) + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) timerKillProcess.Start(); else timerKillProcess.Stop(); @@ -1014,9 +1048,11 @@ namespace Ink_Canvas { Settings.Automation.IsAutoFoldInPPTSlideShow = false; Settings.Automation.IsAutoKillPptService = false; Settings.Automation.IsAutoKillEasiNote = false; + Settings.Automation.IsAutoKillVComYouJiao = false; Settings.Automation.IsAutoKillInkCanvas = false; Settings.Automation.IsAutoKillICA = false; Settings.Automation.IsAutoKillIDT = true; + Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation = false; Settings.Automation.IsSaveScreenshotsInDateFolders = false; Settings.Automation.IsAutoSaveStrokesAtScreenshot = true; Settings.Automation.IsAutoSaveStrokesAtClear = true; diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs index 2ae6bac..3ad42cc 100644 --- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs +++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs @@ -564,7 +564,8 @@ namespace Ink_Canvas { if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas - || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT) { + || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || Settings.Automation.IsAutoKillVComYouJiao + || Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) { timerKillProcess.Start(); } else { timerKillProcess.Stop(); @@ -576,12 +577,17 @@ namespace Ink_Canvas { ToggleSwitchAutoKillPptService.IsOn = Settings.Automation.IsAutoKillPptService; + ToggleSwitchAutoKillVComYouJiao.IsOn = Settings.Automation.IsAutoKillVComYouJiao; + ToggleSwitchAutoKillInkCanvas.IsOn = Settings.Automation.IsAutoKillInkCanvas; ToggleSwitchAutoKillICA.IsOn = Settings.Automation.IsAutoKillICA; ToggleSwitchAutoKillIDT.IsOn = Settings.Automation.IsAutoKillIDT; + ToggleSwitchAutoKillSeewoLauncher2DesktopAnnotation.IsOn = + Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation; + ToggleSwitchAutoSaveStrokesAtClear.IsOn = Settings.Automation.IsAutoSaveStrokesAtClear; ToggleSwitchSaveScreenshotsInDateFolders.IsOn = Settings.Automation.IsSaveScreenshotsInDateFolders; diff --git a/Ink Canvas/MainWindow_cs/MW_Timer.cs b/Ink Canvas/MainWindow_cs/MW_Timer.cs index 0ae9bb3..f93c3d4 100644 --- a/Ink Canvas/MainWindow_cs/MW_Timer.cs +++ b/Ink Canvas/MainWindow_cs/MW_Timer.cs @@ -83,9 +83,6 @@ namespace Ink_Canvas { } private void TimerKillProcess_Elapsed(object sender, ElapsedEventArgs e) { - - Trace.WriteLine("timer up"); - try { // 希沃相关: easinote swenserver RemoteProcess EasiNote.MediaHttpService smartnote.cloud EasiUpdate smartnote EasiUpdate3 EasiUpdate3Protect SeewoP2P CefSharp.BrowserSubprocess SeewoUploadService var arg = "/F"; @@ -106,6 +103,12 @@ namespace Ink_Canvas { if (processes.Length > 0) arg += " /IM HiteAnnotation.exe"; } + if (Settings.Automation.IsAutoKillVComYouJiao) + { + var processes = Process.GetProcessesByName("VcomTeach"); + if (processes.Length > 0) arg += " /IM VcomTeach.exe"; + } + if (Settings.Automation.IsAutoKillICA) { var processesAnnotation = Process.GetProcessesByName("Ink Canvas Annotation"); var processesArtistry = Process.GetProcessesByName("Ink Canvas Artistry"); @@ -123,6 +126,12 @@ namespace Ink_Canvas { if (processes.Length > 0) arg += " /IM \"智绘教.exe\""; } + if (Settings.Automation.IsAutoKillSeewoLauncher2DesktopAnnotation) { + //由于希沃桌面2.0提供的桌面批注是64位应用程序,32位程序无法访问,目前暂不做精准匹配,只匹配进程名称,后面会考虑封装一套基于P/Invoke和WMI的综合进程识别方案。 + var processes = Process.GetProcessesByName("DesktopAnnotation"); + if (processes.Length > 0) arg += " /IM DesktopAnnotation.exe"; + } + if (arg != "/F") { var p = new Process(); p.StartInfo = new ProcessStartInfo("taskkill", arg); @@ -158,11 +167,23 @@ namespace Ink_Canvas { ShowNotification("“智绘教”已自动关闭"); }); } + + if (arg.Contains("VcomTeach")) + { + Dispatcher.Invoke(() => { + ShowNotification("“优教授课端”已自动关闭"); + }); + } + + if (arg.Contains("DesktopAnnotation")) + { + Dispatcher.Invoke(() => { + ShowNotification("“DesktopAnnotation”已自动关闭"); + }); + } } } - catch { - Trace.WriteLine("timer has error"); - } + catch {} } diff --git a/Ink Canvas/Resources/Icons-png/Seewo2Annotation.png b/Ink Canvas/Resources/Icons-png/Seewo2Annotation.png new file mode 100644 index 0000000..e1c62d9 Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/Seewo2Annotation.png differ diff --git a/Ink Canvas/Resources/Icons-png/VComYouJiao.png b/Ink Canvas/Resources/Icons-png/VComYouJiao.png new file mode 100644 index 0000000..a8e6417 Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/VComYouJiao.png differ diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs index ca2818d..706ab00 100644 --- a/Ink Canvas/Resources/Settings.cs +++ b/Ink Canvas/Resources/Settings.cs @@ -273,6 +273,12 @@ namespace Ink_Canvas [JsonProperty("isAutoKillHiteAnnotation")] public bool IsAutoKillHiteAnnotation { get; set; } = false; + [JsonProperty("isAutoKillVComYouJiao")] + public bool IsAutoKillVComYouJiao { get; set; } = false; + + [JsonProperty("isAutoKillSeewoLauncher2DesktopAnnotation")] + public bool IsAutoKillSeewoLauncher2DesktopAnnotation { get; set; } = false; + [JsonProperty("isAutoKillInkCanvas")] public bool IsAutoKillInkCanvas { get; set; } = false;