Das kommt drauf an, ob du Code postest oder nicht :wink:kann mir mal jemand erklären, warum mein Robot manchmal dauerhaft schnell die Character aus meiner ArrayList eingibt und manchmal von mal zu mal immer langsamer wird?
public void sendCommands(int delay) {
for (int i = 0; i < commandsInChars.size(); i++) {
if (commandsInChars.get(i) == BACKSLASH) {
insertBackSlash();
} else if (commandsInChars.get(i) != '+') {
pressSpecialSign(commandsInChars.get(i), r);
} else {
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);
clearCommandLine(i);
r.delay(delay);
}
}
commandsInChars.clear();
JOptionPane.showMessageDialog(null, "Fertig!");
}
private void pressSpecialSign(int code, Robot instance) {
Clipboard clippy = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable clippysContent = clippy.getContents( null );
try {
StringSelection selection = new StringSelection(new String(new char[]{(char)code}));
clippy.setContents( selection,selection );
//press STRG+V == insert
instance.keyPress( KeyEvent.VK_CONTROL );
instance.keyPress(KeyEvent.VK_V);
instance.keyRelease(KeyEvent.VK_V);
instance.keyRelease( KeyEvent.VK_CONTROL );
}
catch(Exception ex) {
ex.printStackTrace();
}
try {
clippy.setContents( clippysContent ,null); //reset old content
} catch (Exception ex) {}
}
public void insertBackSlash() {
r.keyPress(KeyEvent.VK_ALT);
r.keyPress(KeyEvent.VK_NUMPAD0);
r.keyRelease(KeyEvent.VK_NUMPAD0);
r.keyPress(KeyEvent.VK_NUMPAD0);
r.keyRelease(KeyEvent.VK_NUMPAD0);
r.keyPress(KeyEvent.VK_NUMPAD9);
r.keyRelease(KeyEvent.VK_NUMPAD9);
r.keyPress(KeyEvent.VK_NUMPAD2);
r.keyRelease(KeyEvent.VK_NUMPAD2);
r.keyRelease(KeyEvent.VK_ALT);
}
madboy hat gesagt.:Hmmm. Das ist ne gute Frage, warum es langsamer wird. Deiner Fragestellung entnehme ich, dass es nicht auf den übergebenen Text ankommt...
Spontan fällt mir nur das "übliche" ein: Minimalbeispiel mit vielen Ausgaben, wo die Zeit "verbraten" wird.
Evtl. auch die CPU-Auslastung im Auge behalten. Vielleicht mag das dein Betriebssystem nicht, wenn dauernd auf das Clipboard zugegriffen wird ???:L