【问题标题】:Launching a Child Process and the windows 7 taskbar启动子进程和 windows 7 任务栏
【发布时间】:2011-04-19 06:12:37
【问题描述】:

我们有一个使用 Laucher.exe 进程进行自我更新的应用程序,该进程从服务器复制新的 App.exe 和 DLL,然后在单独的进程中运行它们。

在 Windows 7 任务栏出现之前,这一切都运行良好......

问题在于 Windows 7,如果用户将 Launcher.exe 固定到任务栏(通过右键单击 Launcher.exe 的快捷方式),则会发生这种情况... 当您启动程序时,“固定”任务栏图标会在启动器运行时暂时获得焦点,但是当 App.exe 运行时会出现一个完全独立的新图标。 如果用户随后决定右键单击正在运行的 App.exe 中的图标并将其固定到任务栏,他们将绕过该过程的应用程序更新部分。

我们已经尝试过的事情...... 我们已经研究过让 Launcher.exe 加载 App.exe 程序集并在 Launcher.exe 进程中运行它,但这还有其他一些问题…… Launcher.exe 是 .NET 2 我认为它无法加载一组 .NET 4 程序集,将来我们将 App.exe 升级到 .net 4 或 .net 5 等...

我们目前正在研究使用 ApplicationUserModelID 来帮助解决这个问题,但这对我们来说是一个新领域.. 进展缓慢...

有什么想法吗? ......所有的人都感激不尽。

【问题讨论】:

    标签: .net vb.net windows-7 taskbar


    【解决方案1】:

    ApplicationUserModelIDs 是我们最终使用的,简单的解决方案真的很好用。

    【讨论】:

    【解决方案2】:

    Squirrel.Windows 有一些关于如何实现的信息:https://github.com/Squirrel/Squirrel.Windows/pull/247

    我没有找到任何 C# 的好资源,我找到的唯一示例是 C/C++,而 Squirrel.Windows 示例 3 个调用中只有 1 个是用 C# 实现的。

    C++ 示例:
    https://blogs.msdn.microsoft.com/oldnewthing/20110601-00/?p=10523/

    【讨论】:

      猜你喜欢
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2011-08-03
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多