Archief - [PROG]REQUEST Prog. dat snel de "e" toets indrukt ?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

azerty_2006

Legacy Member
Yo @ iedereen :)

Ok, eerste keer dak in deze sectie post dus ik hoop dat dit de juiste plaats (en prefix) is...

Ik heb dus een programma nodig die bvb als ik op "f1" druk het programma zéér snel op "e" drukt, als ik dan nogmaal op f1 druk zou hij moeten stoppen. Kweet dat het een dom voorbeeld is mjah :). Google heeft nietveel uitgehaald. Dus ik vroeg me af of iemand hier zoiets kan in elkaar steken ? Kheb al een paar tutorials gelezen maar geraak er geen wijs uit..

Dank bij voorbaat :niceone:

dJeez

Legacy Member
Waar zou dat in godsnaam goed voor moeten zijn? Je kan toch ook de e toets zelf gewoon ingedrukt houden en loslaten?

NecroNeo

Legacy Member
zoek es achter programmas tegen rsi, daar zitten er sommige tussen waar je 'n macro kan opnemen en laten afspelen.

killgore

Legacy Member
den Acid Burn zei:
that is like 3 regels code ofzo :p
hm, venster maken
keypress opvangen
message in loop sturen
keyup opvangen

idd nie veel, ma veel zin heb ik niet echt :p.

azerty_2006

Legacy Member
Waar zou dat in godsnaam goed voor moeten zijn? Je kan toch ook de e toets zelf gewoon ingedrukt houden en loslaten?
Maak toch nie uit voor wat het goed is :) ? Heb het gewoon nodig

zoek es achter programmas tegen rsi, daar zitten er sommige tussen waar je 'n macro kan opnemen en laten afspelen.
Hmm mooi, kan je ff meer info/link gaven aub ? :unsure:

hm, venster maken
keypress opvangen
message in loop sturen
keyup opvangen
Chinees :p

azerty_2006

Legacy Member
killgore zei:
5 jaar studies gaan volgen voor chinees te leren dus en dan nog eens 3 jaar TI

begin er maar aan!

Grapken e Paul :), ik bedoel natuurlijk dat zoiets voor u simpel is maar ik versta daar de ballen van :doc: .

Maar kan er nu iemand een bruikbare oplossing geven ? :x

den Acid Burn

Legacy Member
wat quick and dirty java code

PHP:
import java.awt.event.*;
import javax.swing.*;


public class KeyImitator implements KeyListener {
	private boolean pressed = false;
	private JFrame frame;
	private JTextField textField;
	
	public KeyImitator()  {
		frame = new JFrame("test");
		
		textField = new JTextField();
		frame.add(textField);
		
		textField.addKeyListener(this);
		
		
		frame.setSize(200, 200);
		frame.setLocation(100, 100);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
	
	public  static void main (String[] args) {
		KeyImitator app = new KeyImitator();
	}
	
	public void keyReleased(KeyEvent e) {
	
	}
	
	public void keyPressed(KeyEvent e) {
	   if (e.getKeyCode() == KeyEvent.VK_F1) {
			if (pressed) 
				pressed = false;
			else
				pressed = true;
			
			while (pressed) {
				System.out.println("e");
			}
		}
		
	}
	
	public void keyTyped(KeyEvent e) {
		
	}


}

KeaTs

Legacy Member
Met WireKeys kan je ook leuke dingen, denk wel dat wat jij wil mogelijk is daarmee. Is trouwens ook perfect om allerhande online flashgames te "spelen", leuk bij wedstrijdjes :)

[BAT] Hydra

Legacy Member
den Acid Burn zei:
wat quick and dirty java code

PHP:
import java.awt.event.*;
import javax.swing.*;


public class KeyImitator implements KeyListener {
	private boolean pressed = false;
	private JFrame frame;
	private JTextField textField;
	
	public KeyImitator()  {
		frame = new JFrame("test");
		
		textField = new JTextField();
		frame.add(textField);
		
		textField.addKeyListener(this);
		
		
		frame.setSize(200, 200);
		frame.setLocation(100, 100);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
	
	public  static void main (String[] args) {
		KeyImitator app = new KeyImitator();
	}
	
	public void keyReleased(KeyEvent e) {
	
	}
	
	public void keyPressed(KeyEvent e) {
	   if (e.getKeyCode() == KeyEvent.VK_F1) {
			if (pressed) 
				pressed = false;
			else
				pressed = true;
			
			while (pressed) {
				System.out.println("e");
			}
		}
		
	}
	
	public void keyTyped(KeyEvent e) {
		
	}


}

Zou dat echt werken? Als de thread bezig is in de while lus van de keyPressed methode, kan die toch niet nogmaals de keyPressed methode binnengaan?

killgore

Legacy Member
[BAT] Hydra zei:
Zou dat echt werken? Als de thread bezig is in de while lus van de keyPressed methode, kan die toch niet nogmaals de keyPressed methode binnengaan?
neen, dit wel, enkel dat die println nog niet doet wat ts vraagt & dat men thread-code beetje fout kan zijn:

PHP:
import java.awt.event.*;
import javax.swing.*;

class KeyImitator implements KeyListener {
	private JFrame frame;

