2009-12-16 2 views
1

У нас есть приложение, в котором есть приложение «launcher», которое находится там с симпатичным пользовательским интерфейсом, в то время как основное приложение загружается в фоновом режиме. Оба этих приложения написаны на VB6 (вздох).Windows 7, VB6, приложение Launcher и привязка к панели задач

В Windows 7, если вы нажимаете кнопку программы запуска, мы получаем два разных значка на панели задач (один для основного приложения, а затем прикрепленный значок для программы запуска). Это выглядит очень странно.

Я пробовал использовать следующую функцию: http://msdn.microsoft.com/en-us/library/dd378422%28VS.85%29.aspx пока не помогло.

Я дал одно и то же имя (Company.Product), как указано в документации, и до того, как появится какой-либо пользовательский интерфейс. Если я приложу приложение для запуска при его запуске, это отлично работает. Если я приложу исполняемый файл для запуска, я получу две иконки.

Любые идеи о том, как исправить это, чтобы я мог использовать только кнопки запуска exe, и все хорошо?

ответ

1

Почему есть два отдельных исполняемых файла (особенно, если они написаны на одном языке). Почему бы не объединить пусковую установку с «основным приложением» и сделать некоторые потоки, чтобы фактически запустить основное приложение, пока пусковая установка отображает экран заголовка и т. Д. Существует ряд учебных пособий для создания пусковых установок.

+1

Так было, так как он был написан (я просто пытаюсь его поддерживать ... Я бы хотел переписать все это). И нарезание резьбы на VB6 нехорошо. Как страшно icky. – Daemonic

+0

Мне удалось убедить руководство в том, что мы должны внести эту модификацию в будущем, поэтому даем вам полную оценку. :) – Daemonic

0

Сделайте это так, чтобы ваше основное приложение не отображалось на панели задач и не делалось так, что при щелчке панели задач на панели задач она будет отправлять сообщение в главное окно, если оно будет свернуто. Этого можно достичь с помощью Windows API.

Используйте FindWindowEx, чтобы получить дескриптор для главного окна, а затем отправить сообщение WM_SYSCOMMAND с SC_RESTORE.

+0

Приложение launcher уходит, когда открывается основное приложение (через некоторые подобные разговоры) ... так что это не сработает. – Daemonic

+0

Тогда нет никакого способа, кроме вторжения в панель задач Windows 7. –