Запуск дочернего процесса и панели задач windows 7 - PullRequest
2 голосов
/ 30 сентября 2010

У нас есть приложение, которое самообновляется с помощью процесса 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, чтобы помочь с этим, но это новая область для нас.. прогресс идет медленно ...

Есть идеи?... все с благодарностью приняты.

Ответы [ 2 ]

1 голос
/ 17 ноября 2010

ApplicationUserModelIDs - это то, что мы использовали, в конце концов, простое решение действительно и хорошо работает.

0 голосов
/ 18 мая 2018

Squirrel.Windows имеет некоторую информацию о том, как это реализовать: https://github.com/Squirrel/Squirrel.Windows/pull/247

Я не нашел хороших ресурсов для C #, единственные примеры, которые я нашел, это C / C ++, а в примере Squirrel.Windows только 1 из 3 вызовов реализован в C #.

C ++ образец:
https://blogs.msdn.microsoft.com/oldnewthing/20110601-00/?p=10523/

...