Cómo crear fiecher .INI oculto?

Post Reply
User avatar
Armando
Posts: 3382
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Cómo crear fiecher .INI oculto?

Post by Armando »

Foreros:

Desde mi aplicación creo un fichero .INI, la pregunta, cómo puedo crearlo con la propiedad de oculto?

Saludos

SOI, s.a. de c.v.
[email protected]
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
AiBot
Posts: 0
Joined: Wed Aug 26, 2026 9:41 am

Re: Cómo crear fiecher .INI oculto?

Post by AiBot »

Para crear un archivo `.INI` con atributo **oculto** en Windows desde Harbour/xHarbour/FiveWin, usa la API de Windows o la función de Harbour:

### Opción 1: `hb_fAttrSet()` (Harbour estándar)
```harbour
#include "fileio.ch"

LOCAL cFile := "config.ini"
LOCAL nHandle

// Crear/abrir el archivo
nHandle := FCreate( cFile, FC_NORMAL )
IF nHandle != F_ERROR
FClose( nHandle )
// Establecer atributo oculto (FA_HIDDEN = 2)
hb_fAttrSet( cFile, HB_FA_HIDDEN )
ENDIF
```

### Opción 2: `SetFileAttributes()` vía `HB_FATTRSET` / `hb_vfAttrSet()`
```harbour
#include "hbwin.ch"

LOCAL cFile := "config.ini"

hb_vfAttrSet( cFile, FILE_ATTRIBUTE_HIDDEN ) // 0x02
```

### Opción 3: Directo con `Win32 API` (FiveWin)
```harbour
#include "fivewin.ch"

LOCAL cFile := "config.ini"

SetFileAttributes( cFile, FILE_ATTRIBUTE_HIDDEN )
```

---

**Notas:**
- `FILE_ATTRIBUTE_HIDDEN` = `0x02` (constante en `fivewin.ch` / `hbwin.ch`).
- Si el archivo ya existe, basta llamar a la función de atributos; no hace falta re-crearlo.
- Para **oculto + sistema** (menos visible en Explorer): `FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_SYSTEM` (`0x06`).

---
Respuesta generada por Inteligencia Artificial usando el modelo nemotron-3-ultra-free via OpenCode Zen. Puede contener errores; por favor verifiquela antes de aplicar.
AI-generated reply using the nemotron-3-ultra-free model via OpenCode Zen. May contain mistakes; please verify before applying.
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Cómo crear fiecher .INI oculto?

Post by karinha »

Code: Select all | Expand

:: INV.BAT

@echo off

ATTRIB +h ARMANDO.INI

:: ATTRIB -h ARMANDO.INI

echo Concluido!

pause

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Cómo crear fiecher .INI oculto?

Post by karinha »

Quiero ver a la inteligencia artificial hacerlo mejor que yo. Jajajaja. - Armado: attrib +h +s más dificil de se ver. No sé si es recomendable.

Code: Select all | Expand

// C:\FWH2603\SAMPLES\ARMANINI.PRG - 26/08/2026 by Kapiaba.

#include "FiveWin.ch"
#include "fileio.ch"

FUNCTION Main()

   LOCAL oIni, Nome_Arq, nRegistro
   LOCAL cFileIni := ".\ARMANDO.ini"

   // 1. Cria o arquivo INI e grava os dados normalmente
   INI oIni FILE cFileIni

  SET SECTION "Usuario" ENTRY "Nombre" TO "Armando SOI" OF oIni
  SET SECTION "Usuario" ENTRY "Activo" TO "S"           OF oIni

   ENDINI

   // Atributos: +h - invisible -h visible.
   IF File( cFileIni )

  // Cria o Arquivo de Lote *.Bat no Diret¢rio, Com as Diretrizes.
  IF .NOT. FILE( "INV.BAT" )

     NOME_ARQ := FCREATE("INV.BAT")

     NREGISTRO := "@ECHO OFF"               ;
                  + CRLF        +           ;
                  "CLS"         +           ;
                  + CRLF + CRLF +           ;
                  "ATTRIB +h ARMANDO.INI" + ;
                  + CRLF + CRLF +           ;
                  "CLS"         +           ;
                  + CRLF        +           ;
                  "EXIT"

     FWRITE( NOME_ARQ, NREGISTRO )
     FCLOSE( NOME_ARQ )

  ENDIF

  WinExec( "INV.BAT", 0 )

  MsgInfo( "Arquivo INI criado e ocultado com sucesso!", "Sucesso" )

   ELSE

  MsgStop( "Erro ao criar o arquivo INI.", "Erro" )

   ENDIF

RETURN NIL

// FIN / END - [email protected]

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Post Reply