Форум » Для флейма » Где хранятся иконки большого разрешения ? » Ответить

Где хранятся иконки большого разрешения ?

Andrey: В системе Win7/8 есть большие иконки. Где они хранятся, чем можно их посмотреть и как использовать ? В МиниГуи есть возможность получить иконки из DLL-ки: hIcon := ExtractIcon( System.SystemFolder + "\shell32.dll", nI ) Но получаются размеры иконок 32х32, а в системе они есть большего размера: Если иконку 32х32 увеличить, то это очень заметно. Значит в системе есть где то еще большие иконки.

Ответов - 38, стр: 1 2 All

Dima: а погуглить ? http://kudron.ru/set/540-gde-v-windows-7-hranyatsya-znachki-ikonki.html

fil: Есть такая утилита Icl-IconExtractor 5.0 В ней можно указывать не конкретный файл, а папку (напр. диск C:). Очень удобно

Dima: fil +1 Таких прог много Андрею проще тут вопрос задать прежде чем погуглить

Andrey: Dima пишет: Андрею проще тут вопрос задать прежде чем погуглить Ну я же не знал что так просто... А дальше вопрос то был сложнее. Как получить другое разрешение иконки в своей программе ?

Andrey: Файл System.SystemFolder + "\shell32.dll" содержит иконки со всеми размерами включая 128х128 (это для Win8). Как извлечь и показать большую иконку на форме ? В МиниГуи есть команда извлечения/показа иконки на кнопке ТОЛЬКО для 32х32: @ nRow, nCol BUTTON &cObj OF Form_1 ; WIDTH 38 HEIGHT 38 ; ICON System.SystemFolder + "\shell32.dll" ; EXTRACT nI FLAT Уж больно не хочется потрошить shell32.dll на иконки и потом вставлять к себе в проект.

ММК: Andrey пишет: Уж больно не хочется потрошить shell32.dll на иконки и потом вставлять к себе в проект. Удобнее всего ( и надежнее :)) хранить в своей DLL

Dima: ММК пишет: Удобнее всего ( и надежнее :)) хранить в своей DLL +1

Andrey: ММК пишет: Удобнее всего ( и надежнее :)) хранить в своей DLL Покажи пожалуйста как собираешь свою DLL ?

Haz: Andrey пишет: Покажи пожалуйста В поиске гугла по фразе "как собрать dll с иконками" практически первый ответ расписан с картинками как это сделать в visual stidio. Просто инструкция готовая.

ММК: Andrey пишет: Покажи пожалуйста как собираешь свою DLL ? Да. Действительно. Все расписано :) Любой редактор.В меню - добавить Bmp (к примеру ) . Там же можно и экранные формы хранить ...

Andrey: ММК пишет: Все расписано :) Любой редактор. Насчёт редактора понятно. А как сделать без него ? Т.е. скрипт сборки для hbmk2.bat - существует ? Ведь через него проекты свои собираем, вот также хочется собирать свою DLL - без всяких внешних редакторов. SergKis давал батник, я его куда то записал и потерял....

Dima: Andrey Оно ? http://clipper.borda.ru/?1-20-0-00000200-000-0-0-1165487435

SergKis: Andrey пишет я его куда то записал и потерял.... Что то такое, наверно, было [pre2] @echo off SET F=%1 if exist err.txt del err.txt > nul : %E%\BIN\RC.EXE %F% > err.txt if errorlevel 1 goto err if exist err.txt del err.txt > nul %E%\BIN\LINK.EXE %F%.RES /OUT:%F%.dll /VERSION:1.0 /DLL /MACHINE:IX86 /NOENTRY /SUBSYSTEM:WINDOWS if errorlevel 1 goto err goto e :err echo ===== err.txt ======= pause :e if exist %F%.RES del %F%.RES > nul и %F%.RC ORDERINV.XML CUSTOM RES\orderinv.xml ORDERXML.INI CUSTOM RES\orderxml.ini ORDERXML.TXT CUSTOM RES\orderxml.txt ORDER.INI CUSTOM RES\order.ini ORDER.HTM RT_HTML RES\order.htm ORDER.CSS RT_FILE RES\order.css EDIT.CSS RT_FILE RES\edit.css SCET.CSS RT_FILE RES\scet.css SCET_O.BTN RT_FILE RES\scet_o.btn SCET_R.BTN RT_FILE RES\scet_r.btn SCET_PO.BTN RT_FILE RES\scet_po.btn SCET_PR.BTN RT_FILE RES\scet_pr.btn SCET.HTM RT_HTML RES\scet.htm SCETEDIT.HTM RT_HTML RES\scetedit.htm DOKUM.HTM RT_HTML RES\dokum.htm OK_CANCEL.HTM RT_HTML RES\ok_cancel.htm PRINT.HTM RT_HTML RES\print.htm UMZLST.HTM RT_HTML RES\umzlst.htm UMZDOK.HTM RT_HTML RES\umzdok.htm UMZPRN.HTM RT_HTML RES\umzprn.htm ORDERXML.PR CUSTOM RES\orderxml.pr ORDERXML.PR0 CUSTOM RES\orderxml.pr0 ORDERXML.PR1 CUSTOM RES\orderxml.pr1 ORDERXML.PR2 CUSTOM RES\orderxml.pr2 ORDERXML.PR3 CUSTOM RES\orderxml.pr3 ORDERXML.PR4 CUSTOM RES\orderxml.pr4 ORDERXML.PR5 CUSTOM RES\orderxml.pr5 WAIT.GIF CUSTOM RES\wait.gif BACK.PNG RT_FILE C:\BK7A\WIN32DLL\IMG\back.png CALCULATOR.GIF RT_FILE C:\BK7A\WIN32DLL\IMG\calculator.gif CONFIG1.GIF RT_FILE C:\BK7A\WIN32DLL\IMG\config1.gif ... [/pre2]

Andrey: SergKis пишет: Что то такое, наверно, было То что надо ! Буду под себя переделывать ! Спасибо БОЛЬШОЕ ! Вопрос по ходу: Что содержится в файлах и как это используется у тебя в программе ? [pre2]DOKUM.HTM RT_HTML RES\dokum.htm OK_CANCEL.HTM RT_HTML RES\ok_cancel.htm PRINT.HTM RT_HTML RES\print.htm [/pre2] А как ты используешь в МиниГуи файлы *.CSS и *.BTN ? Я сталкивался с тем (на BCC 5.51) что вроде нельзя в имени ресурса использовать точку, например PRINT.HTM ! Помогала смена на PRINT_HTM ... Или я неправ ?

SergKis: Andrey rc.exe Microsoft (R) Windows (R) Resource Compiler Version 5.2.3668.0 link.exe Microsoft (R) Incremental Linker Version 7.10.3077 Это проект cpp+HtmLayout и hb 2.0+cdx+leto работа с базой (проект остановлен, т.к. HtmLayout > 2009 года пошла в js аналог) в hb исп. CUSTOM

Andrey: SergKis пишет: BACK.PNG RT_FILE C:\BK7A\WIN32DLL\IMG\back.png CALCULATOR.GIF RT_FILE C:\BK7A\WIN32DLL\IMG\calculator.gif А как выводились ресурсы внешней DLL на форму ? Кусок кода приведи пожалуйста...

