Maus bewegungen übertragen
lima-city → Forum → Heim-PC → Software
besitz
bewegen
bildschirm
buffer
byte
code
computer
edition
host
import
jemand
maus
netzwerk
nutzen
port
programm
software
string
verbessern
windows
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du willst das Tablet als Maus für den Computer verwenden? Reicht es dir, wenn das Programm selbst geschrieben ist?
Wenn beides zutrifft: du brauchst auf beiden Geräten die Java-Laufzeitumgebung.
Am PC:import java.awt.Robot; import java.net.DatagramPacket; import java.net.DatagramSocket; public class computer { public static void main(String[] args) throws Exception { DatagramSocket socket = new DatagramSocket(16000); byte[] buffer = new byte[4]; // maximal packet size Robot r = new Robot(); while(true) { DatagramPacket packet = new DatagramPacket(buffer, buffer.length); socket.receive(packet); byte[] data = packet.getData(); int length = packet.getLength(); int x = ((data[0] & 0xFF) << 8) | (data[1] & 0xFF); int y = ((data[2] & 0xFF) << 8) | (data[3] & 0xFF); r.mouseMove(x, y); r.waitForIdle(); } } }
Am Tablet:import java.awt.Frame; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.MouseMotionListener; import java.awt.event.MouseEvent; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.io.IOException; public class tablet extends Frame { private DatagramSocket socket; private InetAddress host; private int port; public static void main(String[] args) throws Exception { new tablet(InetAddress.getByName(args[0]), 16000); } public tablet(InetAddress host, int port) throws IOException { this.host = host; this.port = port; Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); setUndecorated(true); setBounds(0, 0, (int) dim.getWidth(), (int) dim.getHeight()); socket = new DatagramSocket(); addMouseMotionListener(new MouseMotionListener() { public void mouseMoved(MouseEvent e) { sendCoordinates(e.getX(), e.getY()); } public void mouseDragged(MouseEvent e) { sendCoordinates(e.getX(), e.getY()); } }); setVisible(true); } private void sendCoordinates(int x, int y) { byte[] buffer = new byte[4]; buffer[0] = (byte) ((x >> 8) & 0xFF); buffer[1] = (byte) (x & 0xFF); buffer[2] = (byte) ((y >> 8) & 0xFF); buffer[3] = (byte) (y & 0xFF); try { DatagramPacket packet = new DatagramPacket(buffer, buffer.length, host, port); socket.send(packet); } catch(IOException e) { e.printStackTrace(); } } }
Am PC startest du das Programm mit
und am Tablet mitjava computer
java tablet pc-ip-adresse
Daraufhin bekommst du am Tablet einen komplett weißen Bildschirm und wenn du die "Maus" bewegst wird sie sich auch am PC bewegen, solange die Auflösung die gleiche ist und das Netzwerk nicht allzu langsam. Falls du Java kannst kannst du das natürlich nach deinen Wünschen verbessern… in dieser "Version" werden wirklich nur die Mausbewegungen übertragen, keine Klicks o.ä. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage