FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cambiar icono carpeta desde codigo
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Cambiar icono carpeta desde codigo
Posted: Wed Nov 03, 2021 02:49 PM
Buenos d铆as para todos

Estuve buscando en el foro pero no encontr茅 respuesta, es que deseo cambiar el icono de la carpeta de contiene nuestra aplicaci贸n, lo hice de manera manual, pero quiero saber si es posible hacerlo desde c贸digo.

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Cambiar icono carpeta desde codigo
Posted: Wed Nov 03, 2021 03:37 PM

"Change Icon of EXE file through code extracting it from other EXE file | Go4Expert" https://www.go4expert.com/articles/chan ... ting-t643/

La clave es usar UpdateResource()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Cambiar icono carpeta desde codigo
Posted: Mon Nov 08, 2021 06:03 PM
Code (fw): Select all Collapse
function SetFolderIcon( cFolder, cFileIco, cInfoTip )

   local lSet  := .f.
   local oIni, cIni, cSec := ".ShellClassInfo"

   cFolder  := RemRight( cFolder, "\" )
   DEFAULT cInfoTip := ""

   if File( cFileIco ) .and. Lower( cFileExt( cFileIco ) ) == "ico" .and. ;
      !File( cFolder )

      if !lIsDir( cFolder )
         lMkFullPath( cFolder )
      endif

      if lIsDir( cFolder )
         SetFAttr( cFolder, 4 )
         cFileIco := cRelativePath( cFileIco, cFolder )
         cIni     := cFolder + "\desktop.ini"
         INI oIni FILE cIni
         SET SECTION cSec ENTRY "ConfirmFileOp" TO 0        OF oIni
         SET SECTION cSec ENTRY "NoSharing"     TO 1        OF oIni
         SET SECTION cSec ENTRY "IconFile"      TO cFileIco OF oIni
         SET SECTION cSec ENTRY "IconIndex"     TO 0        OF oIni
         SET SECTION cSec ENTRY "InfoTip"       TO cInfoTip OF oIni
         SetFAttr( cIni, 2 )
         lSet  := .t.
      endif
   endif

return lSet


This function is included in the next version of FWH

Test:
Code (fw): Select all Collapse
? SetFolderIcon( "c:\fwh\icofolder", "c:\fwh\icons\fivetech.ico", "FWH SetFolderIcon() function" )


Regards



G. N. Rao.

Hyderabad, India
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: Cambiar icono carpeta desde codigo
Posted: Tue Nov 09, 2021 09:17 PM

Excelente Mr.Nages :D

Era lo que estaba buscando. Muchas gracias.

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Cambiar icono carpeta desde codigo
Posted: Mon Nov 15, 2021 08:23 PM

Buenas estimados

Y la funci贸n cRelativePath donde la encuentro?

Saludos,



Adhemar C.
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cambiar icono carpeta desde codigo
Posted: Mon Nov 15, 2021 10:42 PM
acuellar wrote:Buenas estimados

Y la funci贸n cRelativePath donde la encuentro?


Borland shell32.lib


regards, saludos
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Cambiar icono carpeta desde codigo
Posted: Tue Nov 16, 2021 08:35 PM

Gracias estimado Joao

Pero no est谩 en en la Lib Shell32 :(

Saludos,



Adhemar C.
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cambiar icono carpeta desde codigo
Posted: Tue Nov 16, 2021 10:16 PM
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cambiar icono carpeta desde codigo
Posted: Tue Nov 16, 2021 10:37 PM
Code (fw): Select all Collapse
// \samples\CRELATIV.PRG

#Include "FiveWin.ch"

FUNCTION Main()

聽 聽? SetFolderIcon( "c:\FWH1905\icofolder", "c:\FWH1905\icons\fivetech.ico", ;
聽 聽 聽 "FWH SetFolderIcon() function" )

RETURN NIL

FUNCTION SetFolderIcon( cFolder, cFileIco, cInfoTip )

聽 聽local lSet 聽:= .f.
聽 聽local oIni, cIni, cSec := ".ShellClassInfo"

聽 聽cFolder 聽:= RemRight( cFolder, "\" )

聽 聽DEFAULT cInfoTip := ""

聽 聽IF FILE( cFileIco ) .AND. Lower( cFileExt( cFileIco ) ) == "ico" .AND. ;
聽 聽 聽 .NOT. FILE( cFolder )

聽 聽 聽 IF .NOT. lIsDir( cFolder )

聽 聽 聽 聽 聽lMkFullPath( cFolder )

聽 聽 聽 ENDIF

聽 聽 聽 IF lIsDir( cFolder )

聽 聽 聽 聽 聽SetFAttr( cFolder, 4 )

聽 聽 聽 聽 聽cFileIco := cRelativePath( cFileIco, cFolder )
聽 聽 聽 聽 聽cIni 聽 聽 := cFolder + "\desktop.ini"

聽 聽 聽 聽 聽INI oIni FILE cIni
聽 聽 聽 聽 聽SET SECTION cSec ENTRY "ConfirmFileOp" TO 0 聽 聽 聽 聽OF oIni
聽 聽 聽 聽 聽SET SECTION cSec ENTRY "NoSharing" 聽 聽 TO 1 聽 聽 聽 聽OF oIni
聽 聽 聽 聽 聽SET SECTION cSec ENTRY "IconFile" 聽 聽 聽TO cFileIco OF oIni
聽 聽 聽 聽 聽SET SECTION cSec ENTRY "IconIndex" 聽 聽 TO 0 聽 聽 聽 聽OF oIni
聽 聽 聽 聽 聽SET SECTION cSec ENTRY "InfoTip" 聽 聽 聽 TO cInfoTip OF oIni

聽 聽 聽 聽 聽SetFAttr( cIni, 2 )

聽 聽 聽 聽 聽lSet 聽:= .t.

聽 聽 聽 ENDIF

聽 聽ENDIF

聽 聽? cIni // ??

RETURN( lSet )

// FIN / END


Regards, saludos.
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Cambiar icono carpeta desde codigo
Posted: Tue Nov 16, 2021 10:39 PM

Gracias Estimado

Tengo FWH 18.04 :(

Saludos,



Adhemar C.
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Cambiar icono carpeta desde codigo
Posted: Wed Nov 17, 2021 02:24 PM
acuellar wrote:Buenas estimados

Y la funci贸n cRelativePath donde la encuentro?

You need to upgrade FWH
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Cambiar icono carpeta desde codigo
Posted: Wed Nov 17, 2021 02:24 PM
acuellar wrote:Buenas estimados

Y la funci贸n cRelativePath donde la encuentro?

You need to upgrade FWH
Regards



G. N. Rao.

Hyderabad, India
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Cambiar icono carpeta desde codigo
Posted: Wed Nov 17, 2021 07:01 PM

Thanks Mr. Rao

Saludos,



Adhemar C.

Continue the discussion