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


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  control remoto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: control remoto  (Leído 410 veces)
sapito169


Desconectado Desconectado

Mensajes: 629



Ver Perfil
control remoto
« en: 20 Diciembre 2024, 20:00 pm »

holis
feliz navidad

funcionalidades

1 click drecho
2 click izquierdo
3 mover el mouse
4 doble click  
4 soporte movil
5 interfase web

les paso el codigo para que puedan controlar el mause desde movil XD
requiere que habras puerto 8000 XD

solo entran desde el movil a la ruta que sale de la consola

Código
  1. package otpserver.simple;
  2.  
  3. import com.sun.net.httpserver.HttpExchange;
  4. import com.sun.net.httpserver.HttpHandler;
  5. import com.sun.net.httpserver.HttpServer;
  6. import java.awt.Robot;
  7. import java.io.IOException;
  8. import java.io.OutputStream;
  9. import java.net.InetSocketAddress;
  10. import java.net.URI;
  11. import java.nio.charset.StandardCharsets;
  12. import java.net.InetAddress;
  13. import java.util.Enumeration;
  14. import java.net.NetworkInterface;
  15.  
  16. public class MouseControlServer {
  17.    private static final String HTML_CONTENT = "<!DOCTYPE html><html><head><title>Control Remoto del Mouse</title><meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no'><style>" +
  18.        "body{font-family:Arial,sans-serif;margin:0;padding:20px;background-color:#f0f0f0;user-select:none;touch-action:none}" +
  19.        ".container{max-width:400px;margin:0 auto;background:white;padding:20px;border-radius:10px;box-shadow:0 2px 5px rgba(0,0,0,0.2)}" +
  20.        ".pad{width:300px;height:300px;background:#e0e0e0;margin:20px auto;border-radius:10px;position:relative;touch-action:none}" +
  21.        ".buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}" +
  22.        "button{padding:15px;border:none;border-radius:5px;background:#007bff;color:white;font-size:16px;cursor:pointer;transition:background 0.3s;touch-action:manipulation}" +
  23.        "button:active{background:#0056b3}" +
  24.        ".coordinates{text-align:center;margin-top:10px;font-size:14px;color:#666}" +
  25.        "</style></head><body><div class='container'>" +
  26.        "<h2 style='text-align:center'>Control Remoto del Mouse</h2>" +
  27.        "<div class='pad' id='touchpad'></div>" +
  28.        "<div class='coordinates' id='coords'>X: 0, Y: 0</div>" +
  29.        "<div class='buttons'>" +
  30.        "<button ontouchstart='sendCommand(\"click\")'>Click Izquierdo</button>" +
  31.        "<button ontouchstart='sendCommand(\"rightclick\")'>Click Derecho</button>" +
  32.        "<button ontouchstart='sendCommand(\"doubleclick\")'>Doble Click</button>" +
  33.        "<button ontouchstart='toggleTracking()'>Activar/Desactivar</button>" +
  34.        "</div></div><script>" +
  35.        "let isTracking=false;let lastX=0,lastY=0;" +
  36.        "const touchpad=document.getElementById('touchpad');" +
  37.        "const coordsDisplay=document.getElementById('coords');" +
  38.        "let sensitivity=2;" +
  39.        "function toggleTracking(){isTracking=!isTracking}" +
  40.        "function updatePosition(e){" +
  41.            "if(!isTracking)return;" +
  42.            "e.preventDefault();" +
  43.            "const touch=e.touches[0];" +
  44.            "const rect=touchpad.getBoundingClientRect();" +
  45.            "const x=touch.clientX-rect.left;" +
  46.            "const y=touch.clientY-rect.top;" +
  47.            "const deltaX=(x-lastX)*sensitivity;" +
  48.            "const deltaY=(y-lastY)*sensitivity;" +
  49.            "if(lastX!==0&&lastY!==0){" +
  50.                "fetch(`/mouse?action=move&x=${deltaX}&y=${deltaY}`)" +
  51.            "}" +
  52.            "lastX=x;lastY=y;" +
  53.            "coordsDisplay.textContent=`X: ${Math.round(x)}, Y: ${Math.round(y)}`" +
  54.        "}" +
  55.        "function sendCommand(action){fetch(`/mouse?action=${action}`)}" +
  56.        "touchpad.addEventListener('touchstart',(e)=>{isTracking=true;lastX=0;lastY=0;e.preventDefault();});" +
  57.        "touchpad.addEventListener('touchmove',updatePosition,{passive:false});" +
  58.        "touchpad.addEventListener('touchend',(e)=>{isTracking=false;e.preventDefault();});" +
  59.        "</script></body></html>";
  60.  
  61.    public static void main(String[] args) throws Exception {
  62.        HttpServer server = HttpServer.create(new InetSocketAddress("0.0.0.0", 8000), 0);
  63.        server.createContext("/", new WebHandler());
  64.        server.createContext("/mouse", new MouseHandler());
  65.        server.setExecutor(null);
  66.        server.start();
  67.  
  68.        System.out.println("\nServidor iniciado. Accede desde cualquiera de estas direcciones:");
  69.        Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
  70.        while (interfaces.hasMoreElements()) {
  71.            NetworkInterface ni = interfaces.nextElement();
  72.            Enumeration<InetAddress> addresses = ni.getInetAddresses();
  73.            while (addresses.hasMoreElements()) {
  74.                InetAddress addr = addresses.nextElement();
  75.                if (!addr.isLoopbackAddress() && addr.isSiteLocalAddress()) {
  76.                    System.out.println("http://" + addr.getHostAddress() + ":8000");
  77.                }
  78.            }
  79.        }
  80.    }
  81.  
  82.    static class WebHandler implements HttpHandler {
  83.        @Override
  84.        public void handle(HttpExchange exchange) throws IOException {
  85.            exchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
  86.            exchange.getResponseHeaders().add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  87.            exchange.getResponseHeaders().add("Access-Control-Allow-Headers", "Content-Type,Authorization");
  88.            exchange.getResponseHeaders().set("Content-Type", "text/html; charset=UTF-8");
  89.  
  90.            if (exchange.getRequestMethod().equalsIgnoreCase("OPTIONS")) {
  91.                exchange.sendResponseHeaders(204, -1);
  92.                return;
  93.            }
  94.  
  95.            byte[] response = HTML_CONTENT.getBytes(StandardCharsets.UTF_8);
  96.            exchange.sendResponseHeaders(200, response.length);
  97.            try (OutputStream os = exchange.getResponseBody()) {
  98.                os.write(response);
  99.            }
  100.        }
  101.    }
  102.  
  103.    static class MouseHandler implements HttpHandler {
  104.        private Robot robot;
  105.        private int lastScreenX = 0;
  106.        private int lastScreenY = 0;
  107.  
  108.        public MouseHandler() {
  109.            try {
  110.                robot = new Robot();
  111.                java.awt.Point p = java.awt.MouseInfo.getPointerInfo().getLocation();
  112.                lastScreenX = (int) p.getX();
  113.                lastScreenY = (int) p.getY();
  114.            } catch (Exception e) {
  115.                e.printStackTrace();
  116.            }
  117.        }
  118.  
  119.        @Override
  120.        public void handle(HttpExchange exchange) throws IOException {
  121.            exchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
  122.            exchange.getResponseHeaders().add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  123.            exchange.getResponseHeaders().add("Access-Control-Allow-Headers", "Content-Type,Authorization");
  124.  
  125.            if (exchange.getRequestMethod().equalsIgnoreCase("OPTIONS")) {
  126.                exchange.sendResponseHeaders(204, -1);
  127.                return;
  128.            }
  129.  
  130.            try {
  131.                URI uri = exchange.getRequestURI();
  132.                String query = uri.getQuery();
  133.                String response = "OK";
  134.  
  135.                if (query != null) {
  136.                    String[] params = query.split("&");
  137.                    double x = 0, y = 0;
  138.                    String action = "";
  139.  
  140.                    for (String param : params) {
  141.                        String[] keyValue = param.split("=");
  142.                        if (keyValue.length == 2) {
  143.                            switch (keyValue[0]) {
  144.                                case "x": x = Double.parseDouble(keyValue[1]); break;
  145.                                case "y": y = Double.parseDouble(keyValue[1]); break;
  146.                                case "action": action = keyValue[1]; break;
  147.                            }
  148.                        }
  149.                    }
  150.  
  151.                    switch (action) {
  152.                        case "move":
  153.                            lastScreenX += x;
  154.                            lastScreenY += y;
  155.                            robot.mouseMove(lastScreenX, lastScreenY);
  156.                            break;
  157.                        case "click":
  158.                            robot.mousePress(16);
  159.                            robot.delay(100);
  160.                            robot.mouseRelease(16);
  161.                            break;
  162.                        case "rightclick":
  163.                            robot.mousePress(4);
  164.                            robot.delay(100);
  165.                            robot.mouseRelease(4);
  166.                            break;
  167.                        case "doubleclick":
  168.                            robot.mousePress(16);
  169.                            robot.delay(50);
  170.                            robot.mouseRelease(16);
  171.                            robot.delay(50);
  172.                            robot.mousePress(16);
  173.                            robot.delay(50);
  174.                            robot.mouseRelease(16);
  175.                            break;
  176.                    }
  177.                }
  178.  
  179.                exchange.sendResponseHeaders(200, response.length());
  180.                try (OutputStream os = exchange.getResponseBody()) {
  181.                    os.write(response.getBytes());
  182.                }
  183.  
  184.            } catch (Exception e) {
  185.                String response = "Error: " + e.getMessage();
  186.                exchange.sendResponseHeaders(500, response.length());
  187.                try (OutputStream os = exchange.getResponseBody()) {
  188.                    os.write(response.getBytes());
  189.                }
  190.            }
  191.        }
  192.    }
  193. }


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Control remoto
Programación Visual Basic
ragdefigueroa 5 2,815 Último mensaje 8 Enero 2008, 17:06 pm
por krackwar
Control remoto de PC
Software
N30 N470 2 2,317 Último mensaje 14 Marzo 2012, 09:55 am
por Hunteroriol
Control Remoto
Redes
aabrego 5 3,312 Último mensaje 1 Octubre 2012, 20:27 pm
por HdM
Control Remoto
Seguridad
elecweek 4 3,058 Último mensaje 28 Febrero 2017, 08:12 am
por engel lex
control remoto en xp
Software
elezekiel 6 10,231 Último mensaje 27 Octubre 2021, 22:16 pm
por crazykenny
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines