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.
Shell "cmd /r attrib +s """ & strFolder & """"
Shell "cmd /r attrib +h """ & strFolder & "\Desktop.ini"""
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.
Private Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" _
(ByVal lpFileName As String, _
ByVal dwFileAttributes As Long) As Long
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
3ra. Utilizando la declaración API
PathMakeSystemFolder que se encuentra en
shlwapi.dllEsta 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.
Private Declare Function PathMakeSystemFolder Lib "shlwapi.dll" _
Alias "PathMakeSystemFolderA" _
(ByVal pszPath As String) As Long
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.