elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 [119] 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 ... 166
1181  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 19 Noviembre 2012, 22:33 pm
HdM tiene razón. El error reside en que en el caso mCheck(0) no le estás instanciando ningun objeto CheckBox. Entonces dentro del bucle For, para instanciar los CheckBoxes en mCheck tendrás que hacerlo así:

mCheck(i-1) = New CheckBox()

De esta forma si tienes 20 CheckBox, iras desde 0 hasta 19 instanciando los CheckBoxes en cada índice.

Saludos!
1182  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 19 Noviembre 2012, 21:03 pm
Perdona que haya tardado en contestar. Como yo te decia antes, tienes que cambiar el indice de la matriz de los CheckBoxes en función de las carpetas encontradas. Lo puedes hacer en un mismo For todo xD

Es decir,

For subdirectorios en Directorios
i += 1
Array.resize(matrizCheckBox,i)
.......
matrizCheckBox(i) = new Checkbox
.......
Next

De esta forma compruebas las carpetas, obtienes indices y generas CheckBox, todo en uno.

¿Por que dices que los indices están mal? Espero que te sirva de ayuda lo que te he dicho =p
1183  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 19 Noviembre 2012, 19:26 pm
PD: uso Dim mCheck(9999) porque la cantidad de checkboxes a agregar es indeterminada, se agrega un checkbox nuevo en el form por cada carpeta de una ruta previamente cargada, no se si puedo hacerlo de mejor manera eso...

Se me ocurre sumarr un indíce a dicha matriz mCheck por cada carpeta encontrada, es decir, Resizeas la matriz por cada indice.

Código
  1. Dim mCheck(0) as CheckBox() 'un indice
  2.  
  3. Private Sub BuscarCarpetas()
  4. Dim i as integer = 0
  5. for directorio in subdirectorios
  6. i+=1 'se encontró una carpeta, sumo un indice
  7. Array.Resize(mCheck,i) 'meto un indice mas a la matriz de CheckBoxes
  8. for i as int32 = 0 to mCheck.length - 1
  9. mCheck(i) = New CheckBox()
  10. 'y aqui sigues como esta
  11. Next
  12.  

De esta forma sólo creas los CheckBoxes que tú necesites basándote en las carpetas encontradas en un directorio. En cuanto al no poder controlar el evento de cierre, ¿Has probado metiéndole un Breakpoint o un MsgBox() para ver si se llama? ¿Has probado a utilizar el evento FormClosed en vez de FormClosing? ¿Probaste quitándole el Me.Formclosing y poniéndole MyBase.Formclosing? Ésto último no tiene mucho que ver xD pero ya sabes, la vida es rara.

No he detectado ninguna anomalía a simple vista, solo que no utilizas una variable y que Dim filesystem = CreateObject("Scripting.FileSystemObject") sobra porque hay una clase del Framework que nos permite trabajar de la misma forma (FileIO creo que era).

Saludos!
1184  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 19 Noviembre 2012, 18:47 pm
Joder que comedero de cabeza xD todo para encontrar que una vez generado el archivo Settings no se puede agregar configuraciones desde el código, como el tuyo de arriba o el que te había posteado (que ya lo corregí, pero no cargaba las configs). Para agregarlas tendrías que hacerlo dinámicamente, es decir, sobre el fichero de configuraciones, pues ya sea mediante serialización para convertir dichos valores de las propiedades a XML.

Se me ocurre que podrías hacer trampa en esto, es decir, creas una propiedad "CuantosChecked" donde añadiras los controles que están checkados. Pues si tienes el Checkbox2 el 5 y el 6 checkados la cadena que le pasarás a esa propiedad quedará así -> 256. Luego en el inicio de la app obtienes todos los CheckBox y obtienes un índice de dicha cadena. Si el CheckBox que has obtenido contiene el elemento del indice de la cadena (If checkbox2.contains(2) entonces lo checkas). Vamos, esto lo llevaba pensando tiempo ya, pero estaba intentando encontrar la forma limpia de implementarlo.

Te dejo un ejemplo. Funciona 100%, eso sí cualquier error ya sabes.