SergKis: Andrey пишет Кусок кода приведи пожалуйста... Картинка: окно (верхнее) список ордеров заказов, ниже содержимое ордера - http://shot.qip.ru/00UJ5l-1WMlLzehx/ Код [pre2] ORDER.HTM RT_HTML RES\order.htm ========= <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>@imp url(%TXT%\HDR_%PRG%.TXT)</title> <style type="text/css"> @imp url(res:%PRG%.CSS) </style></head><body> <hr class="divider"> <div class="toolbar"> <div id="open" class="btn" title="@imp url(%TXT%\BTN_OPEN.TXT) F2"><img src="res:page_insp.gif"></div> <div id="del" class="btn" title="@imp url(%TXT%\BTN_DELETE.TXT) F3"><img src="res:page_del.gif" ></div> <div id="view" class="btn" title="@imp url(%TXT%\BTN_VIEW.TXT) F4"><img src="res:page_norm.gif"></div> <hr class="vdivider"> <div id="refr" class="btn" title="@imp url(%TXT%\BTN_REFRESH.TXT) F6"><img src="res:page_refresh.gif"></div> <hr class="vdivider"> <div id="newn" class="btn" title="@imp url(%TXT%\BTN_NEWNR.TXT) F8"><img src="res:page_new.gif"></div> <hr class="vdivider"> <div class="command-bar"> <div class=command id="doknr" title="@imp url(%TXT%\BTN_DOKUMR.TXT,2) F7">@imp url(%TXT%\BTN_DOKUMR.TXT,1) </div> </div> <div class="spring"></div> <hr class="vdivider"> <div id="set" class="btn"><img src="res:tools.gif"></div> </div> <table name="LST" bk-par="rec" fixedrows="3" fixedlayout="height" border="1" cellpadding="1" cellspacing="0"> <tr name="01"> <td colspan="2" align="center"><b>@imp url(%INI%0_REG.VAL) </td> <td colspan="3" align="center"><b>@imp url(%INI%0_KOD.VAL) </td> <td align="center"><b>@imp url(%INI%0_NAM.VAL) </td> <td colspan="5" align="center"><b>@imp url(%INI%0_ADRJ.VAL)</td> </tr> <tr name="02"> <td colspan="2" align="center">@imp url(%INI%0_BKD.VAL)</td> <td colspan="3" align="center">@imp url(%INI%0_BNM.VAL)</td> <td align="center">@imp url(%INI%0_BK1.VAL)</td> <td colspan="5" align="center">@imp url(%INI%0_BK2.VAL)</td> </tr> <tr name="00"> <th width="9%" bk-align="right" >@imp url(%TXT%\hdr_number.txt)<div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="8%" bk-align="center">@imp url(%TXT%\hdr_date.txt) <div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="5%" bk-align="center">@imp url(%TXT%\hdr_type.txt) <div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="8%" bk-align="center">@imp url(%TXT%\hdr_ddate.txt) <div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="8%" bk-align="right" >@imp url(%TXT%\hdr_dcode.txt) <div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="26%" bk-align="left" >@imp url(%TXT%\hdr_dname.txt) <div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="11%" bk-align="center">@imp url(%TXT%\hdr_dregnr.txt)<div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="5%" bk-align="center">@imp url(%TXT%\hdr_dokser.txt)<div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="8%" bk-align="center">@imp url(%TXT%\hdr_doknr.txt) <div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="8%" bk-align="center">@imp url(%TXT%\hdr_date.txt) <div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="8%" bk-align="center">@imp url(%TXT%\hdr_xmldat.txt)<div class="A"><img src="res:sort_a.gif"></div><div class="D"><img src="res:sort_d.gif"></div></th> <th width="2%"></th> </tr> @imp url(%TXT%\%PRG%.VAL) </table> </body></html> ORDER.CSS RT_FILE RES\order.css ========= body { width:100%%; height:100%%; font-family: Tahoma, Verdana, Arial; font-size: 9pt; background-color: window window threedface threedface; margin:1px; } .command-bar { flow:horizontal; background-color:window; //threedface; padding-left:2px; padding-top: 2px; } .command { border: 1px solid threedshadow; text-align:center; padding:2px; margin:0 1em; width: 5em; behavior:command; } .command:hover { background-color: threedhighlight threedhighlight inactivecaption inactivecaption; } .command:active { background-color: highlight highlight threedlight threedlight; } ul { list-style-type: none; } .toolbar { flow:horizontal; } .statusbar { flow:horizontal; } .hdiv { flow:horizontal; } .btn { width:18px; height:18px; behavior:command; padding:4px; margin:1px; border:1px solid transparent; } .btn:hover { background-color:#F5FCF0 #EEF5E7 #DDE3D0 #EEF5E7; border-top: solid 1px #F5FCF0; border-left: solid 1px #F5FCF0; border-right: solid 1px #A3A8A0; border-bottom: solid 1px #A3A8A0; } .btn:active { background-color:#DDE3D0 #EEF5E7 #F5FCF0 #EEF5E7; padding:5px 3px 3px 5px; border-top: solid 1px #A3A8A0; border-left: solid 1px #A3A8A0; border-right: solid 1px #F5FCF0; border-bottom: solid 1px #F5FCF0; } .divider { padding:0; margin:0; border-top: solid 1px #DDE3D0; border-left: solid 1px #DDE3D0; border-right: solid 1px #F5FCF0; border-bottom: solid 1px #F5FCF0; } .vdivider { padding:0; margin:2px; border-top: solid 1px #DDE3D0; border-left: solid 1px #DDE3D0; border-right: solid 1px #F5FCF0; border-bottom: solid 1px #F5FCF0; width:0; height:100%%; } .spring { width:100%%; } table { font-family:Tahoma, Verdana, Arial; font-size: 8pt; overflow:auto; width:*; height:*; behavior:sortable-grid; background-color:white; border: 1px solid gray; } table th { flow: horizontal; background-color:silver silver gray gray; color:white; border: 1px; border-color: silver black black silver; foreground-position:100% 50%; foreground-repeat:no-repeat; } table th:hover { color: yellow; transition:blend; } table th div.A { visibility : collapse; vertical-align: middle; width : 10px; height : 100%; } table th div.D { visibility: collapse; vertical-align: middle; width : 10px; height : 100%; } table th:checked[bk-sort="A"] div.A { visibility : visible; vertical-align: middle; width : 10px; height : 100%; } table th:checked[bk-sort="D"] div.D { visibility : visible; vertical-align: middle; width : 10px; height : 100%; } table td { white-space:nowrap; padding:1px 1px; border:1px solid; border-color: transparent gray gray transparent; } table tr:current { background-color: silver; color:black; } Работает HtmLayout.dll со своим движком. Картинки из ресурсов достаем img src="res:page_refresh.gif" [/pre2]

