Sythe.Org Forums     Register     FAQ     Members List     Calendar     Mark Forums Read    
 
Sythe.Org Forums  
   Runescape Gold

Sythe.org — A Virtual Goods Trading Hub

Make real cash! buying and selling in-game items.

We have a no-scam policy.

You can make thousands playing your favourite games here at Sythe.org.

Just sign up an account and follow the rules!


Take me to

Runescape Markets

Other Game Markets

Support Center

Register an Account

Close
Easier to use Robot class!
Closed Thread
 
LinkBack Thread Tools Display Modes
  #1  
Old 05-07-2010, 03:31 AM
Active Member
 
Join Date: Apr 2010
Posts: 114
Default Easier to use Robot class!

<edit>
How do I make the code box smaller?!
</edit>

I had some spare time today, so I made this:
Code:
import java.awt.event.InputEvent;

import java.awt.Robot;

import java.awt.Color;

import java.awt.AWTException;

import java.lang.String;



public class bots {



/* easier_botting intended for use with java.awt.Robot in some cases.

This should shorten the number of commands need. For example, it should

no longer be necessary to type mousePress, mouseRelease and mouseMove to

click on a location.*/	

	

	

//	presses mouse button at any given location

	public static void Click(int x, int y, int button) throws AWTException{

		Robot mouseclick = new Robot();

		mouseclick.mouseMove(x, y); //moves mouse

		if (button == 1){

			mouseclick.mousePress(InputEvent.BUTTON1_MASK);

			mouseclick.mouseRelease(InputEvent.BUTTON1_MASK);

		}

		if (button == 2){

			mouseclick.mousePress(InputEvent.BUTTON2_MASK);

			mouseclick.mouseRelease(InputEvent.BUTTON2_MASK);

		}

		if (button == 3){

			mouseclick.mousePress(InputEvent.BUTTON3_MASK);

			mouseclick.mouseRelease(InputEvent.BUTTON3_MASK);

		}

	}



//	presses mouse button, moves mouse to location, releases mouse button, commonly called "dragging"

	public static void drag(int x_init, int y_init, int x_fin, int y_fin, int button) throws AWTException{

		Robot drag = new Robot();

		drag.mouseMove(x_init, y_init);

		if (button == 1){

			drag.mousePress(InputEvent.BUTTON1_MASK);

			drag.mouseMove(x_fin, y_fin);

			drag.mouseRelease(InputEvent.BUTTON1_MASK);

		}

		if (button == 2){

			drag.mousePress(InputEvent.BUTTON2_MASK);

			drag.mouseMove(x_fin, y_fin);

			drag.mouseRelease(InputEvent.BUTTON2_MASK);

		}

		if (button == 3){

			drag.mousePress(InputEvent.BUTTON3_MASK);

			drag.mouseMove(x_fin, y_fin);

			drag.mouseRelease(InputEvent.BUTTON3_MASK);

		}	



	}



//	Identifies colors

	public static int Red(int x, int y)throws AWTException{

		Robot pixel_finder = new Robot();

		Color colour;

		colour = pixel_finder.getPixelColor(x, y);

		int redness = colour.getRed();

		return redness;

		}



	public static int Blue(int x, int y) throws AWTException{

		Robot pixel_finder = new Robot();

		Color colour= pixel_finder.getPixelColor(x, y);;

		int redness = colour.getBlue();

		return redness;

		}



	public static int Green(int x, int y) throws AWTException{

		Robot pixel_finder = new Robot();

		Color colour;

		colour = pixel_finder.getPixelColor(x, y);

		int redness = colour.getGreen();

		return redness;

		}

	public static void key(String a/*, int num_letters  <-- I'm gonna work on that part*/) throws AWTException{

		Robot k = new Robot();

		//int i = num_letters - 1;

		//num_letters = 0;
                        <---And this part!
		//while (num_letters <= i){

		char letter = a.charAt(0);

		//Start lowercase letters

		if (letter == 'a'){

			k.keyPress(65); //press key, 65 is the key code

			k.keyRelease(65);

		}

		if (letter == 'b'){

			k.keyPress(66);

			k.keyRelease(66);

		}

		if (letter == 'c'){

			k.keyPress(67);

			k.keyRelease(67);

		}

		if (letter == 'd'){

			k.keyPress(68);

			k.keyRelease(68);

		}

		if (letter == 'e'){

			k.keyPress(69);

			k.keyRelease(69);

		}

		if (letter == 'f'){

			k.keyPress(70);

			k.keyRelease(70);

		}

		if (letter == 'g'){

			k.keyPress(71);

			k.keyRelease(71);

		}

		if (letter == 'h'){

			k.keyPress(72);

			k.keyRelease(72);

		}

		if (letter == 'i'){

			k.keyPress(73);

			k.keyRelease(73);

		}

		if (letter == 'j'){

			k.keyPress(74);

			k.keyRelease(74);

		}

		if (letter == 'k'){

			k.keyPress(75);

			k.keyRelease(75);

		}

		if (letter == 'l'){

			k.keyPress(76);

			k.keyRelease(76);

		}

		if (letter == 'm'){

			k.keyPress(77);

			k.keyRelease(77);

		}

		if (letter == 'n'){

			k.keyPress(78);

			k.keyRelease(78);

		}

		if (letter == 'o'){

			k.keyPress(79);

			k.keyRelease(79);

		}

		if (letter == 'p'){

			k.keyPress(80);

			k.keyRelease(80);

		}

		if (letter == 'q'){

			k.keyPress(81);

			k.keyRelease(81);

		}

		if (letter == 'r'){

			k.keyPress(82);

			k.keyRelease(82);

		}

		if (letter == 's'){

			k.keyPress(83);

			k.keyRelease(83);

		}

		if (letter == 't'){

			k.keyPress(84);

			k.keyRelease(84);

		}

		if (letter == 'u'){

			k.keyPress(85);

			k.keyRelease(85);

		}

		if (letter == 'v'){

			k.keyPress(86);

			k.keyRelease(86);

		}

		if (letter == 'w'){

			k.keyPress(87);

			k.keyRelease(87);

		}

		if (letter == 'x'){

			k.keyPress(88);

			k.keyRelease(88);

		}

		if (letter == 'y'){

			k.keyPress(89);

			k.keyRelease(89);

		}

		if (letter == 'z'){

			k.keyPress(90);

			k.keyRelease(90);

		}

		//Start capital letters

		if (letter == 'A'){

			k.keyPress(16); //16 is the keycode for "shift". Must be pressed before and released after press of other key for intended effect

			k.keyPress(65);

			k.keyRelease(65);

			k.keyRelease(16);

		}

		if (letter == 'B'){

			k.keyPress(16);

			k.keyPress(66);

			k.keyRelease(66);

			k.keyRelease(16);

		}

		if (letter == 'C'){

			k.keyPress(16);

			k.keyPress(67);

			k.keyRelease(67);

			k.keyRelease(16);

		}

		if (letter == 'D'){

			k.keyPress(16);

			k.keyPress(68);

			k.keyRelease(68);

			k.keyRelease(16);

		}

		if (letter == 'E'){

			k.keyPress(16);

			k.keyPress(69);

			k.keyRelease(69);

			k.keyRelease(16);

		}

		if (letter == 'F'){

			k.keyPress(16);

			k.keyPress(70);

			k.keyRelease(70);

			k.keyRelease(16);

		}

		if (letter == 'G'){

			k.keyPress(16);

			k.keyPress(71);

			k.keyRelease(71);

			k.keyRelease(16);

		}

		if (letter == 'H'){

			k.keyPress(16);

			k.keyPress(72);

			k.keyRelease(72);

			k.keyRelease(16);

		}

		if (letter == 'I'){

			k.keyPress(16);

			k.keyPress(73);

			k.keyRelease(73);

			k.keyRelease(16);

		}

		if (letter == 'J'){

			k.keyPress(16);

			k.keyPress(74);

			k.keyRelease(74);

			k.keyRelease(16);

		}

		if (letter == 'K'){

			k.keyPress(16);

			k.keyPress(75);

			k.keyRelease(75);

			k.keyRelease(16);

		}

		if (letter == 'L'){

			k.keyPress(16);

			k.keyPress(76);

			k.keyRelease(76);

			k.keyRelease(16);

		}

		if (letter == 'M'){

			k.keyPress(16);

			k.keyPress(77);

			k.keyRelease(77);

			k.keyRelease(16);

		}

		if (letter == 'N'){

			k.keyPress(16);

			k.keyPress(78);

			k.keyRelease(78);

			k.keyRelease(16);

		}

		if (letter == 'O'){

			k.keyPress(16);

			k.keyPress(79);

			k.keyRelease(79);

			k.keyRelease(16);

		}

		if (letter == 'P'){

			k.keyPress(16);

			k.keyPress(80);

			k.keyRelease(80);

			k.keyRelease(16);

		}

		if (letter == 'Q'){

			k.keyPress(16);

			k.keyPress(81);

			k.keyRelease(81);

			k.keyRelease(16);

		}

		if (letter == 'R'){

			k.keyPress(16);

			k.keyPress(82);

			k.keyRelease(82);

			k.keyRelease(16);

		}

		if (letter == 'S'){

			k.keyPress(16);

			k.keyPress(83);

			k.keyRelease(83);

			k.keyRelease(16);

		}

		if (letter == 'T'){

			k.keyPress(16);

			k.keyPress(84);

			k.keyRelease(84);

			k.keyRelease(16);

		}

		if (letter == 'U'){

			k.keyPress(16);

			k.keyPress(85);

			k.keyRelease(85);

			k.keyRelease(16);

		}

		if (letter == 'V'){

			k.keyPress(16);

			k.keyPress(86);

			k.keyRelease(86);

			k.keyRelease(16);

		}

		if (letter == 'W'){

			k.keyPress(16);

			k.keyPress(87);

			k.keyRelease(87);

			k.keyRelease(16);

		}

		if (letter == 'X'){

			k.keyPress(16);

			k.keyPress(88);

			k.keyRelease(88);

			k.keyRelease(16);

		}

		if (letter == 'Y'){

			k.keyPress(16);

			k.keyPress(89);

			k.keyRelease(89);

			k.keyRelease(16);

		}

		if (letter == 'Z'){

			k.keyPress(16);

			k.keyPress(90);

			k.keyRelease(90);

			k.keyRelease(16);

		}

		//start numbers

		if (letter == '1'){

			k.keyPress(49);

			k.keyRelease(49);

		}

		if (letter == '2'){

			k.keyPress(50);

			k.keyRelease(50);

		}

		if (letter == '3'){

			k.keyPress(51);

			k.keyRelease(51);

		}

		if (letter == '4'){

			k.keyPress(52);

			k.keyRelease(52);

		}

		if (letter == '5'){

			k.keyPress(53);

			k.keyRelease(53);

		}

		if (letter == '6'){

			k.keyPress(54);

			k.keyRelease(54);

		}

		if (letter == '7'){

			k.keyPress(55);

			k.keyRelease(55);

		}

		if (letter == '8'){

			k.keyPress(56);

			k.keyRelease(56);

		}

		if (letter == '9'){

			k.keyPress(57);

			k.keyRelease(57);

		}

		if (letter == '0'){

			k.keyPress(48);

			k.keyRelease(48);

		}

		//start punctuation without shift key

		if (letter == '`'){

			k.keyPress(192);

			k.keyRelease(192);

		}

		if (letter == ','){

			k.keyPress(44);

			k.keyRelease(44);

		}

		if (letter == '.'){

			k.keyPress(46);

			k.keyRelease(46);

		}

		if (letter == '\\'){

			k.keyPress(92);

			k.keyRelease(92);

		}

		if (letter == '/'){

			k.keyPress(47);

			k.keyRelease(47);

		}

		if (letter == ';'){

			k.keyPress(59);

			k.keyRelease(59);

		}

		if (letter == '\''){

			k.keyPress(222);

			k.keyRelease(222);

		}

		if (letter == '-'){

			k.keyPress(45);

			k.keyRelease(45);

		}

		if (letter == '='){

			k.keyPress(61);

			k.keyRelease(61);

		}

		if (letter == '['){

			k.keyPress(91);

			k.keyRelease(91);

		}

		if (letter == ']'){

			k.keyPress(93);

			k.keyRelease(93);

		

		//start punctuation with shift key

		if (letter == '!'){

			k.keyPress(16);

			k.keyPress(49);

			k.keyRelease(49);

			k.keyPress(16);

		}

		if (letter == '@'){

			k.keyPress(16);

			k.keyPress(50);

			k.keyRelease(50);

			k.keyRelease(16);

		}

		if (letter == '#'){

			k.keyPress(16);

			k.keyPress(51);

			k.keyRelease(51);

			k.keyRelease(16);

		}

		if (letter == '$'){

			k.keyPress(16);

			k.keyPress(52);

			k.keyRelease(52);

			k.keyRelease(16);

		}

		if (letter == '%'){

			k.keyPress(16);

			k.keyPress(53);

			k.keyRelease(53);

			k.keyRelease(16);

		}

		if (letter == '^'){

			k.keyPress(16);

			k.keyPress(54);

			k.keyRelease(54);

			k.keyRelease(16);

		}

		if (letter == '&'){

			k.keyPress(16);

			k.keyPress(55);

			k.keyRelease(55);

			k.keyRelease(16);

		}

		if (letter == '*'){

			k.keyPress(16);

			k.keyPress(56);

			k.keyRelease(56);

			k.keyRelease(16);

		}

		if (letter == '('){

			k.keyPress(16);

			k.keyPress(57);

			k.keyRelease(57);

			k.keyRelease(16);

		}

		if (letter == ')'){

			k.keyPress(16);

			k.keyPress(58);

			k.keyRelease(58);

			k.keyRelease(16);

		}

		if (letter == '~'){

			k.keyPress(16);

			k.keyPress(192);

			k.keyRelease(192);

			k.keyRelease(16);

		}

		if (letter == '<'){

			k.keyPress(16);

			k.keyPress(44);

			k.keyRelease(44);

			k.keyRelease(16);

		}

		if (letter == '>'){

			k.keyPress(16);

			k.keyPress(46);

			k.keyRelease(46);

			k.keyRelease(16);

		}

		if (letter == '|'){

			k.keyPress(16);

			k.keyPress(92);

			k.keyRelease(92);

			k.keyRelease(16);

		}

		if (letter == '?'){

			k.keyPress(16);

			k.keyPress(47);

			k.keyRelease(47);

			k.keyRelease(16);

		}

		if (letter == ':'){

			k.keyPress(16);

			k.keyPress(59);

			k.keyRelease(59);

			k.keyRelease(16);

		}

		if (letter == '"'){

			k.keyPress(16);

			k.keyPress(222);

			k.keyRelease(222);

			k.keyRelease(16);

		}

		if (letter == '_'){

			k.keyPress(16);

			k.keyPress(45);

			k.keyRelease(45);

			k.keyRelease(16);

		}

		if (letter == '+'){

			k.keyPress(16);

			k.keyPress(61);

			k.keyRelease(61);

			k.keyRelease(16);

		}

		if (letter == '{'){

			k.keyPress(16);

			k.keyPress(91);

			k.keyRelease(91);

			k.keyRelease(16);

		}

		if (letter == '}'){

			k.keyPress(16);

			k.keyPress(93);

			k.keyRelease(93);

			k.keyRelease(16);

		}

		//(space)

		if (letter == ' '){

			k.keyPress(32);

			k.keyRelease(32);

		}

		//num_letters ++;

	//}

	}

}

}
What it is is a class that makes it easier to make bots. Save it as "bots".
Functions:
Click(int x, int y, int button) : moves mouse to X, Y and presses button 1, 2, 3.
drag(int x_init, int y_init, int x_fin, int y_fin, int button) : Moves mouse to X, Y (initial), presses a mouse button, moves mouse to X, Y (final), releases mouse button
Red(X, Y) : Returns red value for position X, Y
Blue(X, Y) : Same as above with blue. Go figure
Green(X, Y) : Guess :P
key(String a) : Presses the keys to make the first letter of String a. Took 500 lines. Means you no longer have to go search for keycodes!

