Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как в окне программы отобразить иконку которая в данный момент весит на этой папке

Ответить
Настройки темы
[решено] Как в окне программы отобразить иконку которая в данный момент весит на этой папке

Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Когда открываешь проводник файлы там отображаются со своими иконками
Отображение иконок под конкретный файл проводник берёт наверное из реестра
где прописано что под это расширение ставится определённая иконка
Там же отображаются папки как правило со стандартными иконками (например в виде жёлтых папочек)
Но есть возможность изменить вид этой папки (подставив например для какой нибудь папки свою иконку)
И проводник будет отображать эту папку уже с изменённой (не стандартной) иконкой

Вопрос: Откуда именно проводник берёт информацию для отображения папок
(В данном случае именно той папки у которой изменили стандартный вид)
В реестре?
В кеше иконок?

Это нужно для того чтобы при перетаскивании папки в окно программы
Помимо названия этой папки отобразилась (в окне программы) и её иконка
Ну с названием это понятно а вот как сделать чтобы отобразилась именно та иконка
которая забита на эту папку?

Отправлено: 14:39, 01-08-2010

 

Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как в окне программы отобразить иконку которая в данный момент весит на этой папке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
какой 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




 
Переход