Dima: Andrey пишет: Кусок кода приведи пожалуйста... Да пример целый есть C:\MiniGUI\SAMPLES\BASIC\Icons\

SergKis: Dima Андрею интересно, а как у других

Dima: SergKis

Andrey: Dima пишет: Да пример целый есть Да видел уже, примерно понятно... SergKis пишет: Картинки из ресурсов достаем img src="res:page_refresh.gif" А как достаёшь ? Код приведи пожалуйста...

SergKis: Andrey пишет А как достаёшь ? Код приведи пожалуйста... А как достаёшь ? Код приведи пожалуйста... Так "Скрытый текст" разверни. Для чего его положил ? Что бы ты развернул и посмотрел ! Везде, где увидишь img src="res:..." это из ресурсов, иначе из файла, по url ... Это же html

Andrey: SergKis пишет: Картинки из ресурсов достаем img src="res:page_refresh.gif" Ни фига не понял что за команда и как эта page_refresh.gif рисуется на форме ...

SergKis: Andrey пишет Ни фига не понял А тут ?[pre2] DEFINE TOOLBAR ToolBar_1 BUTTONSIZE 85,85 FLAT BORDER BUTTON Button_1 ; CAPTION '&More ToolBars...' ; PICTURE 'button1.bmp' ; ACTION Modal_Click() ; TOOLTIP 'ONE' BUTTON Button_2 ; CAPTION '&Button 2' ; PICTURE 'button2.bmp' ; ACTION MsgInfo('Click! 2') ; TOOLTIP 'TWO' ... сравни <div class="toolbar"> <div id="open" class="btn" title="@imp url(%TXT%\BTN_OPEN.TXT) F2"><img src="res:page_insp.gif"></div> ... <div id="del" class="btn" title="@imp url(%TXT%\BTN_DELETE.TXT) F3"><img src="res:page_del.gif" ></div> <div id="view" class="btn" title="@imp url(%TXT%\BTN_VIEW.TXT) F4"><img src="res:page_norm.gif"></div> <hr class="vdivider"> <div id="refr" class="btn" title="@imp url(%TXT%\BTN_REFRESH.TXT) F6"><img src="res:page_refresh.gif"></div> <hr class="vdivider"> <div id="newn" class="btn" title="@imp url(%TXT%\BTN_NEWNR.TXT) F8"><img src="res:page_new.gif"></div> ... [/pre2] CAPTION это title="..." PICTURE это img src="..." + css с поведением hover, action ...

SergKis: PS не CAPTION, а TOOLTIP это title="..." - кнопки в html toolbar без надписей

Andrey: SergKis пишет: CAPTION это title="..." PICTURE это img src="..." + css с поведением hover, action ... Да уж... Для меня - сильно накручено ! Получается данные берутся из RES\order.htm (допустим) а потом строится TOOLBAR ... А как получаешь доступ к ORDER.HTM, т.е. в программе она строковая или другая ? [pre2]ORDER.HTM RT_HTML RES\order.htm [/pre2] А картинки кнопок пишешь в файл или из ресурса сразу на кнопку ? Не пойму как выводить картинку если у тебя уже на кнопке PICTURE есть: BUTTON Button_2 ; CAPTION '&Button 2' ; PICTURE 'button2.bmp' ; ..... Причём для PICTURE нужна строка или внешний файл картинки. А как туда затолкать картинку из ресурсов, я не понимаю... Нашёл, ещё давно пример SAMPLES\BASIC\ExtractIcon\demo.prg Там есть команда для кнопки, хотя по Хелпу такого нет : [pre2] Local cFile5 := System.SystemFolder + "\shell32.dll" ..... @ 160,10 BUTTON BTNCANCEL ; ICON cFile5 ; EXTRACT 219 ; ...... [/pre2] Это я так догадываюсь хенл картинки передаётся ? Но там загружаются только иконки размером 32х32... Причём для объекта BUTTONEX такой команды нет.

