From a1fccc2905115e166b37d65d4286a6b20daf0f71 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 18 Oct 2025 16:41:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:PPT=E4=B8=8A=E6=AC=A1=E9=A1=B5=E6=95=B0?= =?UTF-8?q?=E8=AE=B0=E5=BF=86=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/PPTManager.cs | 21 ++++++++++++++++----- Ink Canvas/MainWindow_cs/MW_PPT.cs | 19 ++++++++++++++++++- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/Ink Canvas/Helpers/PPTManager.cs b/Ink Canvas/Helpers/PPTManager.cs index 11e1bbed..732409ad 100644 --- a/Ink Canvas/Helpers/PPTManager.cs +++ b/Ink Canvas/Helpers/PPTManager.cs @@ -678,14 +678,25 @@ namespace Ink_Canvas.Helpers { try { - if (!IsConnected || !IsInSlideShow || PPTApplication == null) return false; + if (!IsConnected || PPTApplication == null) return false; if (!Marshal.IsComObject(PPTApplication)) return false; - var slideShowWindow = PPTApplication.SlideShowWindows[1]; - if (slideShowWindow?.View != null) + if (IsInSlideShow && PPTApplication.SlideShowWindows.Count >= 1) { - slideShowWindow.View.GotoSlide(slideNumber); - return true; + var slideShowWindow = PPTApplication.SlideShowWindows[1]; + if (slideShowWindow?.View != null) + { + slideShowWindow.View.GotoSlide(slideNumber); + return true; + } + } + else if (CurrentPresentation != null) + { + if (CurrentPresentation.Windows?.Count >= 1) + { + CurrentPresentation.Windows[1].View.GotoSlide(slideNumber); + return true; + } } return false; } diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs index d6dd7c8a..4fd7bce7 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -960,7 +960,24 @@ namespace Ink_Canvas _lastPlaybackPage = page; new YesOrNoNotificationWindow($"上次播放到了第 {page} 页, 是否立即跳转", () => { - _shouldNavigateToLastPage = true; + try + { + if (_pptManager?.PPTApplication != null) + { + if (_pptManager.PPTApplication.SlideShowWindows.Count >= 1) + { + pres.SlideShowWindow.View.GotoSlide(page); + } + else + { + pres.Windows[1].View.GotoSlide(page); + } + } + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"跳转到第{page}页失败: {ex}", LogHelper.LogType.Error); + } }).ShowDialog(); } }