	private JTextField textField;

	boolean pressed = false;

	Presser presser = null;

	public KeyImitator() {
		frame = new JFrame("test");

		textField = new JTextField();
		frame.add(textField);

		textField.addKeyListener(this);

		frame.setSize(200, 200);
		frame.setLocation(100, 100);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}

	public static void main(String[] args) {
		new KeyImitator();
	}

	public void keyReleased(KeyEvent e) {

	}

	public void keyPressed(KeyEvent e) {
		if (e.getKeyCode() == KeyEvent.VK_F1) {
			if (presser == null) {
				presser = new Presser();
				presser.start();
			} else {
				presser.quit();
				presser.stop();
				presser = null;
			}
		}

	}

	public void keyTyped(KeyEvent e) {

	}

}

class Presser extends Thread {
	private boolean stop = false;

	public Presser() {
	}

	public void quit() {
		stop = true;
	}

	public void run() {
		while (!stop) {
			System.out.println("e");
			try {
				Thread.sleep(10);
			} catch (InterruptedException e) {
				stop = true;
			}
			;
		}
	}
}

[BAT] Hydra

Legacy Member
killgore zei:
enkel dat die println nog niet doet wat ts vraagt & dat men thread-code beetje fout kan zijn

Zo ik heb het wat afgewerkt, er wordt niet enkel 'e' getypt in de jframe, maar als je je favoriete text editor opent, zal hij daar ook 'e' blijven typen.

executable jar:
http://www.belgiumthrills.be/hydra/simple_keypresser.jar

source:
PHP:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

class KeyImitator implements KeyListener {
    private JFrame frame;

    private JTextField textField;

    boolean pressed = false;

    Presser presser = null;

    public KeyImitator() {
        frame = new JFrame("test");

        textField = new JTextField();
        frame.add(textField);

        textField.addKeyListener(this);

        frame.setSize(200, 200);
        frame.setLocation(100, 100);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new KeyImitator();
    }

    public void keyReleased(KeyEvent e) {

    }

    public void keyPressed(KeyEvent e) {
        if (e.getKeyCode() == KeyEvent.VK_F1) {
            if (presser == null) {
                presser = new Presser();
                presser.start();
            } else {
                presser.quit();
                presser.stop();
                presser = null;
            }
        }

    }

    public void keyTyped(KeyEvent e) {

    }

}

class Presser extends Thread {
    private boolean stop = false;

    public Presser() {
    }

    public void quit() {
        stop = true;
    }

    public void run() {
		try {
			Robot keyPresser  = new Robot();
			while (!stop) {
	            keyPresser.keyPress(KeyEvent.VK_E);
	            keyPresser.keyRelease(KeyEvent.VK_E);
	            try {
	                Thread.sleep((int)(Math.random()*1000));
	            } catch (InterruptedException e) {
	                stop = true;
	            }
	        }
		} catch (AWTException e1) { 
			stop = true;
		}
    }
    
}

Enigste probleem is nog dat de keylistener gebonden is aan het jframe, zodat het jframe als geselecteerd venster moet staan om het typen te starten en te stoppen.

Robain

Legacy Member
ik heb zo'n donkerbruin vermoeden dat de TS een battlefield speler is ...

[BAT] Hydra

Legacy Member
Het enigste wat hij met zon programmatje zou kunnen doen is wat taunten als ik me niet vergis, met enkel de code die hier staat red hij het trouwens niet om dat te kunnen doen ingame.

Robain

Legacy Member
nee hoor...

ik ben zelf een fervent bf2 speler, en ik vlieg bvb heel graag met de J-10. Probleem nu is dat iedereen daar graag mee vliegt, dus staat er daar zo'n 5-tal man op die spawn plaats constant op use knop (default knop 'e' ) te duwen om als eerste in het vliegtuig zitten. Op die manier zou meneer azerty dus steeds het vliegtuig hebben (om dan wss toch maar de carrier te gaan rapen ofzo...)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan