ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
12 mars 2005 à 08:56
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
13 mars 2005 à 14:07
Comment obtenir l'icone du poste de travail ???
Bien entendu, je veux celui utilisé (pas celui par défaut) !
Et aussi, dans la foullé, celui de la corbeille, ceux du réseau ainsi que celui du panneau de config.
J'arrive à obtenir, via une chaine vide, celui du bureau, mais pas les autres...
J'ai vraiment besoin d'aide là parce que je m'en sort pas avec l'image-list systéme...
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 12 mars 2005 à 09:04
fait une recherche dans la base de registre. Normalement c'est la clé suivante :
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
Private Type SHFILEINFO
hIcon As Long ' : icon
iIcon As Long ' : icondex
dwAttributes As Long ' : SFGAO_ flags
szDisplayName As String * MAX_PATH ' : display name (or path)
szTypeName As String * 80 ' : type name
End Type
Private Sub Form_Load()
Me.AutoRedraw = True
Dim erreur As Long
Dim tst As Boolean
Dim IDL As ITEMIDLIST '????????????????
'Dim IDL As Long ?????????????
'Get the special folder
erreur = SHGetSpecialFolderLocation(100, CSIDL_BITBUCKET, IDL)
If erreur = NOERROR Then
Path$ = Space$(512) 'Create a buffer
tst = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$) 'Get the path from the IDList
'tst =TRUE/FALSE
thePath = Left$(Path, InStr(Path, Chr$(0)) - 1) 'Remove the unnecessary chr$(0)'s
Me.Caption = thePath
End If
Dim hImage As Long, udtFI As SHFILEINFO
'get the handle of the system image list that contains the large icon images
'hImage = SHGetFileInfo("0", ByVal 0&, udtFI, Len(udtFI), SHGFI_SYSICONINDEX Or SHGFI_LARGEICON)
hImage = SHGetFileInfo("", ByVal 0&, udtFI, Len(udtFI), SHGFI_PIDL Or SHGFI_SYSICONINDEX Or SHGFI_LARGEICON)
Ce qui me pose pas mal de problèmes... Le "" me donne bien l'icone du bureau et une "C:" me donne bien celui du lecteur. Mais je n'arrive pas à obtenir celui du poste de travail ni celui de la corbeille ou du réseau ainsi que celui du panneau de config.
Je dois bien admètre que je nage un peu dans le concept (et le format) d'IDlist et encore plus dans celui de l'imagelist system...