У меня есть приложение, которое загружает .exe во временную папку и запускает его с классом System.Diagnostics.Process
.До сих пор я запускал два разных приложения с ним.Одно - консольное приложение, другое - полнофункциональное приложение для Windows.Приложение Windows имеет свой значок на панели задач / заголовке, но консольное приложение имеет только общий значок приложения.Если я перехожу во временную папку, консольное приложение имеет значок;и запуск его «вручную» (двойной щелчок в проводнике) также дает ему правильный значок.
Что может быть причиной этого?
Дополнительная информация: класс ProcessStartInfo
делаетне предлагать никаких флагов относительно иконы.Я запускаю процесс с UseShellExecute=true
и ErrorDialog=true
.Кроме того, приложение Windows запускается развернуто, но консольное приложение свернуто (как указано элементом WindowStyle
из ProcessStartInfo
).Наконец, значок для консольного приложения содержит только значок 32x32x4bpp, в то время как приложение для Windows имеет большой выбор различных форматов.
Добавлено: Я дал загруженному приложению правильный значок.Все еще не идти.: (
Добавлено 2: О, верно, Windows 7 x64.
Обновление: Только что попробовал еще несколько экспериментов. Я создал новый C ++(неуправляемое, а не .NET) приложение, в котором просто «нажмите любую клавишу, чтобы продолжить», и у него есть значок. Значок обычно отображается в проводнике, а когда я запускаю его из проводника, значок отображается в строке заголовка окна.
Однако, когда я запускаю приложение из Visual Studio (через F5 или Ctrl-F5), или когда я запускаю приложение через другое приложение .NET и Process.Start()
- значок не появляется. Почему?