Compare commits

...

27 Commits

Author SHA1 Message Date
CJK_mkp 2fa27d6f83 提高了PPT联动的可用性 2025-05-31 16:04:42 +08:00
CJK_mkp 24a90a3a99 Delete .github/workflows/sync-to-gitea.yml 2025-05-31 12:10:19 +08:00
CJK_mkp eb7fc8fa1e Update sync-to-gitea.yml 2025-05-31 12:07:21 +08:00
CJK_mkp 110ce59450 Update sync-to-gitea.yml 2025-05-31 12:03:51 +08:00
CJK_mkp b48d8538b6 Update sync-to-gitea.yml 2025-05-31 12:03:10 +08:00
CJK_mkp ce9fce8364 Update sync-to-gitea.yml 2025-05-31 12:02:34 +08:00
CJK_mkp 1ca05579be Update sync-to-gitea.yml 2025-05-31 11:56:38 +08:00
CJK_mkp ea75929c4a Update sync-to-gitea.yml 2025-05-31 11:55:42 +08:00
CJK_mkp 521a7307d5 Update sync-to-gitea.yml 2025-05-31 11:53:54 +08:00
CJK_mkp fd31d3b444 Update sync-to-gitea.yml 2025-05-31 11:52:40 +08:00
CJK_mkp 1ca827b5eb Update sync-to-gitea.yml 2025-05-31 11:41:24 +08:00
CJK_mkp b55fbe3dd3 Update sync-to-gitea.yml 2025-05-31 11:39:22 +08:00
CJK_mkp fdf406e24e Update sync-to-gitea.yml 2025-05-31 11:35:56 +08:00
CJK_mkp 274ee8db40 Update sync-to-gitea.yml 2025-05-31 11:34:09 +08:00
CJK_mkp 272139496b Create sync-to-gitea.yml 2025-05-31 11:32:03 +08:00
CJK_mkp 39a0aab613 Delete .github/workflows/sync-to-gitea.yml 2025-05-31 11:05:31 +08:00
CJK_mkp 6f4d92a32c Update sync-to-gitea.yml 2025-05-31 11:04:12 +08:00
CJK_mkp 21541b80d3 Update sync-to-gitea.yml 2025-05-31 11:03:21 +08:00
CJK_mkp 551ea2ecfb Update sync-to-gitea.yml 2025-05-31 11:01:41 +08:00
CJK_mkp c5a3f8e7bc Update sync-to-gitea.yml 2025-05-31 11:00:25 +08:00
CJK_mkp 7cea38f49d Update sync-to-gitea.yml 2025-05-31 10:59:09 +08:00
CJK_mkp 6474014bf5 Create sync-to-gitea.yml 2025-05-31 10:44:43 +08:00
CJK_mkp a4e95285d8 修复PPT进程创建重复调用 2025-05-31 09:58:22 +08:00
CJK_mkp 28c378c305 Update dotnet-desktop.yml 2025-05-31 09:07:55 +08:00
CJK_mkp dd4fe17e2f Update dotnet-desktop.yml 2025-05-31 09:02:58 +08:00
CJK_mkp 502246bc0c Update dotnet-desktop.yml 2025-05-31 08:57:23 +08:00
CJK_mkp 7282fce664 更新README 2025-05-25 12:25:34 +08:00
4 changed files with 37 additions and 27 deletions
+2 -2
View File
@@ -2,9 +2,9 @@ name: .NET Build
on: on:
push: push:
branches: [ master ] branches: [ main ]
pull_request: pull_request:
branches: [ master ] branches: [ main ]
jobs: jobs:
+33 -25
View File
@@ -80,42 +80,49 @@ namespace Ink_Canvas {
public static bool IsShowingRestoreHiddenSlidesWindow = false; public static bool IsShowingRestoreHiddenSlidesWindow = false;
private static bool IsShowingAutoplaySlidesWindow = false; private static bool IsShowingAutoplaySlidesWindow = false;
private static bool hasLoggedPresentationWarning = false; private bool isPowerPointInitialized = false;
private void TimerCheckPPT_Elapsed(object sender, ElapsedEventArgs e) {
if (IsShowingRestoreHiddenSlidesWindow || IsShowingAutoplaySlidesWindow) return; private void TimerCheckPPT_Elapsed(object sender, ElapsedEventArgs e)
{
// 如果正在显示特定窗口,则跳过检查
if (IsShowingRestoreHiddenSlidesWindow || IsShowingAutoplaySlidesWindow)
return;
try try
{ {
pptApplication = (Microsoft.Office.Interop.PowerPoint.Application)Marshal.GetActiveObject("PowerPoint.Application"); // 检查是否已有初始化的 PowerPoint 实例
} if (!isPowerPointInitialized)
catch (COMException)
{
// 创建新实例或记录错误
}
try {
var processes = Process.GetProcessesByName("wpp");
if (processes.Length > 0 && !isWPSSupportOn) return;
pptApplication = (Microsoft.Office.Interop.PowerPoint.Application)Activator.CreateInstance(Marshal.GetTypeFromCLSID(new Guid("91493441-5A91-11CF-8700-00AA0060263B")));
new ComAwareEventInfo(typeof(EApplication_Event), "SlideShowBegin").AddEventHandler(pptApplication, new EApplication_SlideShowBeginEventHandler(this.PptApplication_SlideShowBegin));
new ComAwareEventInfo(typeof(EApplication_Event), "SlideShowEnd").AddEventHandler(pptApplication, new EApplication_SlideShowEndEventHandler(this.PptApplication_SlideShowEnd));
new ComAwareEventInfo(typeof(EApplication_Event), "SlideShowNextSlide").AddEventHandler(pptApplication, new EApplication_SlideShowNextSlideEventHandler(this.PptApplication_SlideShowNextSlide));
pptApplication =
(Microsoft.Office.Interop.PowerPoint.Application)Marshal.GetActiveObject("PowerPoint.Application");
if (pptApplication == null || pptApplication.Presentations.Count == 0)
{ {
if (!hasLoggedPresentationWarning) // 检查 WPS 进程(如果不支持则返回)
var processes = Process.GetProcessesByName("wpp");
if (processes.Length > 0 && !isWPSSupportOn)
return;
// 尝试获取已运行的 PowerPoint 实例
try
{ {
LogHelper.WriteLogToFile("No active presentation found", LogHelper.LogType.Warning); pptApplication = (Microsoft.Office.Interop.PowerPoint.Application)Marshal.GetActiveObject("PowerPoint.Application");
hasLoggedPresentationWarning = true;
} }
catch (COMException)
{
// 如果没有找到运行中的实例,则创建新实例
pptApplication = (Microsoft.Office.Interop.PowerPoint.Application)Activator.CreateInstance(
Marshal.GetTypeFromCLSID(new Guid("91493441-5A91-11CF-8700-00AA0060263B")));
}
isPowerPointInitialized = true;
return; return;
} }
if (pptApplication != null) { if (pptApplication != null) {
// 检查是否有活动演示文稿
if (pptApplication.Presentations.Count == 0 || pptApplication.ActivePresentation == null)
return; // 退出方法,避免后续代码执行
isPowerPointInitialized = false;
timerCheckPPT.Stop(); timerCheckPPT.Stop();
//获得演示文稿对象 //获得演示文稿对象
presentation = pptApplication.ActivePresentation; presentation = pptApplication.ActivePresentation;
@@ -151,6 +158,7 @@ namespace Ink_Canvas {
PptApplication_PresentationOpen(null); PptApplication_PresentationOpen(null);
}); });
//如果检测到已经开始放映,则立即进入画板模式 //如果检测到已经开始放映,则立即进入画板模式
if (pptApplication.SlideShowWindows.Count >= 1) { if (pptApplication.SlideShowWindows.Count >= 1) {
Application.Current.Dispatcher.Invoke(() => { Application.Current.Dispatcher.Invoke(() => {
+2
View File
@@ -18,6 +18,8 @@ Elegant by Default. Based on `dubi906w/icc-0610fix` .
## 公告 ## 公告
ICC CE创立的初衷是因为作者使用ICC的过程中一些小BUG,于是作者想尝试在icc-0610fix版本的基础上修改。 ICC CE创立的初衷是因为作者使用ICC的过程中一些小BUG,于是作者想尝试在icc-0610fix版本的基础上修改。
说白了,我比较懒README懒得改了,就直接用之前ICC的了
高中生,更新不定期/doge
### 项目特点 ### 项目特点
由初学者结合AI技术实现代码(说白了就是不会) 由初学者结合AI技术实现代码(说白了就是不会)