***
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!.

Mostrar/Ocultar

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
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.

Saludos!
github.com/Slek-Z
Usemos APIs, PathFileExists =) De seguro te ayudara!

Salu2!
En tu ventana
Y en tu ventana, gritas al cielo pero lo dices callada..
Slek escribió:

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
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.

Saludos!
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.

Te pongo un ejemplo exacto ( aunque no acabado ) para lo es...

Imagen


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.

Mostrar/Ocultar

The Swash escribió:Usemos APIs, PathFileExists =) De seguro te ayudara!

Salu2!
Te importaría poner un breve ejemplo si tienes tiempo, The Swash ?

Gracias a ti tambien!..

Mostrar/Ocultar

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
Faltaría añadir el ImageCheck ese, pero no me aparece como control, pero sería así:

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
Una cosa, pones 2 labels por cada, uno para cada color? Si es así, puedes usar la propiedad Label1.ForeColor

Saludos!
github.com/Slek-Z
Slek escribió:

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
Faltaría añadir el ImageCheck ese, pero no me aparece como control, pero sería así:
Ha quedado perfecto!!.

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!!.

Mostrar/Ocultar

Responder

Volver a “VB/.NET”