Ну, для начала вам нужно найти расширение файла:
Dim file As String = "C:\scratch\newfile.txt"
Dim ext as string = IO.Path.GetExtension(file)
Тогда вам нужно найти эту запись в разделе HKEY_CLASSES_ROOT
реестра:
HKEY_CLASSES_ROOT\.txt
Значение по умолчанию в этом ключе дает тип файла, связанный с этим файлом, в моем случае txtfile
(помните, что разные реестры могут иметь разные значения в зависимости от того, что пользователь установил и какие программы установлены)
Затем вам нужно поискать эти значения DefaultIcon
введите HKEY_CLASSES_ROOT
:
HKEY_CLASSES_ROOT\txtfile\DefaultIcon
Значение по умолчанию здесь дает вам местоположение значка и номер значка в моем случае:
%SystemRoot%\system32\imageres.dll,-102
С этого момента, я думаю, вам может потребоваться ExtractIconEX API
извлечь значок. Эта ссылка также может быть полезна