Código
  1. Public Class Form1
  2.  
  3.    Dim mCheck(5) As CheckBox 'matriz que contendrá los 5 CheckBox
  4.  
  5.    Private Sub GenerarPropiedades() 'metodo que generará la propiedad al producirse el cierre del formulario
  6.        Dim CheckedN As String = Nothing 'la cadena que contendrá los CheckBoxes que estén Checkados
  7.        For i As Int32 = 0 To mCheck.Length - 1 'recorro la matriz de los CheckBoxes
  8.            If mCheck(i).Checked = True Then 'Si el CheckBox actual está checkado
  9.                CheckedN &= i + 1 'Obtengo su indice y lo meto al string (si es Checkbox1 pues 1, si es chckbx2 pues 2) ...
  10.            End If
  11.        Next
  12.        My.Settings.CuantosChecked = CheckedN 'Actualizo la propiedad
  13.        My.Settings.Save() 'Guardo la propiedad
  14.    End Sub
  15.    Private Sub CargarPropiedad() 'método que comprobará que CheckBoxes fueron tildados la útlima vez
  16.        Dim mCuantosChecked As Char() = My.Settings.CuantosChecked.ToCharArray 'Paso el String de la propiedad a una matriz
  17.        'Simplemente hago esto para separar el String por indices (un caracter por indice)
  18.        For Each caracter As Char In mCuantosChecked 'Recorro la matriz caracteres que contendrá los checboxes tildados
  19.            For Each CheckboxN In mCheck 'Recorro la matriz de CheckBoxes, para comparar si está o no está tildado
  20.                If CheckboxN.Name.Contains(caracter) Then
  21.                    'Si el CheckBox actual contiene cualquier caracter de la propiedad
  22.                    'que tiene los indices de los CheckBoxes tildados
  23.                    CheckboxN.Checked = True 'Lo tildo
  24.                End If
  25.            Next
  26.        Next
  27.    End Sub
  28.    Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  29.        'Este es el evento al que se llamará cuando se cierre la aplicación
  30.        'Como ves al cerrar la aplicación llamamos al método GenerarPropiedades() para guardar los CheckBoxes que fueron tildados
  31.        GenerarPropiedades()
  32.    End Sub
  33.    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  34.        For i As Int32 = 0 To mCheck.Length - 1
  35.            mCheck(i) = New CheckBox() 'creo un CheckBox en cada espacio de la matriz
  36.            With mCheck(i)
  37.                .Text = "Checkbox" & i + 1 ' Le adjunto un nombre Checkbox1 / Checkbox2 y 3
  38.                .Location = New Point(20, i * 30) ' Sin más los situo....
  39.                .Name = "Checkbox" & i + 1
  40.            End With
  41.            Me.Controls.Add(mCheck(i)) 'Añado el control al formulario, es decir, lo dibujo
  42.        Next
  43.        CargarPropiedad() 'Cargo las propiedades una vez dibujados los CheckBoxes
  44.    End Sub
  45. End Class
  46.  

Saludos!
1185  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 19 Noviembre 2012, 17:03 pm
Uhm como solo te interesan los CheckBoxes tildados (Checked = TRUE) pues ponle un condicional para que sólo guarde éstos últimos.

Ya me cuentas ;)

1186  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 19 Noviembre 2012, 17:00 pm
Una vez conseguido eso, al volver a abrir la app (el form) necesitaría averiguar cuales checkboxes estaban clickados para seleccionarlos automáticamente

En ese momento deberias cargar las propiedades e ir comparando uno a uno los valores de las propiedades y si esta en True (Clickado) pues activar la propiedad Checked del CheckBox. Es decir, PropiedadCheckBox1 -> ¿True? -> Sí -> Activar CheckBox1 .. saltar ala siguiente propiedad.

No he probado el código, hace mil que no utilizo propieadades de forma dinámica (on the fly) pero bueno, este código lo que hace es generar X propiedades por cada X CheckBoxes que haya en una matriz mCheckBox (lo de la matriz lo puedes cambiar recorriendo por ejemplo los controles del Panel donde estén los CheckBox)

Código
  1.    Private Sub GenerarPropiedades(ByVal mCheckBox As CheckBox())
  2.        For Each checkboxN As CheckBox In mCheckBox 'por cada CheckBox en mCheckBox
  3. 'Creo una propiedad con el nombre del CheckBox
  4. 'De esta forma cada CheckBox tendrá una propiedad equivalente
  5.            My.Settings.Properties.Add(New Configuration.SettingsProperty(checkboxN.Name))
  6. 'Meto el valor de la propiedad Checked en la nueva propiedad que hemos creado para el CheckBox
  7.            My.Settings.Properties.Item("CheckBox").DefaultValue = checkboxN.Checked
  8.        Next
  9.        My.Settings.Save()
  10.    End Sub
  11.  

Gracias por tu atención :)

