impsove:PPT联动
This commit is contained in:
@@ -150,6 +150,7 @@ namespace Ink_Canvas.Helpers
|
|||||||
private bool _forcePolling = false;
|
private bool _forcePolling = false;
|
||||||
private bool _bindingEvents = false;
|
private bool _bindingEvents = false;
|
||||||
private DateTime _updateTime;
|
private DateTime _updateTime;
|
||||||
|
private int _lastPolledSlideNumber = -1;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructor & Initialization
|
#region Constructor & Initialization
|
||||||
@@ -423,6 +424,19 @@ namespace Ink_Canvas.Helpers
|
|||||||
SlidesCount = tempTotalPage;
|
SlidesCount = tempTotalPage;
|
||||||
if (currentPage >= tempTotalPage) _polling = 1;
|
if (currentPage >= tempTotalPage) _polling = 1;
|
||||||
else _polling = 0;
|
else _polling = 0;
|
||||||
|
|
||||||
|
if (_forcePolling && currentPage != _lastPolledSlideNumber && _lastPolledSlideNumber != -1)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SlideShowNextSlide?.Invoke(_pptSlideShowWindow);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogHelper.WriteLogToFile($"触发轮询模式幻灯片切换事件失败: {ex.Message}", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_lastPolledSlideNumber = currentPage;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -450,6 +464,18 @@ namespace Ink_Canvas.Helpers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
int currentPage = GetCurrentSlideIndex(_pptSlideShowWindow);
|
int currentPage = GetCurrentSlideIndex(_pptSlideShowWindow);
|
||||||
|
if (_forcePolling && currentPage != _lastPolledSlideNumber && _lastPolledSlideNumber != -1)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SlideShowNextSlide?.Invoke(_pptSlideShowWindow);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogHelper.WriteLogToFile($"触发轮询模式幻灯片切换事件失败: {ex.Message}", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_lastPolledSlideNumber = currentPage;
|
||||||
UpdateCurrentPresentationInfo();
|
UpdateCurrentPresentationInfo();
|
||||||
_polling = 2;
|
_polling = 2;
|
||||||
}
|
}
|
||||||
@@ -536,12 +562,14 @@ namespace Ink_Canvas.Helpers
|
|||||||
{
|
{
|
||||||
_pptActivePresentation = pptAppDynamic.ActivePresentation;
|
_pptActivePresentation = pptAppDynamic.ActivePresentation;
|
||||||
_updateTime = DateTime.Now;
|
_updateTime = DateTime.Now;
|
||||||
|
_lastPolledSlideNumber = -1;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
LogHelper.WriteLogToFile($"访问ActivePresentation失败: {ex.Message},继续使用轮询模式", LogHelper.LogType.Warning);
|
LogHelper.WriteLogToFile($"访问ActivePresentation失败: {ex.Message},继续使用轮询模式", LogHelper.LogType.Warning);
|
||||||
_pptActivePresentation = null;
|
_pptActivePresentation = null;
|
||||||
_updateTime = DateTime.Now;
|
_updateTime = DateTime.Now;
|
||||||
|
_lastPolledSlideNumber = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tempTotalPage = -1;
|
int tempTotalPage = -1;
|
||||||
@@ -577,11 +605,13 @@ namespace Ink_Canvas.Helpers
|
|||||||
SlidesCount = tempTotalPage;
|
SlidesCount = tempTotalPage;
|
||||||
if (currentPage >= tempTotalPage) _polling = 1;
|
if (currentPage >= tempTotalPage) _polling = 1;
|
||||||
else _polling = 0;
|
else _polling = 0;
|
||||||
|
_lastPolledSlideNumber = currentPage;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SlidesCount = tempTotalPage;
|
SlidesCount = tempTotalPage;
|
||||||
_polling = 0;
|
_polling = 0;
|
||||||
|
_lastPolledSlideNumber = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
|||||||
Reference in New Issue
Block a user