启动子进程和Windows 7任务栏

时间:2010-09-30 09:13:01

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

我们有一个使用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我不认为它能够加载将来,我们将App.exe升级到.net 4或.net 5等...

,这是一组.NET 4程序集

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

有什么想法吗? ......所有人都感激地收到了。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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