Controlar eventos del mouse

Iniciado por danielo-, 26 Noviembre 2009, 05:57 AM

0 Miembros y 1 Visitante están viendo este tema.

Blitzkrieg'

y para hacer click creo que es:

Código (java) [Seleccionar]
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);



danielo-

jajaja... ya aslio!!! ajua!!! asi era mas facil de explicar!!!! gracias D3bc1!!! y tambien a L-Eyer... si no es mucho pedir como haria para clickear dos veces y pues que en donde cliclkeo se ejecute algo, por ejemplo si tengo un archivo, y yo muevo el muse utilizando el robot, encima del archivo  le hago un doble click (robot.mousePress(InputEvent.BUTTON1_MASK);) se abra ese archivo? esque si lo selecciona pero no lo abre???  se usaria el presionado de la tecla enter?? o como???
----crei que seria por la velocidad del clickeo pero resulta que no es asi...pues le puse un tiempo de espera para poder hacer otro click...jejeje...
Bueno espero q me ayuden.. y les digo alrtato si funciona lo que manden, que ahora me toy yendo a la esc...  GRACIAS!!!!!! ;)

Blitzkrieg'

No mira,

Cuando le das mousePress el lo presiona pero no lo levanta, es decir, lo deja presionado.

Para hacer click normal, es decir, oprimir y soltar debes hacer mousePress y luego mouseRelease :)

Buenas suerte



Debci

Cita de: danyelk_6u5 en 26 Noviembre 2009, 19:41 PM
jajaja... ya aslio!!! ajua!!! asi era mas facil de explicar!!!! gracias D3bc1!!! y tambien a L-Eyer... si no es mucho pedir como haria para clickear dos veces y pues que en donde cliclkeo se ejecute algo, por ejemplo si tengo un archivo, y yo muevo el muse utilizando el robot, encima del archivo  le hago un doble click (robot.mousePress(InputEvent.BUTTON1_MASK);) se abra ese archivo? esque si lo selecciona pero no lo abre???  se usaria el presionado de la tecla enter?? o como???
----crei que seria por la velocidad del clickeo pero resulta que no es asi...pues le puse un tiempo de espera para poder hacer otro click...jejeje...
Bueno espero q me ayuden.. y les digo alrtato si funciona lo que manden, que ahora me toy yendo a la esc...  GRACIAS!!!!!! ;)
Seria tan sencillo como hacer lo siguiente:

Código (java) [Seleccionar]

robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);

o mejor aun, usando la logica de la programacion:
Código (java) [Seleccionar]

int numClicks = 2;
for(int i = 0; i<numClicks; i++) {

robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}


Y tan solo haria falta modificar la variable de tipo int y añadirle el valor que quiere decir el numero de clicks que hace, 1 por cada vuelta o loop del bucle for.

Saludos

Blitzkrieg'

Exacto, es mejor con un bucle for :)

Asi hago yo los clickers xDDD



Debci

Cita de: Sir Crapsalot en 26 Noviembre 2009, 22:05 PM
Exacto, es mejor con un bucle for :)

Asi hago yo los clickers xDDD
Hoy estoy motivado, cumplo 15 añitos XD

Asi que aprovechaos que me vienen ideas a la cabeza xD

Saludos

Blitzkrieg'

Cita de: ,.-~*´¨¯¨`*·~-.¸..::| D3Bć1 |::.,.-~*´¨¯¨`*·~-.¸ en 26 Noviembre 2009, 22:06 PM
Cita de: Sir Crapsalot en 26 Noviembre 2009, 22:05 PM
Exacto, es mejor con un bucle for :)

Asi hago yo los clickers xDDD
Hoy estoy motivado, cumplo 15 añitos XD

Asi que aprovechaos que me vienen ideas a la cabeza xD

Saludos

Felicitaciones  :)



Debci

Codigo para todos, acabo de crear un mini virus de broma:

Código (java) [Seleccionar]

package robot;

import java.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Robot;
import java.awt.Robot.*;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author debci
*/
public class Raton {
    private static int x;
    private static int y;
    private static int y_box;
    private static int x_box;
    private static MSGBox msg;
public static void main(String args[]) {
for(int i = 2;i > 1;i++) {
            try {
                y_box++;
                x_box++;
                System.out.println(MouseInfo.getPointerInfo().getLocation().getX());
                System.out.println(MouseInfo.getPointerInfo().getLocation().getY());
                Robot robot = new Robot();
                Random y_random = new Random();
                Random x_random = new Random();
                x = x_random.nextInt() * x_random.nextInt() / 2 + i;
                y = (y_random.nextInt()* x / x_random.nextInt());
                robot.mouseMove(x * 100, y * 100);
                robot.delay(1000);
               
                //msg = new MSGBox();
                //msg.setVisible(true);

                //msg.setLocation(y_box * 100, x_box * 100);
               
            } catch (AWTException ex) {
                Logger.getLogger(Raton.class.getName()).log(Level.SEVERE, null, ex);
            }

}
}
}


Y el codigo de MSGBox:

Código (java) [Seleccionar]

/*
* MSGBox.java
*
* Created on 26-nov-2009, 18:29:57
*/

package robot;



/**
*
* @author debci
*/
public class MSGBox extends javax.swing.JFrame {

    /** Creates new form MSGBox */
    public MSGBox() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                formKeyPressed(evt);
            }
        });

        jLabel1.setText("Owned by Debci");

        jButton1.setText("Pos vale...");

        jLabel2.setText("The power of programming!");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel1)
                    .addComponent(jLabel2)
                    .addComponent(jButton1))
                .addContainerGap(211, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>

    private void formKeyPressed(java.awt.event.KeyEvent evt) {
        System.out.println("Se ha presionado la tecla " + evt.getKeyText(evt.getKeyCode()));
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        javax.swing.JFrame.setDefaultLookAndFeelDecorated(true);
       
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MSGBox().setVisible(true);
               
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    // End of variables declaration

}

Si compilamos tendremos una bonita broma en la cual no parand e abrirse ventanas y ademas no se puede controlar el raton, es inestable, y si subimos mucho el bucle puede saturar el pc(comprobado) ademas de no poder controlar el raton y no pode rparar el proceso.

Digamos que es un buen metodo para proteger vuestros virus de posibles cortadas de procesos.
Si le echamos imagiancion y hacemos que se añada al registro ni un apagado acabara con nuestra ejecucion (en el caso de linux, seria cuestion de añadirlo al script de inicio).

Saludos

Blitzkrieg'




danielo-

Yeeeep!!... Si me a funcionado eso de mandar la posicion y que el mouse se mueva para donde quiero.. Ahora estoy intentando mandarlo por socket... pense que seria facil, pero...pue no e podido..., aun asi seguire intentanddo  ;D gracias por la ayuda