PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WD - Como obter icone associado a um tipo de arquivo, dependendo de sua extensão?
WD - Como obter icone associado a um tipo de arquivo, dependendo de sua extensão?
Iniciado por BOLLER ADRIANO, jun., 30 2016 1:42 AM - Sem resposta
Membro registado
3.659 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 30 2016 - 1:42 AM
Como obter icone associado a um tipo de arquivo
Dependendo de sua extensão, ícone pode se envolver dessa maneira:

// Sintaxe:
// IconeAssociéeFichier (<sNomFichier>, <sNomChampImage>)
//// Desenhar uma l`icone campo de imagem associada a um tipo de arquivo
Parâmetros: //
// SNomFichier: d`un extensão de nome de arquivo, você não pode especificar que l`extension
// SNomChampImage: Nome do campo de imagem em que l`icone deve ser elaborado
// Retorna valor:
// No

Procedure IconeAssociéeFichier(sNomFichier,sNomChampImage)

sExtension est une chaîne
sNomProgramme est une chaîne
nHndIcone est un entier

SI sNomFichier = "" OU sNomChampImage = "" ALORS
RETOUR
FIN

sExtension = Minuscule("."+ExtraitChaîne(sNomFichier,ChaîneOccurrence(sNomFichier, ".")+1,"."))
sNomProgramme = RegistreLit("HKEY_LOCAL_MACHINESOFTWAREClasses"+sExtension,"")
sNomProgramme = RegistreLit("HKEY_LOCAL_MACHINESOFTWAREClasses"+sNomProgramme+"shellopencommand","")

//HKEY_CLASSES_ROOTWinDev.Projet.10.0ShellopenCommand

sNomProgramme = Minuscule(sNomProgramme)
SI Position(sNomProgramme,"%systemroot%") <> 0 ALORS
sNomProgramme = Remplace(sNomProgramme,"%systemroot%",SysRep())
FIN
sNomProgramme = SansEspace(ExtraitChaîne(sNomProgramme,1,"%"))
//Suppression des guillemets :
sNomProgramme = Remplace(sNomProgramme,"""""","")
sNomProgramme = Remplace(sNomProgramme,Caract(34),"")
sNomProgramme = SansEspace(sNomProgramme)

// Appel d`api pour récupérer le handle de l`icone de l`executable

nHndIcone = API("SHELL32","ExtractIconA",SysInstance(),sNomProgramme,0)
nHandleChpImage est un entier
nHandleChpImage = dDébutDessin(sNomChampImage)
API("user32","DrawIcon",nHandleChpImage,0,0,nHndIcone)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/