Advertisement
Guest User

Untitled

a guest
Jul 21st, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.89 KB | None | 0 0
  1. package com.company;
  2.  
  3. import javax.swing.JFrame;
  4. import java.awt.Robot;
  5. import java.awt.*;
  6. import javax.swing.JTextField;
  7. import javax.swing.JPanel;
  8. import javax.swing.JComponent;
  9. import java.util.TimerTask;
  10. import java.util.Timer;
  11. import java.util.Random;
  12. import java.awt.image.BufferedImage;
  13. import java.awt.AWTException;
  14. import java.awt.Robot;
  15. import java.awt.event.KeyEvent;
  16. import java.awt.PointerInfo;
  17. import java.awt.MouseInfo;
  18. import java.awt.KeyboardFocusManager;
  19. import java.util.logging.Logger;
  20. import java.util.logging.Level;
  21. import java.util.ArrayList;
  22.  
  23. import org.jnativehook.GlobalScreen;
  24. import org.jnativehook.NativeHookException;
  25. import org.jnativehook.keyboard.NativeKeyEvent;
  26. import org.jnativehook.keyboard.NativeKeyListener;
  27.  
  28. import java.awt.event.KeyEvent.*;
  29.  
  30. import processing.core.PApplet;
  31.  
  32. public class UsingProcessing extends PApplet implements NativeKeyListener {
  33.  
  34. public static Robot robot;
  35.  
  36. public static boolean mouse1down = false;
  37.  
  38. public static boolean[] keyPresses = new boolean[256];
  39.  
  40. public static int[] bindPresses = new int[256];
  41.  
  42. public static ArrayList<String> typeQueue;
  43.  
  44. public static void main(String[] args) {
  45. PApplet.main("com.company.UsingProcessing");
  46.  
  47. try {
  48. GlobalScreen.registerNativeHook();
  49. } catch (NativeHookException ex) {
  50. System.err.println("There was a problem registering the native hook.");
  51. System.err.println(ex.getMessage());
  52.  
  53. System.exit(1);
  54. }
  55.  
  56. typeQueue = new ArrayList<String>();
  57.  
  58. GlobalScreen.addNativeKeyListener(new UsingProcessing());
  59.  
  60. // Get the logger for "org.jnativehook" and set the level to warning.
  61. Logger logger = Logger.getLogger(GlobalScreen.class.getPackage().getName());
  62. logger.setLevel(Level.WARNING);
  63.  
  64. // Don't forget to disable the parent handlers.
  65. logger.setUseParentHandlers(false);
  66. }
  67.  
  68. public void settings() {
  69. size(1200, 800, P2D);
  70. }
  71.  
  72. public void setup() {
  73.  
  74. frameRate(50);
  75.  
  76. try {
  77. robot = new Robot();
  78. } catch (AWTException e) {
  79. e.printStackTrace();
  80. exit();
  81. }
  82. }
  83.  
  84.  
  85. public void draw() {
  86. background(0);
  87. noStroke();
  88.  
  89. for(int i=0;i<256;i++) {
  90. if(bindPresses[i]>0) {
  91. bindPresses[i]--;
  92. }
  93. }
  94.  
  95. //println(bindPresses['P']);
  96.  
  97. /*Rectangle area = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
  98. BufferedImage bufferedImage = robot.createScreenCapture(area);
  99.  
  100. int gs = 2;
  101.  
  102. int cw = 200;
  103. int ch = 200;
  104.  
  105. int cx = 1680 / 2;
  106. int cy = 1050 / 2 + 100;
  107.  
  108. int tx = 0;
  109. int ty = 0;
  110. int tn = 0;
  111.  
  112. for (int i = cx - cw / 2; i < cx + cw / 2; i += gs) {
  113. for (int j = cy - ch / 2; j < cy + ch / 2; j += gs) {
  114.  
  115. int rr = 0;
  116. int gg = 255;
  117. int bb = 0;
  118.  
  119. int rra = 0;
  120. int gga = 0;
  121. int bba = 0;
  122.  
  123. for (int ii = 0; ii < gs; ii += 1) {
  124. for (int jj = 0; jj < gs; jj += 1) {
  125. Color cc = new Color(bufferedImage.getRGB(i + ii, j + jj));
  126. rra += cc.getRed();
  127. gga += cc.getGreen();
  128. bba += cc.getBlue();
  129. }
  130. }
  131.  
  132. rra /= gs * gs;
  133. gga /= gs * gs;
  134. bba /= gs * gs;
  135.  
  136. int cdis = round((float) 0.5 * pow(abs(rr - rra) + abs(gg - gga) + abs(bb - bba), 1));
  137.  
  138. if (cdis > 100) {
  139. continue;
  140. }
  141.  
  142. tx += i - cx + cw / 2 + gs / 2;
  143. ty += j - cy + ch / 2 + gs / 2;
  144. tn += 1;
  145.  
  146. //fill(rra/25, gga/25, bba/25);
  147. //println(round(sqrt(pow(rr-rra,2) + pow(gg-gga,2) + pow(bb-bba,2))));
  148. colorMode(HSB);
  149. fill(cdis, 255, 255);
  150. rectMode(CORNER);
  151. rect(i - cx + cw / 2, j - cy + ch / 2, gs, gs);
  152. }
  153. }
  154.  
  155. int mx = 0;
  156. int my = 0;
  157.  
  158. if (tn != 0) {
  159. mx = tx / tn;
  160. my = ty / tn;
  161. } else {
  162. mx = cw / 2;
  163. my = ch / 2 - 1;
  164. }
  165.  
  166. ellipseMode(CENTER);
  167. fill(200, 255, 255);
  168. ellipse(mx, my, 10, 10);
  169.  
  170. stroke(200, 255, 255);
  171. strokeWeight(5);
  172.  
  173. float mang = atan2(my - ch / 2, mx - cw / 2);
  174.  
  175. line(cw / 2, ch / 2, cw / 2 + 200 * cos(mang), ch / 2 + 200 * sin(mang));
  176.  
  177. robot.keyRelease(KeyEvent.VK_D);
  178. robot.keyRelease(KeyEvent.VK_A);
  179. robot.keyRelease(KeyEvent.VK_SHIFT);
  180. robot.keyRelease(KeyEvent.VK_W);
  181. robot.keyRelease(KeyEvent.VK_UP);*/
  182.  
  183. //Rectangle area = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
  184. //BufferedImage bufferedImage = robot.createScreenCapture(area);
  185.  
  186.  
  187. for(int i=0;i<typeQueue.size();i++) {
  188. type(robot, typeQueue.get(i));
  189. typeQueue.remove(i);
  190. i--;
  191. }
  192.  
  193. /*robot.keyPress(KeyEvent.VK_W);
  194. robot.keyPress(KeyEvent.VK_UP);
  195.  
  196. if (mouse1down) {
  197. mouse1down = false;
  198. robot.mouseRelease(KeyEvent.BUTTON1_MASK);
  199. }
  200.  
  201. if (tn != 0) {
  202. mang = (mang + PI + PI / 2) % (2 * PI) - PI;
  203. //println(mang);
  204.  
  205. if (mang < -0.6) {
  206. robot.keyPress(KeyEvent.VK_D);
  207. robot.keyPress(KeyEvent.VK_SHIFT);
  208. delay(20);
  209. //robot.keyRelease(KeyEvent.VK_D);
  210. robot.keyRelease(KeyEvent.VK_SHIFT);
  211. //delay(50);
  212. } else if (mang > 0.6) {
  213. //robot.keyPress(KeyEvent.VK_A);
  214. robot.keyPress(KeyEvent.VK_SHIFT);
  215. delay(20);
  216. robot.keyRelease(KeyEvent.VK_A);
  217. robot.keyRelease(KeyEvent.VK_SHIFT);
  218. //delay(50);
  219. } else if (mang < -0.3) {
  220. robot.keyPress(KeyEvent.VK_D);
  221. //delay(50);
  222. } else if (mang > 0.3) {
  223. robot.keyPress(KeyEvent.VK_A);
  224. //delay(50);
  225. } else if (mang < -0.1) {
  226. robot.keyPress(KeyEvent.VK_D);
  227. delay(20);
  228. robot.keyRelease(KeyEvent.VK_D);
  229. } else if (mang > 0.1) {
  230. robot.keyPress(KeyEvent.VK_A);
  231. delay(20);
  232. robot.keyRelease(KeyEvent.VK_A);
  233. } else {
  234. if (random(10) < 1) {
  235. PointerInfo a = MouseInfo.getPointerInfo();
  236. Point b = a.getLocation();
  237. int mouseXx = (int) b.getX();
  238. int mouseYy = (int) b.getY();
  239. println(mouseXx + " " + mouseYy);
  240. if (false && mouseXx > 0) {
  241. robot.mouseMove(mouseXx, mouseYy);
  242. robot.mousePress(KeyEvent.BUTTON1_MASK);
  243. mouse1down = true;
  244. }
  245. }
  246. }
  247. }
  248.  
  249. if (frameCount > 100) {
  250. //exit();
  251. }
  252.  
  253. //println((int)'W');
  254.  
  255. if (keyPresses[(int) 'W']) {
  256.  
  257. fill(255);
  258. textSize(30);
  259. text("W", 300, 100);
  260. }*/
  261. }
  262.  
  263. public void nativeKeyPressed(NativeKeyEvent e) {
  264. //System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
  265.  
  266. int keyCode = (int) (NativeKeyEvent.getKeyText(e.getKeyCode()).charAt(0));
  267. char key = NativeKeyEvent.getKeyText(e.getKeyCode()).charAt(0);
  268.  
  269. if (key == 'P' && bindPresses['P'] == 0) {
  270.  
  271. bindPresses['P'] = 100;
  272.  
  273. //type(robot,"testamos intencionalmente perdiendo");
  274.  
  275. robot.keyPress(KeyEvent.VK_T);
  276. delay(20);
  277. robot.keyRelease(KeyEvent.VK_T);
  278. delay(20);
  279.  
  280. //typeQueue.add("estamos intencionalmente perdiendo");
  281. type(robot, "estamos intencionalmente perdiendo");
  282.  
  283. delay(20);
  284. robot.keyPress(KeyEvent.VK_ENTER);
  285. delay(20);
  286. robot.keyRelease(KeyEvent.VK_ENTER);
  287. } else if (key == 'N' && bindPresses['N'] == 0) {
  288.  
  289. bindPresses['N'] = 100;
  290.  
  291. robot.mouseMove(-1920/2,1080/2);
  292.  
  293. robot.mousePress(KeyEvent.BUTTON1_MASK);
  294. robot.keyPress(KeyEvent.VK_W);
  295. robot.mousePress(KeyEvent.BUTTON3_MASK);
  296. delay(20);
  297. robot.mouseRelease(KeyEvent.BUTTON3_MASK);
  298.  
  299. delay(150);
  300.  
  301. robot.keyRelease(KeyEvent.VK_W);
  302.  
  303. delay(150);
  304.  
  305. robot.keyPress(KeyEvent.VK_S);
  306.  
  307. delay(400);
  308.  
  309. robot.keyRelease(KeyEvent.VK_S);
  310. robot.keyPress(KeyEvent.VK_W);
  311.  
  312. delay(20);
  313.  
  314. robot.mousePress(KeyEvent.BUTTON3_MASK);
  315. delay(20);
  316. robot.mouseRelease(KeyEvent.BUTTON3_MASK);
  317.  
  318. //robot.keyRelease(KeyEvent.VK_W);
  319. //robot.mouseRelease(KeyEvent.BUTTON1_MASK);
  320. }
  321.  
  322. if (keyCode < 256) {
  323.  
  324. //println(keyCode);
  325.  
  326. keyPresses[keyCode] = true;
  327. }
  328.  
  329. if (e.getKeyCode() == NativeKeyEvent.VC_ESCAPE) {
  330. try {
  331. GlobalScreen.unregisterNativeHook();
  332. } catch (NativeHookException e1) {
  333. e1.printStackTrace();
  334. }
  335. }
  336. }
  337.  
  338. public void nativeKeyReleased(NativeKeyEvent e) {
  339.  
  340. int keyCode = (int) (NativeKeyEvent.getKeyText(e.getKeyCode()).charAt(0));
  341.  
  342. if (keyCode < 256) {
  343.  
  344. keyPresses[keyCode] = false;
  345. }
  346.  
  347. //System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
  348. }
  349.  
  350. public void nativeKeyTyped(NativeKeyEvent e) {
  351. //System.out.println("Key Typed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
  352. }
  353.  
  354. public void type(Robot robot, String str) {
  355.  
  356. if(robot==null) {
  357.  
  358. println("why");
  359. return;
  360. }
  361.  
  362. for(int i=0;i<str.length();i++) {
  363. char c = str.charAt(i);
  364. int cc = (int)c;
  365.  
  366. if('a'<=c&&c<='z') {
  367. cc = KeyEvent.VK_A + c - 'a';
  368. } else if('A'<=c&&c<='Z') {
  369. cc = KeyEvent.VK_A + c - 'A';
  370. } else if('0'<=c&&c<='9') {
  371. cc = KeyEvent.VK_0 + c - '0';
  372. }
  373.  
  374. //println(c);
  375.  
  376. robot.keyPress(cc);
  377. delay(4);
  378. robot.keyRelease(cc);
  379. delay(4);
  380.  
  381. }
  382.  
  383. }
  384.  
  385. public float RGBtoHSB(int r, int g, int b) {
  386. float hue, saturation, brightness;
  387.  
  388. int cmax = (r > g) ? r : g;
  389. if (b > cmax) cmax = b;
  390. int cmin = (r < g) ? r : g;
  391. if (b < cmin) cmin = b;
  392.  
  393. brightness = ((float) cmax) / 255.0f;
  394. if (cmax != 0)
  395. saturation = ((float) (cmax - cmin)) / ((float) cmax);
  396. else
  397. saturation = 0;
  398. if (saturation == 0)
  399. hue = 0;
  400. else {
  401. float redc = ((float) (cmax - r)) / ((float) (cmax - cmin));
  402. float greenc = ((float) (cmax - g)) / ((float) (cmax - cmin));
  403. float bluec = ((float) (cmax - b)) / ((float) (cmax - cmin));
  404. if (r == cmax)
  405. hue = bluec - greenc;
  406. else if (g == cmax)
  407. hue = 2.0f + redc - bluec;
  408. else
  409. hue = 4.0f + greenc - redc;
  410. hue = hue / 6.0f;
  411. if (hue < 0)
  412. hue = hue + 1.0f;
  413. }
  414. return hue;
  415. }
  416.  
  417.  
  418. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement