Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Иконка VB приложения для Vista. / 12 сообщений из 12, страница 1 из 1
05.05.2009, 23:15
    #35970627
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Не догоняю.
В висте много опций отображения иконок, от маленьких до огромных.
Ну взял нормальную exe-dll из висты, которая во всех "видах" отображает нормальную иконку. Ну открыл ее в VC++6 as a resource. Нашел там эту Icon, содержащую кучу картинок всех наборов цветов и разрешений. Экспортировал ее оттуда же в файл ico, сослался на нее в форме VB, назначил ее быть иконкой приложения.Сначала VB ругнулся, ну удалил я оттуда пару "совсем больших портретов", вроде съел. В случае view=Medium Icons еще прокатывает, делаешь большие-маленькая картинка по центру. И то же самое касается самого ico.
Как грамотно подойти к вопросу, раньше особо не задумывался, но размытая картинка на красивом столе висты не есть гуд.
...
Рейтинг: 0 / 0
06.05.2009, 11:22
    #35971337
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Ну я так понял что оптимальный вариант это включать 3 картинки: 16х16 32х32 48х48 большего из VB6 выжать нельзя.
...
Рейтинг: 0 / 0
06.05.2009, 17:31
    #35972679
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
...
Рейтинг: 0 / 0
22.05.2009, 00:07
    #36000624
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Ну хорошо, а что даст мне эта статья. 48х48 я и так могу вставить в форму и она на Висте нормально отображаться будет, если я добавлю ресурс и редактор ресурсов то встроенный редактор точно также не дает мне выбрать иконку с картинкой с большими размерами (пишет invalid icon). А код который там приведен лишь манипулирует имеющимися в ресурсе иконками, он имеет смысл когда приложение запущено. А речь идет просто об отображении иконок в проводнике, в том числе всяких "огромных"...Поправьте если неправ.
...
Рейтинг: 0 / 0
23.05.2009, 06:29
    #36003163
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Вот нашел правильную программу, причем бесплатную..
http://icofx.ro/
Однако все оказалось сложнее.
Т.е. если сделать этой программой "правильную вистовскую иконку", vb ее съедает но отображает макс. 48х48. Иконку надо "дорабатывать" в редакторе VC++6. При этом в исходной иконке не должно быть ничего выше 48х48. В C++ вручную добавляется 256х256 256 цветов (32-х битное добавление не поддерживается), и туда уже копируется вставляется изображение, скажем из той же вышеупомянутой проги. И только такая иконка, сохраненная из vc++ воспринимается vb6 и корректно ведет себя потом в висте на "больших размерах". Плюс возникает еще ряд глюков с отображением в разных режимах (особенно это касается alt+tab), для более менее обеспечения "приличности", приходится на усмотрение удалять также 32-х битность и в других размерах. Бред конечно еще тот, но ради 2-3 основных иконок приложения повозиться можно, в зависимости от иконки 256 цветов тоже может смотреться очень неплохо, иногда трудно отличить...
...
Рейтинг: 0 / 0
26.05.2009, 11:07
    #36007335
А.Smith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Дмитрий77 в Windows Seven у меня возник аналогичный вопрос.

Вы пишите в Visual Basic 6, я правильно понял?
Даже иконка 48х48х32 бита выглядит не очень в некоторых крупных режимах Вида.
Если не вдаваться в подробности скажу, что решил эту проблему хитростью и сторонными утилитами.
В результате экзешник моей VB6 программульки для проводника может выдать иконку 256х256х32.
Если ещё интересуетесь, я попробую помочь.
...
Рейтинг: 0 / 0
26.05.2009, 14:50
    #36008080
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
>Вы пишите в Visual Basic 6, я правильно понял?
Ну да.
>Даже иконка 48х48х32 бита выглядит не очень в некоторых крупных режимах Вида.
Это зависит от иконки. Некоторые практически неотличимы, некоторые да,паршиво, приходится подбирать-мерзкое занятие, там еще эффект черного контура возникает на стандартных размерах, приходится убирать 32-битность там где она поддерживается...
>Если не вдаваться в подробности скажу, что решил эту проблему хитростью и сторонными утилитами.
>В результате экзешник моей VB6 программульки для проводника может выдать иконку 256х256х32.
Скажем так утилита (http://icofx.ro/), утилита очень неплохая делает иконки "правильные", vb exe их съедает но не выдает на экран даже как 256 цветов. Т.е. корректно воспринимается только то что можно сделать в редакторе 6-й студии а это 256x256x256 максимум.
>Если ещё интересуетесь, я попробую помочь.
Конечно интересуюсь.
...
Рейтинг: 0 / 0
26.05.2009, 16:18
    #36008457
А.Smith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
48х48х32
32х32х32
16х16х32
48х48х256
32х32х256
16х16х256
именно в этой последовательности (хотя по моему для винды это не важно)
это стандартный ICO файл который я использовал в прогах для WinХР.
А для Висты и Вин7 иконки уже нужны покрасивше этих, чтоб под стать системе :).

