***
Hola de nuevo...
Tengo un code que me va bien " parcialmente " para la nueva aplicación que postearé en breve con algún cambio importante... que expongo a continuación:
Private Sub Form_Load()
On Error GoTo Fallo
A = GetAttr(Environ("windir") & "\system32\Actskin4.ocx")
Label1.Visible = True
Label2.Visible = True
ImageCheck1.Visible = True
Exit Sub
Fallo:
Label1.Visible = False
Label2.Visible = False
ImageCheck1.Visible = False
End Sub
Se trata que a la carga del Form, busque en el directorio predeteminado el nombre de los Archivos previamente indicados. Si existen o no, me los mostrará en el Form mediante Label's dependiendo de la propiedad Visible asignada. ( es cómo hacer que se rrepita el code de arriba con otros nombres de archivos ).
He conseguido hacerlo con uno sólo con el códico de arriba... en San Google hay miles de ejemplos similares... pero ninguno, cuándo se trata de la búsqueda de más de un Archivo en particular para este caso.
Si alguien supiera cómo, y desea compartirlo... por favor, le estaría infinitamente agradecido!.
Un Saludo!.
Código: Seleccionar todo
Private Sub Form_Load()
On Error GoTo Fallo
A = GetAttr(Environ("windir") & "\system32\Actskin4.ocx")
A = GetAttr(Environ("windir") & "\system32\Notepad.exe")
A = GetAttr(Environ("windir") & "\system32\Calc.exe")
Label1.Visible = True
Label2.Visible = True
ImageCheck1.Visible = True
Exit Sub
Fallo:
Label1.Visible = False
Label2.Visible = False
ImageCheck1.Visible = False
End Sub
Saludos!
github.com/Slek-Z
Usemos APIs, PathFileExists =) De seguro te ayudara!
Salu2!
Salu2!
En tu ventana
Y en tu ventana, gritas al cielo pero lo dices callada..
Y en tu ventana, gritas al cielo pero lo dices callada..
Claro Slek, ya lo probé asi ( de la manera que indicas )... el problema es por ejemplo que al archivo Notepad.exe hay que asignarles dos Label's más... Label3 y Label4... con la Calc.exe, el 5 y el 6.... y así sucesivamente hasta Label162.. ( osea, que cada archivo corresponde a dos Label y a una ImageCheck.Slek escribió:No estoy seguro si te refieres a eso. Si uno de esos 3 archivos no existe, no muestra los labels ni el ImageCheck1. Para mostrarlos, tiene que existir todos.Código: Seleccionar todo
Private Sub Form_Load() On Error GoTo Fallo A = GetAttr(Environ("windir") & "\system32\Actskin4.ocx") A = GetAttr(Environ("windir") & "\system32\Notepad.exe") A = GetAttr(Environ("windir") & "\system32\Calc.exe") Label1.Visible = True Label2.Visible = True ImageCheck1.Visible = True Exit Sub Fallo: Label1.Visible = False Label2.Visible = False ImageCheck1.Visible = False End Sub
Saludos!
Te pongo un ejemplo exacto ( aunque no acabado ) para lo es...

Cómo ves, con el primer code que puse no muestra el arvhivo Actskin4.ocx.. ya que lo saqué de la carpeta de destino (system32) y que por órden albabético iría en primer lugar...
El arvhivo .ocx que muestra en rojo lo acabo de "Des-registrar" con un Click sobre el nombre.. esto hace además que lo quite de system32 y lo mueva a una carpeta llamada "Almacen", para que cuando deseemos hacer nuevamente uso de él, hagamos un Click sobre el nombre del archivo en rojo, esto hace que lo mueva nuevamente a system32 y lo registre automáticamente, cambiando en el panel el color del nombre de rojo a verde. ( cada Label contiene un nombre de archivo y un color).
Lo importante es que si no existe el archivo no se muestra en el panel, ( ni rojo, ni verde..)
PD.- Si deseas el ejemplo te lo compilo y te lo envío.
Gracias por responder!..
Última edición por el ninio el 18 Jul 2010, 01:07, editado 2 veces en total.
Te importaría poner un breve ejemplo si tienes tiempo, The Swash ?The Swash escribió:Usemos APIs, PathFileExists =) De seguro te ayudara!
Salu2!
Gracias a ti tambien!..
Código: Seleccionar todo
Dim Sdir As String
Dim FSO
Private Sub Form_Load()
Sdir = Environ("windir") & "\system32\"
Set FSO = CreateObject("Scripting.FileSystemObject")
Determinar Sdir & "Actskin4.ocx", Label1, Label2
Determinar Sdir & "Notepad.exe", Label3, Label4
Determinar Sdir & "Calc.exe", Label5, Label6
End Sub
Public Function Determinar(Path As String, lbl1 As Label, lbl2 As Label)
Dim bValue As Boolean
bValue = FSO.FileExists(Path)
lbl1.Visible = bValue
lbl2.Visible = bValue
End Function
Código: Seleccionar todo
Public Function Determinar(Path As String, lbl1 As Label, lbl2 As Label, ic as ImageCheck)
Dim bValue As Boolean
bValue = FSO.FileExists(Path)
lbl1.Visible = bValue
lbl2.Visible = bValue
ic = bValue
End Function
Saludos!
github.com/Slek-Z
Ha quedado perfecto!!.Slek escribió:Faltaría añadir el ImageCheck ese, pero no me aparece como control, pero sería así:Código: Seleccionar todo
Dim Sdir As String Dim FSO Private Sub Form_Load() Sdir = Environ("windir") & "\system32\" Set FSO = CreateObject("Scripting.FileSystemObject") Determinar Sdir & "Actskin4.ocx", Label1, Label2 Determinar Sdir & "Notepad.exe", Label3, Label4 Determinar Sdir & "Calc.exe", Label5, Label6 End Sub Public Function Determinar(Path As String, lbl1 As Label, lbl2 As Label) Dim bValue As Boolean bValue = FSO.FileExists(Path) lbl1.Visible = bValue lbl2.Visible = bValue End Function
El ImageCheck no es más que un control de Image independiente a los Label normal y corriente.... por lo que lo suprimiré de la aplicación y quedarán iconos fijo, así tampoco se verá vacío al prescindir de alguna ocx.
Estarás en los Créditos!.
Muchas, Muchas, Gracias... Slek, amigo mío!!.