If anyone has anything to add, go for it.
This works really well as a substitute for Robot, but only on simple codes. If you want to just plain old move the mouse, you'll have to use Robot. I think I'll add in a pointer location finder at some point.
__________________
VOUCHES!
# of vouches = 3

# of trades( ): 1
# of successful () trades: 1
# of time scammed: 1

Last edited by somanayr : 05-07-2010 at 03:32 AM.
  #2  
Old 06-02-2010, 12:18 AM
Member
 
Join Date: Jan 2010
Posts: 29
Default Re: Easier to use Robot class!

For your incredibly ugly code to get the key code int you can do something like Keyevent.setKeyChar(char keyChar) then keyevent.getKeyChar() I believe. I did something similar to what you did before i realized this tho. Mine's a lot cleaner if you want to use it. Ofc we both should have used hashmaps to get O(1) conversion times but I wrote this back when I was a noob

Code:
public int ascii2VK(int ascii) {
		int keyCode = -1;
		if((ascii >= 48 && ascii <=57) || (ascii >= 65 && ascii <=90)) {
			keyCode = ascii;
		} 
		else if(ascii >= 97 && ascii <= 122) {
			keyCode = ascii - 32;
		}
		else if(ascii == 10) {
			keyCode = KeyEvent.VK_ENTER;
		}
		else if(ascii == 32) {
			keyCode = KeyEvent.VK_SPACE;
		}
		else if(ascii == 33) {
			keyCode = 49;
		}
		else if(ascii == 34) {
			keyCode = KeyEvent.VK_QUOTE;
		}
		else if(ascii == 35) {
			keyCode = 51;
		}
		else if(ascii == 36) {
			keyCode = 52;
		}
		else if(ascii == 37) {
			keyCode = 53;
		}
		else if(ascii == 38) {
			keyCode = 55;
		}
		else if(ascii == 39) {
			keyCode = KeyEvent.VK_QUOTE;
		}
		else if(ascii == 40) {
			keyCode = 57;
		}
		else if(ascii == 41) {
			keyCode = 48;
		}
		else if(ascii == 42) {
			keyCode = 56;
		}
		// i <3 the creator of ascii/vk codes :]
		else if(ascii == 43) {
			keyCode = KeyEvent.VK_EQUALS;
		}
		else if(ascii == 44) {
			keyCode = KeyEvent.VK_COMMA;
		}
		else if(ascii == 44) {
			keyCode = KeyEvent.VK_COMMA;
		}
		else if(ascii == 45) {
			keyCode = KeyEvent.VK_MINUS;
		}
		else if(ascii == 46) {
			keyCode = KeyEvent.VK_PERIOD;
		}
		else if(ascii == 47) {
			keyCode = KeyEvent.VK_SLASH;
		}
		else if(ascii == 58) {
			keyCode = KeyEvent.VK_SEMICOLON;
		}
		else if(ascii == 59) {
			keyCode = KeyEvent.VK_SEMICOLON;
		}
		else if(ascii == 60) {
			keyCode = KeyEvent.VK_COMMA;
		}
		else if(ascii == 61) {
			keyCode = KeyEvent.VK_EQUALS;
		}
		else if(ascii == 62) {
			keyCode = KeyEvent.VK_PERIOD;
		}
		else if(ascii == 63) {
			keyCode = KeyEvent.VK_SLASH;
		}
		else if(ascii == 64) {
			keyCode = 50;
		}
		else if(ascii == 64) {
			keyCode = 50;
		}
		else if(ascii == 91) {
			keyCode = KeyEvent.VK_OPEN_BRACKET;
		}
		else if(ascii == 92) {
			keyCode = KeyEvent.VK_BACK_SLASH;
		}
		else if(ascii == 93) {
			keyCode = KeyEvent.VK_CLOSE_BRACKET;
		}
		else if(ascii == 94) {
			keyCode = 54;
		}
		else if(ascii == 95) {
			keyCode = KeyEvent.VK_MINUS;
		}
		else if(ascii == 123) {
			keyCode = KeyEvent.VK_OPEN_BRACKET;
		}
		else if(ascii == 124) {
			keyCode = KeyEvent.VK_BACK_SLASH;
		}
		else if(ascii == 125) {
			keyCode = KeyEvent.VK_CLOSE_BRACKET;
		}
		else {
			System.out.println("this key code has not been implemented");
		}
		return keyCode;
	}
	
	/**
	 * Checks to see if the key needs shift held down
	 * @param ascii The ascii value of the key
	 * @return Returns true if shift needs to be held to type key
	 */
	public boolean needsShift(int ascii) {
		boolean ret = false;
		if (ascii >= 65 && ascii <=90)
			ret = true;
		else if (ascii >= 33 && ascii <= 38)
			ret = true;
		else if (ascii >= 40 && ascii <= 43)
			ret = true;
		else if (ascii >= 40 && ascii <= 43)
			ret = true;
		else if (ascii == 58)
			ret = true;
		else if (ascii == 60)
			ret = true;
		else if (ascii >= 62 && ascii <= 64)
			ret = true;
		else if (ascii == 94)
			ret = true;
		else if (ascii == 95)
			ret = true;
		else if (ascii >= 123 && ascii <= 125)
			ret = true;
		return ret;
	}
	
	/**
	 * Generates key events to type the character given.
	 * @param ascii The ascii value of the character to be typed
	 */
	 public void sendKey(int ascii) {
	 	if (needsShift(ascii)) {
	 		robot.keyPress(KeyEvent.VK_SHIFT);
			robot.delay(random(random(11,16),random(16,28)));
    		robot.keyPress(ascii2VK(ascii));
			robot.delay(random(random(11,16),random(16,28)));
			robot.keyRelease(ascii2VK(ascii));
			robot.delay(random(random(11,16),random(16,28)));
			robot.keyRelease(KeyEvent.VK_SHIFT);
		}
		else {
			robot.keyPress(ascii2VK(ascii));
			robot.delay(random(random(11,16),random(16,28)));
			robot.keyRelease(ascii2VK(ascii));
		}
	}

