Crear variables de entorno

Un lugar dónde compartir funciones, procedimientos y aplicaciones
Avatar de Usuario
-Marta-
VIP
Reto07
Mensajes: 91
Registrado: Mié Jun 15, 2016 1:44 pm

Crear variables de entorno

Mensajepor -Marta- » Mar Mar 28, 2017 1:01 am

esta funcion esta sacada de su contexto habitual ya que siempre la uso desde un txt (.vbs) y sirve para crear variables de entorno donde guardar cierta informacion que puede ser util para un monton de cosas

Function creaVariableEntorno(nombreVariable As String, valorVariable As String)
Dim objWMIService As Object
Dim objVarSistema As Object

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set objVarSistema = objWMIService.Get("Win32_Environment").SpawnInstance_

objVarSistema.Name = nombreVariable
objVarSistema.UserName = "System" ' este valor no se puede modificar
objVarSistema.VariableValue = valorVariable
objVarSistema.Put_

End Function

si la llamamos asi

Call creaVariableEntorno("Auditoria", "Auditoria creada el " & Date & " " & Time)

creara una variable de entorno con estos datos

Nombre: Auditoria
Creada por: NT AUTHORITY\SYSTEM
Valor: Auditoria creada el 28/03/2017 0:09:09

las variables creadas con este metodo no son accesibles por la funcion environ, para poder leer su valor o borrarlas hay que hacerlo mediante estas dos funciones

para leer el valor

Function valorVariableEntorno(nombreVariable As String) As String
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_Environment Where Name = '" & nombreVariable & "'")

For Each objItem In colItems
valorVariableEntorno = objItem.VariableValue
Next
End Function

si ejecutamos la funcion valorVariableEntorno ("Auditoria") nos devolvera Auditoria creada el 28/03/2017 0:09:09

para borrar la variable

Function borraVariableEntorno(nombreVariable As String)
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_Environment Where Name = '" & nombreVariable & "'")

For Each objItem In colItems
objItem.Delete_
Next
MsgBox "Eliminada del sistema la variable de entorno ->" & nombreVariable & " "
End Function

llamamos a la funcion con borraVariableEntorno "auditoria"

un saludo y espero le encontreis utilidad

Volver a “Almacén Accesiano”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado