tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
512
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    xkill xkill ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Beiträge
    46
    Sehr geehrte Leser und Leserinnen,

    ich habe eine Funktion, die einen Robot dazu beauftragt eine Taste an ein Programm zu senden in einem gewissen zeitlichen Abstand:


    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Robot robot = new Robot();
    for (int i=0; i<100; i++) {
    robot.delay(3000);
    robot.keyPress(KeyEvent.VK_7);
    robot.keyRelease(KeyEvent.VK_7);
    Thread.sleep(4000);
    }

    Wenn ich das Programm bei mir laufen lassen funktioniert es ohne Probleme.

    Sobald ich es bei anderen Leuten ausprobiere kommt folgendes Problem:

    Sobald ich Notepad im Fokus habe, funktioniert es und Notepad empfängt die Siebenen.

    Wenn ich allerdings ein bestimmtes Spiel (UT3 Engine) fokussiere, also in den Vordergrund von Windows nehme, sendet er die Zeichen nicht an dieses Spiel, auf der Tastatur kann ich "7" drücken und das Spiel empfängt die der Tastatur, doch nicht die von Java.

    Wie gesagt, bei mir empfängt das Spiel die Signale von dem Robot.

    Hat jemand eine Ahnung was ich an dem Robot, dem Java Programm oder in Windows an den Berechtigungen verändern muss, damit das Tool auf "jedem" Rechner so läuft, dass alle Programme die Signale von den Robots empfangen?

    Am Spiel an sich scheint es ja nicht zu liegen, da es bei mir auf dem PC funktioniert.

    Vielleicht hatte jemand ja schon so ein Problem, oder hat eine Ahnung woran es liegen kann, ich bin für jeden Hinweis dankbar!

    Mit freundlichen Grüßen
    xkill
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Sorry, Java ist dafür nicht geeignet. Manche Programme, besonders Vollbild-Anwendungen wie Computerspiele übernehmen die Eingabe des Nutzers direkt, schleußen sie also an einem Teil des Betriebssystems vorbei, daher können sie auch nicht auf die Eingaben von anderer Software reagieren. Eventuell hilft dir AutoHotKey, https://en.wikipedia.org/wiki/Autohotkey weiter. Je nach Spiel und Betriebssystem kann es aber auch passieren, dass es gar keine Möglichkeit gibt, die von dir gewünschte Funktionalität zu erreichen.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    xkill xkill ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Beiträge
    46
    Danke für die Antworten!
    Was ich allerdings wundernswert finde ist, dass es ja bei mir und auch bei manchen anderen Usern funktioniert, allerdings eben bei manchen nicht, bisher habe ich keine Konstante festellen können. Sobald ich herausfinde woran es liegt, melde ich mich wieder.
     

  4. #4
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Vielleicht liegt es an dem Grafikkartentreiber, der Version des Betriebssystems, an irgendwelchen Sicherheitseinstellungen oder auch an anderen Einstellungen.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  5. #5
    xkill xkill ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Beiträge
    46
    Also aufgrund von diversen Tests, liegt es wohl am exakten Timing vom Starten des Robots und des Spiels.

    Ich hab jetzt einfach in c++ ein Screenshot Tool geschrieben und der Runtime.exec ausgeführt, ich hatte in Erinnerung, dass der Robot mit Directx Screenshots Probleme hatte, ist das richtig?

    Greetz
    xkill
     

  6. #6
    Avatar von mccae
    mccae mccae ist offline Senfdazugeber
    Registriert seit
    Dec 2007
    Ort
    Wien
    Beiträge
    226
    Hallo,

    Ich hatte ein ähnliches Problem.

    Und zwar wird Press und Release direkt hintereinander aufgerufen.
    Kein Mensch schafft es eine Taste innerhalb von 10ms und dergleichen zu drücken und wieder loszulassen.
    Zwischen den beiden Aktionen sollte eine realistische Pause (Einige 100ms) liegen, da manche Anwendungen es aufgrund von seltsamer Eventverarbeitung sonst nicht mitbekommen.

    Gruß,
    Martin C.
    Geändert von mccae (16.01.12 um 17:48 Uhr)
     

  7. #7
    xkill xkill ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Beiträge
    46
    Danke für eure Hilfe, ich hab jetzt von Java zu C++ umgeschwenkt, da ich dort auf andere Art und Weise screenshots kreieren kann.

    Da bin ich auch auf eine Frage gestoßen, aber die kommt wie es sich gehört ins richtige Forum.

    Danke nochmal an alle!
    *close*
     

Ähnliche Themen

  1. [JavaDoc] linkoffline hat mysteriöses Verhalten
    Von meinPseudonym im Forum Java Grundlagen
    Antworten: 0
    Letzter Beitrag: 17.03.10, 12:40
  2. Mysteriöses MC-Verschwinden
    Von harrry im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 08.09.07, 13:29
  3. Mysteriöses Problem mit Videos
    Von daddz im Forum Microsoft Windows
    Antworten: 4
    Letzter Beitrag: 08.10.04, 22:08
  4. Mysteriöses fgets-Problem!
    Von revelation im Forum PHP
    Antworten: 4
    Letzter Beitrag: 15.04.04, 23:11
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29