From 4eb97733984c45a7883b473ebfc271710eda82ec Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sun, 18 Jan 2026 07:58:41 +0800 Subject: [PATCH] =?UTF-8?q?improve:PPT=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/PPTManager.cs | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Ink Canvas/Helpers/PPTManager.cs b/Ink Canvas/Helpers/PPTManager.cs index 9b22e29b..bf29da51 100644 --- a/Ink Canvas/Helpers/PPTManager.cs +++ b/Ink Canvas/Helpers/PPTManager.cs @@ -389,9 +389,46 @@ namespace Ink_Canvas.Helpers { if (!PPTROTConnectionHelper.AreComObjectsEqual(_pptSlideShowWindow, slideShowWindow)) { + bool isNewWindow = _pptSlideShowWindow == null; PPTROTConnectionHelper.SafeReleaseComObject(_pptSlideShowWindow); _pptSlideShowWindow = slideShowWindow; LogHelper.WriteLogToFile("发现窗口,成功设置 slideshowwindow", LogHelper.LogType.Trace); + + if (isNewWindow) + { + try + { + _updateTime = DateTime.Now; + _lastPolledSlideNumber = -1; + + if (_pptActivePresentation != null) + { + try + { + int currentPage = GetCurrentSlideIndex(_pptSlideShowWindow); + int totalPage = GetTotalSlideIndex(_pptActivePresentation); + + if (currentPage >= totalPage) _polling = 1; + else _polling = 0; + + SlidesCount = totalPage; + _lastPolledSlideNumber = currentPage; + } + catch + { + _polling = 1; + _lastPolledSlideNumber = -1; + } + } + + UpdateCurrentPresentationInfo(); + SlideShowBegin?.Invoke(_pptSlideShowWindow); + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"手动触发SlideShowBegin失败: {ex.Message}", LogHelper.LogType.Warning); + } + } } } }