|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как в окне программы отобразить иконку которая в данный момент весит на этой папке |
|
[решено] Как в окне программы отобразить иконку которая в данный момент весит на этой папке
|
Пользователь Сообщения: 62 |
Профиль | Отправить PM | Цитировать Когда открываешь проводник файлы там отображаются со своими иконками
Отображение иконок под конкретный файл проводник берёт наверное из реестра где прописано что под это расширение ставится определённая иконка Там же отображаются папки как правило со стандартными иконками (например в виде жёлтых папочек) Но есть возможность изменить вид этой папки (подставив например для какой нибудь папки свою иконку) И проводник будет отображать эту папку уже с изменённой (не стандартной) иконкой Вопрос: Откуда именно проводник берёт информацию для отображения папок (В данном случае именно той папки у которой изменили стандартный вид) В реестре? В кеше иконок? Это нужно для того чтобы при перетаскивании папки в окно программы Помимо названия этой папки отобразилась (в окне программы) и её иконка Ну с названием это понятно а вот как сделать чтобы отобразилась именно та иконка которая забита на эту папку? |
|
Отправлено: 14:39, 01-08-2010 |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать Совет от глобального модератора Yashied сайта Русское сообщество Autoit за которое ему большое спасибо
Global Const $SHGFI_ICONLOCATION = 0x00001000 Global Const $tagSHFILEINFO = 'ptr hIcon;int iIcon;dword Attributes;wchar DisplayName[260];wchar TypeName[80];' $Path = @FavoritesDir $tSHFILEINFO = DllStructCreate($tagSHFILEINFO) _WinAPI_ShellGetFileInfo($Path, $SHGFI_ICONLOCATION, 0, $tSHFILEINFO) $Icon = DllStructGetData($tSHFILEINFO, 'DisplayName') $Index = DllStructGetData($tSHFILEINFO, 'iIcon') GUICreate('MyGUI', 200, 200) GUICtrlCreateIcon($Icon, -($Index + ($Index > -1)), 10, 10, 128, 128) GUISetState() Do Until GUIGetMsg() = -3 Func _WinAPI_ShellGetFileInfo($sPath, $iFlags, $iAttributes, ByRef $tSHFILEINFO) Local $Ret = DllCall('shell32.dll', 'dword_ptr', 'SHGetFileInfoW', 'wstr', $sPath, 'dword', $iAttributes, 'ptr', DllStructGetPtr($tSHFILEINFO), 'uint', DllStructGetSize($tSHFILEINFO), 'uint', $iFlags) If @error Then Return SetError(1, 0, 0) EndIf Return $Ret[0] EndFunc |
Отправлено: 16:52, 01-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
какой usb модем на данный момент самый лучший? | Arassir | Мобильные ОС, смартфоны и планшеты | 6 | 14-07-2016 12:28 | |
Интернет - можно ли в Windows 7 узнать какая программа в данный момент использует интернет. | AlexxJ | Программное обеспечение Windows | 6 | 12-01-2012 19:33 | |
[решено] Прошу посодействовать в подборе конфигурации сис.блока(актуального на данный момент) | cr3w | Выбор отдельных компонентов компьютера и конфигурации в целом | 25 | 24-08-2009 22:11 | |
Установка - Ошибка: «Порт используемый модемом в данный момент открыт другим приложением» | chippo | Microsoft Windows 2000/XP | 1 | 10-10-2008 20:06 | |
Как определить кто в данный момент Master Browser? | Guest | Сетевые технологии | 2 | 29-09-2003 14:25 |
|