improve:PPT联动

This commit is contained in:
2026-01-18 02:27:48 +08:00
parent 9fee9a1d6a
commit 266c5c0dc8
2 changed files with 47 additions and 9 deletions
+41 -3
View File
@@ -318,7 +318,7 @@ namespace Ink_Canvas.Helpers
{
LogHelper.WriteLogToFile("检测到演示文稿切换,断开连接", LogHelper.LogType.Trace);
DisconnectFromPPT();
break;
continue;
}
}
catch (COMException ex) when ((uint)ex.ErrorCode == 0x8001010A)
@@ -347,13 +347,44 @@ namespace Ink_Canvas.Helpers
{
count = slideShowWindows.Count;
}
PPTROTConnectionHelper.SafeReleaseComObject(slideShowWindows);
if (activePresentation != null && count > 0)
{
isSlideShowActive = true;
slideShowWindow = activePresentation.SlideShowWindow;
dynamic activeSlideShowWindow = null;
try
{
for (int i = 1; i <= count; i++)
{
try
{
dynamic ssw = slideShowWindows[i];
if (PPTROTConnectionHelper.IsSlideShowWindowActive(ssw))
{
activeSlideShowWindow = ssw;
LogHelper.WriteLogToFile($"找到活跃的放映窗口: {i}/{count}", LogHelper.LogType.Trace);
break;
}
}
catch { }
}
}
catch { }
if (activeSlideShowWindow == null)
{
try
{
activeSlideShowWindow = activePresentation.SlideShowWindow;
}
catch { }
}
if (activeSlideShowWindow != null)
{
slideShowWindow = activeSlideShowWindow;
if (_pptSlideShowWindow == null || !PPTROTConnectionHelper.IsValidSlideShowWindow(_pptSlideShowWindow))
{
if (!PPTROTConnectionHelper.AreComObjectsEqual(_pptSlideShowWindow, slideShowWindow))
@@ -364,6 +395,13 @@ namespace Ink_Canvas.Helpers
}
}
}
PPTROTConnectionHelper.SafeReleaseComObject(slideShowWindows);
}
else
{
PPTROTConnectionHelper.SafeReleaseComObject(slideShowWindows);
}
}
catch (COMException ex) when ((uint)ex.ErrorCode == 0x8001010A)
{
+1 -1
View File
@@ -369,7 +369,7 @@ namespace Ink_Canvas.Helpers
return false;
}
private static bool IsSlideShowWindowActive(object sswObj)
public static bool IsSlideShowWindowActive(object sswObj)
{
try
{