SergKis: Andrey пишет А как туда затолкать картинку из ресурсов, я не понимаю... Так ты исходники не смотришь, к примеру h_image.prg [pre2] FUNCTION _DefineImage (...) ... IF ! ISNUMBER( w ) .OR. ! ISNUMBER( h ) IF Upper( Right( FileName, 4 ) ) == ".BMP" .OR. At( ".", cFileNoPath( FileName ) ) == 0 aSize := BmpSize( FileName ) // ресурсы exe ELSE aSize := hb_GetImageSize( FileName ) // файл ENDIF w := aSize [1] h := aSize [2] ENDIF ... [/pre2] См. и С функции. Для внешней dll, самое простое, выгрузить в файл из dll и в PICTURE указывать файлы. Возможно где то есть набор ф-й (hbwin.lib и когда то давал тебе С ф-ии для ресурсов CUSTOM) для оного.

Andrey: SergKis пишет: Для внешней dll, самое простое, выгрузить в файл из dll и в PICTURE указывать файлы. Не хочется этого делать. Я думаю что при запуске программы выгрузка кучи картинок будет занимать порядочно времени. А если делать выгрузку по отдельным модулям программы, то не совсем удобно будет писать код. SergKis пишет: Возможно где то есть набор ф-й (hbwin.lib и когда то давал тебе С ф-ии для ресурсов CUSTOM) для оного. Да, это есть. Использую в нескольких программах. SergKis пишет: aSize := BmpSize( FileName ) // ресурсы exe А для вывода из DLL нужно будет указывать хендл картинки ? А можно эту картинку из dll загрузить в переменную, а потом показывать из переменной ?

SergKis: Andrey пишет Не хочется этого делать. Тогда тебе надо повторить весь набор ф-й для handle внешней dll, т.к. сейчас работа ф-й от g_hInstance (ресурсы exe), т.е. hBitmap_new = ( HBITMAP ) LoadImage( g_hInstance, pszName, IMAGE_BITMAP, 0, 0, fuLoad ); или сохранять g_hInstance, заменять на handle внешней dll, получать оттуда что то и назад восстанавливать, мороки больше, чем профита, по мне.

ММК: Andrey пишет: Да уж... Для меня - сильно накручено ! Вы или герои или мазохисты !

SergKis: ММК пишет Вы или герои или мазохисты ! Скорее 2-е. Всегда нужен уникод, вот садомазо и занимаешься, то VO переделываешь, то HtmLayuot (html utf-8) используешь ... И hmg версию переделанную используешь, не слезешь. W2UI на подходе ...

Andrey: Привет всем ! Со сборкой dll-ки вроде разобрался.... Выложу пример чуть позже ... Остался вопрос вроде простой, а решить не получается... Поиск по интернету дал кучу не нужного. Можно ли простыми средствами собрать несколько отдельных иконок 16х16, 32х32 и т.д. в одну иконку (контейнер) ? Может ключи какие есть у сборщика ресурсов ? Писать что-то своё уж больно долго получится...

Петр: Andrey пишет: Можно ли простыми средствами собрать несколько отдельных иконок 16х16, 32х32 и т.д. в одну иконку (контейнер) ? А что для вас - "простые средства"? nConvert, надеюсь, не окажется сложным..

Dima: Петр пишет: А что для вас - "простые средства"? +1 IconWorkshop

Andrey: Петр пишет: nConvert, надеюсь, не окажется сложным.. Спасибо, вроде то что нужно !

Andrey: У Григория есть пример SAMPLES\BASIC\Icons\demo2.prg Хотел из библиотеки demo2.prg прочитать иконки также, обломилось .... [pre2]local cIcon := '5' ............ hLib := LoadLibraryEx( System.SystemFolder + '\shell32.dll', 0, LOAD_LIBRARY_AS_DATAFILE ) hIconFromDll := LoadIconByName( cIcon, 64, 64, hLib ) // пробовал и VAL(cIcon) ? hIconFromDll возвращает 0[/pre2] Смотрю в библиотеке есть такие иконки по номерам 1,2,3.... Что неправильно делаю ? Как считать иконки разного размера ?

Andrey: Начал делать программу для просмотра/извлечения иконок из DLL/EXE и обломился... Нет функций извлечения/записи иконок размерами: 48/64/128/256 ... Кто может добавить такие функции в папку SAMPLES\BASIC\Icons ? Вот моя заготовка - https://cloud.mail.ru/public/LNKL/hXTwbNtMx

Andrey: Вот мне сделали программу для извлечения иконок IconExtractor на C# ! Кому интересно, ссылка - https://cloud.mail.ru/public/LDiE/cwQLkHE9i Пожелания приветствуются (пока автор доступен)...



полная версия страницы