Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Braayhaan en 30 Agosto 2009, 14:48 pm



Título: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: Braayhaan en 30 Agosto 2009, 14:48 pm
Bueno lo del titulo es que estaba pensando en ponerle a mi app de Spamming una Opcion que cuente cuantos correos va enviando en un label, la redaccion seria simple, ya que la app envia correos en un loop y en ese loop pondria el codigo del label aumentando 1 numero.

Pero ese es el detalle como hago para que un label cambie su texto?

Basicamente es esto:

Label1 'va a empezar en 0'

y despues que con cada loop que se haga vaya aumentando 1.

label1 "1"
label1 "2"
label1 "3"
label1 "4"
label1 "5"

No se si me entienden la idea?

entonces es eso que cambie su texto de 0 a 1 de 1 a 2 y haci hasta que se cierre el programa.

Gracias espero su Ayuda...!!! ;D


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: raul338 en 30 Agosto 2009, 16:27 pm
No se si sera esto, pero es muy simple lo que estas pidiendo....


usa un contador y lo pones al final del bucle con el que mandas mails


Código
  1. Dim contador As Int32 = 0
  2. Do while (...)
  3. ' enviar por gmail
  4. contador += 1
  5. Label1.Caption = contador
  6. Loop
  7.  


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: Braayhaan en 30 Agosto 2009, 16:47 pm
que es un contador?  :xD

no se que es


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: raul338 en 30 Agosto 2009, 17:06 pm
Un contador es una variable que se usa para contar  :laugh: :laugh:

Imagina asi:

Código
  1. Dim MailsMandados As Integer = 0
  2. Do while (...)
  3. ' enviar por gmail
  4. MailsMandados = MailsMandados + 1
  5. Label1.Caption = MailsMandados
  6. Loop
  7.  


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: Braayhaan en 30 Agosto 2009, 17:23 pm
ok yo puse el dim para cambiarle el nombre en el primer ejemplo que pusistes.

y pege el resto del codigo en el loop de mi programa, el nombre de mi label es Numeroenvio.

pero hay un detalle en el vb.net no me lee el Texto "Caption" me da error, me imagino que un equivalente a ese sera el "text" pero lo puse y me dijo error.

Haci lo puse mira
Código
  1.            Do
  2.                correo.From = New MailAddress("correo.spammer@gmail.com", "")
  3.                envio.Credentials = New NetworkCredential("correo.spammer@gmail.com", "")
  4.                envio.Host = "smtp.gmail.com"
  5.                envio.Port = 587
  6.                envio.EnableSsl = True
  7.                envio.Send(correo)
  8.                contador += 1
  9.                Numeroenvio.Text = contador
  10.            Loop

no se que fallara echame una mano porfa por cierto, este proceso completo incluyendo el loop es llamado por un Thread tendra esto algo que ver?


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: raul338 en 30 Agosto 2009, 17:34 pm
 ;D ;D ;D ;D disculpas.....tenia el visual basic 6 en la cabeza xD XD

jajaja...sip, era Text, pero si te da error es porque tienes Option Stric On (no te deja poner cualquier tipo en lugar de otro, en este caso, no te deja poner uan variable integer en lugar de un string que es el Text)


prueba


Numeroenvio.Text = contador.ToString()


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: Braayhaan en 30 Agosto 2009, 17:49 pm
mira probe todos los ejemplos y todos me da este error:

"Operacion no valida a traves de subprocesos: Se tuvo acceso al control "Numeroenvio" desde un subproceso distinto a aquel en que lo creó"

a mi me parece que es porque esta en el Sub del proceso del Thread que es el que hace que el programa no se cuelgue.

Por cierto el label que utilize tiene de texto 0 tiene que estar vacio o no importa?

Graciass


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: Braayhaan en 30 Agosto 2009, 18:04 pm
ya revise el codigo si funciona pero no desde un subproceso como el thread, en cambio lo puse en un sencillo boton y funciono Gracias Raul.

Aunque tengo que ver como lo logro ya que la unica forma de usarlo es en el thread ya que si lo pongo en el boton no tendria uso alguno puesto que el boton solo llama el proceso del Thread.

Gracias por la ayuda ya me toca echarme coco a mi  :xD


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: raul338 en 30 Agosto 2009, 18:40 pm
jejeje... recuerdas tu guia para uso de threads?? recuerdas lo que te conteste??

jojojo....threads simples  ;D

aver, sigamos en el siguente nivel!!!  ::)


Escribe (o amplia) el tutorial para comunicar entre threads.... Te digo el tipico caso de error....

Tienes un thread principal que muestra un formulario
Tienes otro thread que hace algun calculo, etc

para avisa que termino el thread calculo, éste al final de su codigo "Label2.Text = 'Listo'", lo ejecutas y !BEEP!, error. Los threads no se pueden comunicar directacmente (el trhead2 no puede acceder al thread1 directamente) (Bueno en realidad si se puede poniendo en falso una propiedad general, pero solo funciona en formularios y no es muy segura que digamos)

Si necesitas ayuda contesta aca.....o MP  :P

no soy vidente, sino que te esta pasando lo mismo que a mi  :P :P


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: Braayhaan en 30 Agosto 2009, 19:32 pm
jajaja que cosas no.

Lo resolvi de esta manera, puse un timer que cambiara el texto del label cada 2500 ms que es el tiempo en que envia un E-mail y ya!!! xDD

Ahora si tengo que supperrr revisar temas sobre multithreading xD ya que mi solucion fue un poco chapuzera jejejeje


Título: Re: Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda!
Publicado por: raul338 en 30 Agosto 2009, 19:39 pm
jajaj viste, eso es una forma "cutre" de hacerla xD (arreglarlo con alambres)

Mira, te explico en teoria, tu llamas a una funcion que se encarga de actualizar los datos del formulario (label, progressbar, etc) como si fuera una funcion comun. Dentro de esa funcion, debes hacer un IF y preguntar si estas en el thread correcto, si lo esta, cambiar los datos... bla bla bla..... Si no lo esta, invokar un nuevo delegado para que se asigne el thread indicado y no tire error de "Operacion no valida entre subprocesos". Es la mejor forma de hacerlo ;)