Regresar a la Pagina de Inicio

23 abr. 2010

macros: FSO-evitar que abran nuestros proyectos en cualquier pc

Como soluciono la siguiente cuestión: por motivos de seguridad, o económicos, el libro de Excel que diseñé lleno de macros solo debe ejecutarse en una PC: si el usuario traslada el archivo a otra computadora, no tiene que funcionar más. Veamos como resolverlo.
Si bien hace poco vimos la potencia de las API's a la hora de obtener información o necesitar las funciones de nuestro Sistema Operativo, existe una alternativa muy buena para recabar datos sobre nuestro entorno de trabajo, accediendo al sistema de archivos: el objeto Scripting File System Object, el cual posee una buena cantidad de propiedades, métodos y eventos mas sencillos de comprender y manejar que las API's.
[+/-] Ver el resto / Ocultar

4 comentarios:

Anónimo dijo...

GRAN PAGINA..!!

Damian Omar Silva dijo...

gracias por tu comentario, estimado. espero que encuentres cosas de utilidad en mi blog.
saludos.

Anónimo dijo...

Hola Damian, gracias por tu valioso aporte, yo tengo el excel 2013, y me sale se ha producido el siguiente error 424 en tiempo de ejecucion, ejecutando el F8 me depura el :

Set EsteDisco = FSO.GetDrive(RutaSO)

Damian Omar Silva dijo...

Anónimo: me alegro que el aporte te sirva. El problema que te sale no e3s culpa del Office 2013, el culpable es... mi blog. Si copias y pegas el código que expongo, luego te arroja errores, por la inclusión implícita de caracteres no visibles (ni imprimibles) que, realmente no se por qué, dañan el código.
Hacé lo siguiente: escribe tu mismo el código, tal cual lo ves en esta página, y no fallará.
Por las dudas, y para ver si te sirve, copio aquí el código:
'creo el objeto que luego invocaré:
Dim FSO As New FileSystemObject

Sub LeerDisco()
'creo una variable del tipo Disco:
Dim EsteDisco As Drive
Dim RutaSO As String
'veamos donde está el directorio del sistema:
RutaSO = Environ("windir")
'y tomemos los primeros tres caracteres, que corresponden a la
'letra del disco:
RutaSO = Left(RutaSO, 3)
'seteo a EsteDisco como el disco del sistema, así me garantizo de
'estar siempre leyendo la unidad principal de la pc:

Set EsteDisco = FSO.GetDrive(RutaSO)
MsgBox "Serie: " & EsteDisco.serialnumber & vbCrLf & "Disco del sistema: " & RutaSO

Set FSO = Nothing
Set EsteDisco = Nothing
End Sub

Publicar un comentario

Regresar a la Pagina de Inicio

ENTRADAS MAS RECIENTES (ULTIMAS 10)


las + vistas

10 ULTIMOS COMENTARIOS DE MIS LECTORES

Free counters!
blog de periodismo




GRAFICA RIO BRAVO
Serigrafia-Offset
Rosario - Santa Fe - Argentina
TE: 0341 4664028