IcoFX-ом не пользовался, пользую AWIcons от Lokas Software, она позволяет создавать ICO файлы с рисунками максимум 128х128х32 бита, но показать может даже 256х256х32.
Прикрепил её скриншот. Пусть название экзешника не смущает, это мой авторан для диска Crysis WARHEAD.

Я не знаток внутренностей компилятора VB6, но программирую уже много лет, и я так понимаю, иконка экзешника и иконка формы это отдельные друг от друга вещи.

Проблема с VB6 в том, что он проверяет параметры первого рисунка из выбранного вами ICO файла, так уж он устроен, что для формы не принимает пиктограмму больше 48х48х24 бита.
Это первое ограничение.

При компиляции мы сами выбираем форму, иконку которой нужно использовать для экзешника и никак не можем выбрать отдельный ICO файл.
Это второе ограничение.

Проблема решается элементарно, сразу после компиляции, сторонним редактором ресурсов в экзешнике нужно заменить ресурс ICONGROUP под номером 1, например ресхакером:
Код: plaintext
1.
ResHacker -delete %AppName%, %AppName%, icongroup,  1 ,
ResHacker -add %AppName%, %AppName%, Icon.res, icongroup,,
это фрагмент батника который я обычно использую в подобных случаях
...
Рейтинг: 0 / 0
26.05.2009, 16:47
    #36008568
А.Smith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Непонял, куда пропал прикрепленный JPG.

Вот прямая ссылка.
85кБ
Crysis.jpg
...
Рейтинг: 0 / 0
27.05.2009, 02:03
    #36009381
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Спасибо, интерпретировал все по своему но...
ResHacker -оказалось очень правильным словом.
По первой же ссылке в google скачал какое-то приложение типа вашего:
http://angusj.com/resourcehacker/

Итого имеем:
1. Делаем правильную иконку http://icofx.ro/
Оно ее очень хорошо делает. (Tools->Create Windows Icon from image-приложение само знает как это делать)
2. Компилируем vb exe -можно без выбора иконки
3. При помощи новоскаченного приложения внедряем ее в vb exe - имя ресурса 1.
4. Все OK

Единственный момент: Form1 и exe будут иметь разные иконки. При переключении окон (Alt+TAB) в Висте отображается картинка иконки формы, а не exe вроде как размера 32х32, но может получиться размазня из 16х16. При этом сама форма использует 16х16, опять же если форма цепляет большой размер, а не родной 16х16, получится некрасиво.

Вопросы:
1.Требования к иконке для формы
1) 16,32,48???
2) 16цветов, 256,32-бит???
Какие размеры и цвета там должны быть, чтобы все было корректно???


2.Не может ли возникнуть ситуации когда exe будет испорчено таким resourcehacker?
Ибо я проверил, процедура применима также к сурьезным большого размера C++ приложениям (ну понятно, что процедуру надо делать до того как скажем защищать exe каким-либо protect-ом).
...
Рейтинг: 0 / 0
27.05.2009, 14:25
    #36010718
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
Да не ерунда какая-то
С иконкой для формы!
Если присутствует 32х32 то в заголовке формы отобразится именно она уменьшенная.
Если присутствует 16х16 то в висте при alt+tab отобразится именно она увеличенная.
32-бит вообще отдыхает...
Получается, что единственный вариант иметь в иконке 256 или даже 16 цветов и делать ее 32х32, но подбирать такую иконку чтоб было более менее прилично. Это что касается самой формы!
...
Рейтинг: 0 / 0
27.05.2009, 16:58
    #36011349
А.Smith
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иконка VB приложения для Vista.
С формой все верно. ВБ6 не позволит назначить форме 32х битную иконку.
Вот что я сегодня наковырял, в стандартных ехе в Win7
Размербит256x2563248x483232x323216x163248x48832x32816x16848x48432x32416x1644 битные (16 цветные) иконки в принципе нафик не нужны.
Для формы VB6 более-менее приемлемо подходит такой файл
Размербит48x483232x323224x243216x163232x328Обидно, что Vista и Win7 в отличие от ХР неумеют выбирать лучшую иконку для окна Alt-Tab, да и в диспетчере задач у них тоже бяка.
Заинтригованный многократно повторенной фразой "правильные иконки" я скачал IcoFX.
Главная фишка это обработка и упаковка больших иконок в формат Vista и Win7, ещё порадовала пакетная обработка.
Не хватает только управления очередностью пиктограмм в файле, поэтому для себя я решил использовать по надобности и AWicons и IcoFX.

Кстати, тов. Дмитрий, внимательней надо изучать функционал используемого ПО! :)

В IcoFX в Инструментах есть Редактор ресурсов, который только и занимается заменой иконок в exe, dll и т.п. файлах, никакой ресхакер вам нафик не нужен был!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Иконка VB приложения для Vista. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]