Skip to content

Instantly share code, notes, and snippets.

@ePaul
Created July 13, 2011 21:58
Show Gist options
  • Save ePaul/1081431 to your computer and use it in GitHub Desktop.
Save ePaul/1081431 to your computer and use it in GitHub Desktop.
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Prog {
public Prog() throws AWTException
{
r = new Robot();
}
Robot r;
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
Pattern p = Pattern.compile("\n\n\n([^\n]+ )[^ \n]+\n");
public String grabText() throws Exception {
cb.setContents(new StringSelection("bla"), null);
r.mouseMove(100, 300);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_A);
Thread.sleep(10);
r.keyRelease(KeyEvent.VK_A);
Thread.sleep(10);
r.keyPress(KeyEvent.VK_C);
Thread.sleep(10);
r.keyRelease(KeyEvent.VK_C);
r.keyRelease(KeyEvent.VK_CONTROL);
Thread.sleep(100);
String text = (String)cb.getData(DataFlavor.stringFlavor);
Matcher m = p.matcher(text);
if(m.find()){
String satz = m.group(1);
return satz;
}
return "";
}
public void navigateToTextField()
throws Exception
{
r.keyPress(KeyEvent.VK_TAB);
Thread.sleep(7);
r.keyRelease(KeyEvent.VK_TAB);
Thread.sleep(10);
r.keyPress(KeyEvent.VK_SHIFT);
r.keyPress(KeyEvent.VK_TAB);
Thread.sleep(8);
r.keyRelease(KeyEvent.VK_TAB);
r.keyRelease(KeyEvent.VK_SHIFT);
Thread.sleep(10);
}
public void typeText(String text) throws Exception {
for(int i = 0; i< text.length(); i++) {
char c = text.charAt(i);
if(c > 127) {
pressUnicode(c);
}
else {
int code;
if(Character.isLowerCase(c)) {
code = c - 32;
}
else {
r.keyPress(KeyEvent.VK_SHIFT);
code = c;
}
r.keyPress(code);
//Thread.sleep(8);
r.keyRelease(code);
r.keyRelease(KeyEvent.VK_SHIFT);
}
Thread.sleep(5);
}
}
/**
*
* @param r
* @param key_code
*/
public void pressUnicode(char key_code) throws Exception
{
cb.setContents(new StringSelection(""+key_code), null);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
Thread.sleep(10);
r.keyRelease(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
}
public static void main(String[] egal) throws Exception{
Thread.sleep(5000);
Prog p = new Prog();
for(int i = 0; i < 200; i++) {
String text = p.grabText();
if(text.startsWith("Die besten Deals"))
break;
System.out.println(text);
p.navigateToTextField();
p.typeText(text);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment