繁体   English   中英

将两个应用程序合并为一个任务栏上的图标

[英]Combine two applications into one icon on taskbar

我有两个应用程序。 一个是主应用程序,另一个是更新程序。

用户使用更新程序启动 - 如果有可用更新,它将下载并解压缩,否则它将只启动主应用程序。 我为此使用了两个应用程序,以便我能够覆盖主应用程序。

问题是用户已将“启动器”应用程序固定在他们的任务栏上,但是当主应用程序启动时,它没有分组在该图标下,这对他们来说非常混乱。

有没有办法解决?

您应该能够使用Windows API 代码包来做到这一点。

您需要使用Microsoft.WindowsAPICodePack.Taskbar集中的 Microsoft.WindowsAPICodePack.Taskbar 命名空间。

调用TaskbarManager.Instance.SetApplicationIdForSpecificWindow( window, string appId ); 方法。 如果使用 WinForms,则可以指定IntPtr窗口句柄,如果使用 WPF,则可以指定Window实例。

启动后立即在您的两个进程中执行此步骤,并为两者指定相同的 appId。

您可以参考 [ 如何在 Windows 任务栏中对我的应用程序进行分组? ] 乔治的答案,通过在每个进程的 main() 处调用 shell32!SetCurrentProcessExplicitAppUserModelID 强制使两个进程共享相同的 APP_ID(string)

已经提到设置应用程序用户模型 ID。

但是你仍然有问题,当应用程序被固定时,它不会固定到启动器。 但也有一个解决方案,即固定启动器/更新程序而不是应用程序:固定到任务栏一个“链式进程”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM