Hola gente¡
Este es mi problema:
EStoy desarrollando un sistema de administracion de centros de computo(C.C), el cual sera implementado en una instutucion que maneja cerca de 2100 usuarios diarios.
El sistema es un cliente-servidor, y necesito estarlo actualizando cada 6 meses.
El problema es que el C.C en odas sus Pc's tiene instalado el DeeFreeze 4.20, y como ustedes saben, no puedo enviar las actualizaciones a los clientes, mientras el DeepF este activado. Como solucion estoy implementando el DeepUnFreeze, y activo y desactivo como sigue:
<<<ACTIVANDO EL DEEPFREEZE>>>
If cont = 1 Then
'Paso 1
ReturnValue = Shell("H:\DeepUnfreezer1.6", vbMaximizedFocus) 'AppActivate ReturnValue '
cont = cont + 1
tmrDesactivaDeepFreeze.Interval = 3000
ElseIf cont = 2 Then
'Paso 2
For X = 1 To 2
SendKeys "{DOWN}", True '
Next X
cont = cont + 1
tmrDesactivaDeepFreeze.Interval = 3000
ElseIf cont = 3 Then
'Paso 3
For I = 1 To 2 '
SendKeys "{TAB}", True '
Next I
cont = cont + 1
tmrDesactivaDeepFreeze.Interval = 3000
ElseIf cont = 4 Then
'Paso 4
SendKeys "{ENTER}", True
cont = cont + 1
tmrDesactivaDeepFreeze.Interval = 3000
ElseIf cont = 5 Then
'Paso 5
SendKeys "%{F4}", True
tmrDesactivaDeepFreeze.Enabled = False
Call Reiniciar
End If
<<<DESACTIVADO EL DEEPFREEZE>>>
Paso 1
If cont = 1 Then
ReturnValue = Shell("H:\DeepUnfreezer1.6", vbMaximizedFocus) ' Ejecuta la Calculadora.
AppActivate ReturnValue ' Activa Desfrizador
cont = cont + 1
tmrActivaDeepFreeze.Interval = 3000
'Paso 2
ElseIf cont = 2 Then
SendKeys "{TAB 2}", True 'Nos posicionamos para reactivar el deep freeze.
cont = cont + 1
tmrActivaDeepFreeze.Interval = 3000
'Paso 3
ElseIf cont = 3 Then
SendKeys "{ENTER}", True ' Activamos el DeepFreeze
cont = cont + 1
tmrActivaDeepFreeze.Interval = 3000
'Paso 6
ElseIf cont = 4 Then
SendKeys "%{F4}", True 'Cerramos el DeepF
tmrActivaDeepFreeze.Enabled = False
'Call Reiniciar(True) 'Reiniciamos el equipo
End If
---------------------------------------------------------------------------
Y funciona muy bien, pero eso es hasta la version (5.50) que desactiva el DeepUnfreeze).
Como solucion definitiva pense en lo siguiente:
Conociendo la contraseña de DeepF:
Dim ReturnValue, I
ReturnValue = Shell("FrzState.exe", 1) ' Ejecuta DeepFreeze
AppActivate ReturnValue ' Activa el DeepF.
'Copiamos al clep la contraseña del DeepFreeze
SendKeys "^{V}", True ' y pegamos la contraseña
SendKeys "{ENTER}", True ' hacemos enter
SendKeys "{TAB} 4", True ' posicionarnos el el stado que keremos activar
SendKeys "{TAB} 3", True ' Nos posicionamos en el boton OK
SendKeys "{ENTER}", True ' y finalemente hacemos enter y
Call reiniciamos
pero con el shell no encuentra el exe del Deep, ni aunque le ponga el path completo. Esto me serviria para solucionar mi problema de actualizaciones del sistema, y sin violar las reglas del C.C, ni utilizando programitas antiDeepF.
Gracias por sus aportaciones y estamos en contacto...