improve:PPT联动

This commit is contained in:
2026-01-19 18:13:27 +08:00
parent f76cfe648f
commit 3f17cc705b
+9 -8
View File
@@ -1075,14 +1075,13 @@ namespace Ink_Canvas.Helpers
{ {
try try
{ {
// 使用 as 操作符进行类型转换,与 inkeys 保持一致
Microsoft.Office.Interop.PowerPoint.Application pptAppForEvents = PPTApplication as Microsoft.Office.Interop.PowerPoint.Application; Microsoft.Office.Interop.PowerPoint.Application pptAppForEvents = PPTApplication as Microsoft.Office.Interop.PowerPoint.Application;
if (pptAppForEvents != null) if (pptAppForEvents != null)
{ {
pptAppForEvents.SlideShowNextSlide += new EApplication_SlideShowNextSlideEventHandler(OnSlideShowNextSlide); pptAppForEvents.SlideShowNextSlide += new EApplication_SlideShowNextSlideEventHandler(OnSlideShowNextSlide);
pptAppForEvents.SlideShowBegin += new EApplication_SlideShowBeginEventHandler(OnSlideShowBegin); pptAppForEvents.SlideShowBegin += new EApplication_SlideShowBeginEventHandler(OnSlideShowBegin);
pptAppForEvents.SlideShowEnd += new EApplication_SlideShowEndEventHandler(OnSlideShowEnd); pptAppForEvents.SlideShowEnd += new EApplication_SlideShowEndEventHandler(OnSlideShowEndForComEvent);
try try
{ {
@@ -1168,14 +1167,13 @@ namespace Ink_Canvas.Helpers
{ {
try try
{ {
// 使用 as 操作符进行类型转换,与 inkeys 保持一致
Microsoft.Office.Interop.PowerPoint.Application app = PPTApplication as Microsoft.Office.Interop.PowerPoint.Application; Microsoft.Office.Interop.PowerPoint.Application app = PPTApplication as Microsoft.Office.Interop.PowerPoint.Application;
if (app != null) if (app != null)
{ {
app.SlideShowNextSlide -= new EApplication_SlideShowNextSlideEventHandler(OnSlideShowNextSlide); app.SlideShowNextSlide -= new EApplication_SlideShowNextSlideEventHandler(OnSlideShowNextSlide);
app.SlideShowBegin -= new EApplication_SlideShowBeginEventHandler(OnSlideShowBegin); app.SlideShowBegin -= new EApplication_SlideShowBeginEventHandler(OnSlideShowBegin);
app.SlideShowEnd -= new EApplication_SlideShowEndEventHandler(OnSlideShowEnd); app.SlideShowEnd -= new EApplication_SlideShowEndEventHandler(OnSlideShowEndForComEvent);
app.PresentationBeforeClose -= new EApplication_PresentationBeforeCloseEventHandler(OnPresentationBeforeClose); app.PresentationBeforeClose -= new EApplication_PresentationBeforeCloseEventHandler(OnPresentationBeforeClose);
} }
} }
@@ -1510,14 +1508,13 @@ namespace Ink_Canvas.Helpers
{ {
try try
{ {
// 使用 as 操作符进行类型转换,与 inkeys 保持一致
Microsoft.Office.Interop.PowerPoint.Application app = PPTApplication as Microsoft.Office.Interop.PowerPoint.Application; Microsoft.Office.Interop.PowerPoint.Application app = PPTApplication as Microsoft.Office.Interop.PowerPoint.Application;
if (app != null) if (app != null)
{ {
app.SlideShowNextSlide -= new EApplication_SlideShowNextSlideEventHandler(OnSlideShowNextSlide); app.SlideShowNextSlide -= new EApplication_SlideShowNextSlideEventHandler(OnSlideShowNextSlide);
app.SlideShowBegin -= new EApplication_SlideShowBeginEventHandler(OnSlideShowBegin); app.SlideShowBegin -= new EApplication_SlideShowBeginEventHandler(OnSlideShowBegin);
app.SlideShowEnd -= new EApplication_SlideShowEndEventHandler(OnSlideShowEnd); app.SlideShowEnd -= new EApplication_SlideShowEndEventHandler(OnSlideShowEndForComEvent);
app.PresentationBeforeClose -= new EApplication_PresentationBeforeCloseEventHandler(OnPresentationBeforeClose); app.PresentationBeforeClose -= new EApplication_PresentationBeforeCloseEventHandler(OnPresentationBeforeClose);
} }
} }
@@ -1614,7 +1611,7 @@ namespace Ink_Canvas.Helpers
} }
} }
private void OnSlideShowEnd(Presentation pres) private void OnSlideShowEnd(object pres)
{ {
try try
{ {
@@ -1626,7 +1623,6 @@ namespace Ink_Canvas.Helpers
PPTROTConnectionHelper.SafeReleaseComObject(_pptSlideShowWindow); PPTROTConnectionHelper.SafeReleaseComObject(_pptSlideShowWindow);
_pptSlideShowWindow = null; _pptSlideShowWindow = null;
// 记录WPS进程用于后续管理
if (IsSupportWPS && PPTApplication != null) if (IsSupportWPS && PPTApplication != null)
{ {
RecordWpsProcessForManagement(); RecordWpsProcessForManagement();
@@ -1647,6 +1643,11 @@ namespace Ink_Canvas.Helpers
LogHelper.WriteLogToFile($"处理幻灯片放映结束事件失败: {ex}", LogHelper.LogType.Error); LogHelper.WriteLogToFile($"处理幻灯片放映结束事件失败: {ex}", LogHelper.LogType.Error);
} }
} }
private void OnSlideShowEndForComEvent(Presentation pres)
{
OnSlideShowEnd(pres);
}
#endregion #endregion
#region Public Methods #region Public Methods