SetProgressValue () не работает в ConEmu

Мы разработали консольное приложение, которое использует ITaskbarList3::SetProgressValue() метод, который отлично работает, когда это приложение вызывается из cmd.exe, но не показывает никакого прогресса при вызове из Conemu приставка. Никаких сообщений об ошибках нигде не происходит. HWND передается как параметр ITaskbarList3::SetProgressValue() это получить так:

HWND hwnd = GetConsoleWindow();

У меня нет кода, чтобы показать, потому что я не знаю альтернативный метод для этого или что может быть проблемой. Я думал, что возвращенный HWND может быть conemu, а не мое заявление, поэтому я позвонил GetWindowText() функция, чтобы проверить, был ли текст окна отличным от моего консольного приложения, но это была строка в том же формате, что и у cmd.

0

Решение

Когда вы запускаете консольное приложение в ConEmu, GetConsoleWindow() возвращает виртуальную консоль HWND, а не собственный conhost HWND. Однако оба отправлены подходит для SetProgressValue() потому что виртуальная консоль является дочерним окном ConEmu (которое показано на панели задач), а conhost HWND даже не виден.

Просто возьми родитель GetConsoleWindow() перед звонком SetProgressValue(),

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector