代码之家  ›  专栏  ›  技术社区  ›  MikeG

启动子进程和Windows 7任务栏

  •  2
  • MikeG  · 技术社区  · 16 年前

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

    在Windows7任务栏出现之前,这一切都运行得很好…

    问题出在Windows7中,如果用户将launcher.exe固定到任务栏(右键单击launcher.exe的快捷方式),那么会发生这种情况… 启动程序时,“固定”任务栏图标会在启动程序运行时立即获得焦点,但当app.exe运行时,会出现一个完全独立的新图标。 如果用户决定右键单击正在运行的app.exe中的图标并将其固定到任务栏上,则会绕过进程中的应用程序更新部分。

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

    我们目前正在调查使用applicationusermodelid来帮助解决这个问题,但这是我们的一个新领域。进展缓慢…

    有什么想法吗?…一切都得到了感激。

    2 回复  |  直到 8 年前
        1
  •  1
  •   MikeG    15 年前

    applicationusermodelid是我们最终使用的,简单的解决方案非常有效。

        2
  •  0
  •   yzorg    8 年前

    windows提供了一些关于如何实现这一点的信息: https://github.com/Squirrel/Squirrel.Windows/pull/247

    我还没有找到C语言的好资源,我发现的唯一样本是C/C++和松鼠。Windows示例中只有3个调用中的1个是用C语言实现的。

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

    推荐文章