Last edited by noob532 : 06-02-2010 at 12:20 AM.
  #3  
Old 06-02-2010, 07:50 PM
Active Member
 
Join Date: Apr 2010
Posts: 114
Default Re: Easier to use Robot class!

Yours is still pretty damn ugly...
Why is mine double spaced???
__________________
VOUCHES!
# of vouches = 3

# of trades( ): 1
# of successful () trades: 1
# of time scammed: 1

Last edited by somanayr : 06-02-2010 at 07:52 PM.
  #4  
Old 06-07-2010, 05:42 PM
Active Member
 
Join Date: Jul 2005
Location: Belgium
Posts: 149
Send a message via AIM to freddy1990 Send a message via MSN to freddy1990
Default Re: Easier to use Robot class!

Quote:
Originally Posted by somanayr View Post
Yours is still pretty damn ugly...
Why is mine double spaced???
They're both horrible... l2ascii
__________________
  #5  
Old 06-08-2010, 02:59 AM
Jimmy's Avatar
Leecher
Ex-Moderator $5 USD Donor
 
Join Date: Jun 2008
Location: Southern California
Posts: 2,359
Default Re: Easier to use Robot class!

Quote:
Originally Posted by freddy1990 View Post
They're both horrible... l2ascii
QFT.

Locked.
__________________
Closed Thread



Cheap RS Gold Store  Runescape Gold

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

All times are GMT +1. The time now is 08:27 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.1