Si necesitas ayuda para el siguiente caso (Cargar los CheckBoxes tildados mediante las propiedades) avisa.

Saludos!
1187  Programación / .NET (C#, VB.NET, ASP) / Re: convoco a developers freelancer en: 19 Noviembre 2012, 12:52 pm
Aludo al comentario de Keyen Night diciendo que en .NET independientemente del lenguaje que utilices (C# o VB) se trabaja con el mismo Framework, el de .NET. Por lo que en ambos lenguajes utilizaremos clases y métodos comunes aunque difiera la sintaxis del código y la manera en que se estructura el code. Ambos son poderosos y capaces de hacer lo mismo. Cabe decir que .NET compila el código en MSIL (código intermedio) que luego será llevado a nativo con el CLI/CLR en tiempo de ejecucción.
Estoy cansado de leer que VB es para newbies y C#/C++ es para proS lol no confundais .NET con C/C++ por favor :D

Saludos!
1188  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 19 Noviembre 2012, 08:47 am
Aupa EleKtro H@cker,

buscas cambiar el valor de alguna propiedad guardada en my.settings o simplemente hacer comprobaciones con éstas? Sería mejor que fueras más claro : p

Ahora estoy en clase y no puedo echarle una buena ojeada, más tarde estaré disponible.

Espero tu respuesta,

Saludos!
1189  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 18 Noviembre 2012, 20:41 pm
Lo que buscas es que todos los CheckBox al ser clickados llamen a un mismo método. Con el "Handles" logras que las acciones de el método trabajen con el objeto que va con el "Handles", no con todos los objetos del mismo tipo.

Este ejemplo crea 3 CheckBox dinámicamente y los agrega al Formulario, sin haberlos dibujado con el IDE del Visual Basic. Después asocio a cada evento CheckedChange del Checkbox con la funcion "LlamadaCheckBox", donde se ejecutarán las instrucciones que desees. Es decir, todos los eventos CheckedChanged de tus CheckBox se asociarán a dicho método, y al producirse tal evento pues se llamará a dicha función.

Código
  1. Public Class Form1
  2.  
  3. ' Esta es la función que se llamará al producirse el evento CheckedChange del CheckBox
  4.    Private Sub LlamadaCheckBox(ByVal sender As Object, ByVal e As System.EventArgs)
  5.        Dim CheckboxN As CheckBox = CType(sender, CheckBox) 'a partir del sender creo el CheckBox (paso de objet a CheckBox para poder utilizar sus propiedades)
  6.        msgbox("Me pinchaste, la cagaste xD")
  7.    End Sub
  8.  
  9.    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  10.        Dim mCheck(2) As CheckBox 'matriz que contendrá los 3 CheckBox
  11.        For i As Int32 = 0 To mCheck.Length - 1
  12.            mCheck(i) = New CheckBox() 'creo un CheckBox en cada espacio de la matriz
  13.            With mCheck(i)
  14.                .Text = "Checkbox" & i + 1 ' Le adjunto un nombre Checkbox1 / Checkbox2 y 3
  15.                .Location = New Point(20, i * 30) ' Sin más los situo....
  16.            End With
  17.            AddHandler mCheck(i).CheckedChanged, AddressOf LlamadaCheckBox'Asocio el evento CheckedChange del CheckBox actual a la función LlamadaCheckBox
  18.            Me.Controls.Add(mCheck(i)) 'Añado el control al formulario, es decir, lo dibujo
  19.        Next
  20.    End Sub
  21. End Class
  22.  

Espero haberte servido de ayuda!

Saludos!
1190  Seguridad Informática / Seguridad / Re: Como extraigo la contraceña de avast en: 17 Noviembre 2012, 23:05 pm
Uhm, podrías restaurar el equipo a un punto anterior, donde el Avast todavía no estuviera instalado. También se me ocurre que podrías deshabilitar la opción de autoiniciar el Avast en cada inicio del Sistema, de esta forma cuando inicies sesión en Windows, Avast no se ejecutaría a no ser que lo abrieras, de esta forma podrías hasta eliminarlo.
Métodos alternativos como uso de Keyloggers para capturar la contraseña también son válidos, pero claro, tienes que saber como utilizar un Keylogger, que a su vez sea fiable e indetectable por el Avast.

No sé, igual podrías crear otro usuario en el sistema e iniciar sesión con éste, de esta forma el Avast no estaría presente.

Espero haberte servido de ayuda,

Saludos!
Páginas: 1 ... 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 [119] 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 ... 166
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines