OberonCore
https://forum.oberoncore.ru/

как при запуске ББ обеспечить другую иконку?
https://forum.oberoncore.ru/viewtopic.php?f=24&t=3679
Страница 1 из 1

Автор:  Info21 [ Суббота, 19 Ноябрь, 2011 12:55 ]
Заголовок сообщения:  как при запуске ББ обеспечить другую иконку?

При запуске нескольких instances of ББ одновременно хорошо бы визуально различать хотя бы некоторые.

А то у меня и будило отдельное, и муз. файлы менеджируются, и черте что вообще.

Кто-нить в курсе, как указать другую иконку?

Автор:  Александр Ильин [ Суббота, 19 Ноябрь, 2011 13:22 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

Можно, например, собрать несколько версий BlackBox.exe, отличающихся только картинками, закинуть все в один каталог и запускать нужный.

Автор:  igor [ Суббота, 19 Ноябрь, 2011 13:33 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

Info21 писал(а):
Кто-нить в курсе, как указать другую иконку?
Сам не пробовал, но думаю, что проще всего так:
1. В каждом instance of BB заменить файл ".\Win\Rsrc\Applogo.ico" на нужную иконку.
2. Пересобрать все instances of BB.

Автор:  Александр Ильин [ Суббота, 19 Ноябрь, 2011 14:05 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

Иконка для главного окна загружается в функции HostWindows.CreateMainWindows (см. первый вызов USER32.LoadIconA в начале процедуры). Если там передать вместо LoadIconA использовать LoadImage, то можно загрузить иконку из файла. Имя файла можно передавать параметрах командной строки.

Не знаю, повлияет ли иконка главного окна на то, что отображается на панели задач. Нужен эксперимент.

Автор:  Info21 [ Суббота, 19 Ноябрь, 2011 14:44 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

Александр Ильин писал(а):
Иконка для главного окна загружается в функции HostWindows.CreateMainWindows (см. первый вызов USER32.LoadIconA в начале процедуры). ...
Спасибо.

А вот пересборка -- слишком сложно.

Автор:  Александр Ильин [ Суббота, 19 Ноябрь, 2011 15:14 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

Info21 писал(а):
Александр Ильин писал(а):
Иконка для главного окна загружается в функции HostWindows.CreateMainWindows (см. первый вызов USER32.LoadIconA в начале процедуры). ...
Спасибо.
Раз нравится этот путь, то я проверил. Вот такой код работает:
Код:
(*      class.icon := USER32.LoadIconA(instance, USER32.MakeIntRsrc(1)); *)
      class.icon := WinApi.LoadImageA(0, "d:\Program Files\Oberon\BlackBox\MAINICON.ico", WinApi.IMAGE_ICON, 0, 0, ORD(WinApi.LR_LOADFROMFILE));
В результате загружается иконка из указанного файла, после чего она используется и для панели задач, и при переключении по Alt+Tab, и для главного окна, и даже для некоторых других окон BlackBox.

Автор:  Info21 [ Суббота, 19 Ноябрь, 2011 15:23 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

Александр Ильин писал(а):
Вот такой код работает:...
Спасибо, похоже, это то, что надо.

Автор:  igor [ Суббота, 19 Ноябрь, 2011 18:33 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

igor писал(а):
Сам не пробовал, но думаю, что ...
На всякий случай проверил то, что я предложил (интереса ради :) ). Всё работает. Иконка изменилась в проводнике, на панели задач и в заголовке окна.

Автор:  Info21 [ Суббота, 19 Ноябрь, 2011 19:25 ]
Заголовок сообщения:  Re: как при запуске ББ обеспечить другую иконку?

igor писал(а):
igor писал(а):
Сам не пробовал, но думаю, что ...
На всякий случай проверил то, что я предложил (интереса ради :) ). Всё работает. Иконка изменилась в проводнике, на панели задач и в заголовке окна.
Тоже спасибо, тоже полезно.

Есть-таки разные сборки, которые невредно различать.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/