Мы разработали консольное приложение, которое использует ITaskbarList3::SetProgressValue()
метод, который отлично работает, когда это приложение вызывается из cmd.exe, но не показывает никакого прогресса при вызове из Conemu
приставка. Никаких сообщений об ошибках нигде не происходит. HWND
передается как параметр ITaskbarList3::SetProgressValue()
это получить так:
HWND hwnd = GetConsoleWindow();
У меня нет кода, чтобы показать, потому что я не знаю альтернативный метод для этого или что может быть проблемой. Я думал, что возвращенный HWND может быть conemu, а не мое заявление, поэтому я позвонил GetWindowText()
функция, чтобы проверить, был ли текст окна отличным от моего консольного приложения, но это была строка в том же формате, что и у cmd.
Когда вы запускаете консольное приложение в ConEmu, GetConsoleWindow()
возвращает виртуальную консоль HWND, а не собственный conhost HWND. Однако оба отправлены подходит для SetProgressValue()
потому что виртуальная консоль является дочерним окном ConEmu (которое показано на панели задач), а conhost HWND даже не виден.
Просто возьми родитель GetConsoleWindow()
перед звонком SetProgressValue()
,
Других решений пока нет …