elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Carpeta personalizada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Carpeta personalizada  (Leído 1,925 veces)
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Carpeta personalizada
« en: 2 Abril 2015, 12:44 pm »

Hola

Quiero desde VB (net o 6) crear una carpeta personalizada. Esto es, una carpeta que contiene un archivo INI, el cual indica el icono que ha de usar la carpeta y la imagen de fondo que ha de mostrar.

Lo del archivo INI ya se como va. El caso es que se hacerlo manualmente, pero no se si habrá alguna API o Script para crearla directamente desde una apliación y luego desde el programa modificar el archivo INI.

He probado de usar un código CLSID, nombrando la carpeta:

Nombre.{450d8fba-ad25-11d0-98a8-0800361b1103}

Entonces, en este caso, la carpeta se convierte en una carpeta "MyDocuments", pero no se crea el archivo "Desktop.ini"

Gracias



En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Carpeta personalizada
« Respuesta #1 en: 7 Abril 2015, 11:28 am »

Hola,

Gracias a todos por las respuestas (ironía) ;-)

Pues no entiendo como nadie ha respondido, pues no era muy difícil. Quizás no me expliqué bien...

Finalmente encontré la respuesta y hay tres formas de crear la carpetas personalizada:

1ra. Usando el comando de consola attrib. Donde +s convierte la carpeta en carpeta del sistema y -s la deshabilita como tal y  +h convierte una carpeta o archivo en 'oculto'. -h la convierte en carpeta o archivo visible.

Código
  1. Shell "cmd /r attrib +s """ & strFolder & """"
  2. Shell "cmd /r attrib +h """ & strFolder & "\Desktop.ini"""
  3.  


2da. Utilizando la declaración API SetFileAttributes y el atributo FILE_ATTRIBUTE_SYSTEM del kernel32.dll
Al usarse attrib.exe deduje que era cuestión de cambiar el atributo a "system". Además importé las declaraciones API de attrib.exe a ver que usaba y vi que usaba SetFileAttributes para cambiar el atributo.

Código
  1. Private Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" _
  2. (ByVal lpFileName As String, _
  3. ByVal dwFileAttributes As Long) As Long
  4. Private Const FILE_ATTRIBUTE_SYSTEM = &H4
  5.  



3ra. Utilizando la declaración API PathMakeSystemFolder que se encuentra en shlwapi.dll
Esta forma quizás no es tan conocida. Lo econtré en una página china http://tech.sina.com.cn/s/2005-02-25/0927535579.shtml Convierte directamente la carpeta en carpeta del sistema.

Código
  1. Private Declare Function PathMakeSystemFolder Lib "shlwapi.dll" _
  2. Alias "PathMakeSystemFolderA" _
  3. (ByVal pszPath As String) As Long
  4.  

Tras convertir la carpeta a "carpeta del sistema", se puede crear un archivo Desktop.ini en su interior y ahora sí este archivo ini es permitido (o leído) y se puede establecer la personalización de la carpeta.


« Última modificación: 7 Abril 2015, 14:11 pm por okik » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear una lista personalizada
.NET (C#, VB.NET, ASP)
Zeroql 4 3,748 Último mensaje 27 Febrero 2012, 01:29 am
por s00rk
Caja personalizada de software
Diseño Gráfico
Puntoinfinito 4 5,646 Último mensaje 5 Julio 2012, 20:52 pm
por dfrutos
CRT personalizada
Programación C/C++
85 3 3,660 Último mensaje 28 Marzo 2013, 18:00 pm
por BloodSharp
Mascara de rubredes personalizada « 1 2 »
Redes
Senior++ 10 5,184 Último mensaje 24 Junio 2014, 20:58 pm
por erienci
Calculadora personalizada
Desarrollo Web
aspiazu 1 1,764 Último mensaje 17 Abril 2017, 17:41 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines