So erfassen Sie Text mit Mauszeiger und Tastenkombinationen?

8

Ich möchte Text aus geöffneten Fenstern mit Mauszeiger und Tastaturkürzel mit C # oder Java erfassen  (wie babylon ), also Was muss ich wissen und umsetzen?

Welche Bibliotheken brauche ich? oder kann ich winapi verwenden?

    
Radi 25.10.2010, 13:43
quelle

1 Antwort

13

Verwenden Sie eine Skriptsprache, um einen Entwurf dessen zu erstellen, was Sie tun möchten.

Sie können Programme wie AutoHotKey oder AutoIt verwenden. Beachten Sie, dass Ihr Auto-Recorder, der Ihnen einen grundlegenden Entwurf gibt. Sie können diese Skripts zu ausführbaren Dateien kompilieren und sie mit Shell Execute () aus C # oder Java aufrufen c # ; java (exec)) oder als ausführen neuer Prozess ( c # ; Java (Prozessgenerator)). Letzteres ist bevorzugt.

Hier sehen Sie ein Beispiel für das Zuordnen einer Taste "Pause" zu einer Funktion, die einen Text vom Bildschirm auswählt, ihn kopiert und an einer anderen Stelle mit AutoHotKey einfügt. Shift + left click wird im Hintergrund verwendet, um den gesamten Text auszuwählen. Beachten Sie, dass dies das einfachste Beispiel ist und das Fenster nicht durch seinen Zeiger aufgerufen wird und feste Orte verwendet (und nur für eine Auflösung funktioniert).

%Vor%

Verwenden von Java.

Java enthält Robot Klasse, um dies zu tun .

  

Diese Klasse wird verwendet, um native zu generieren   Systemeingangsereignisse für die Zwecke   von Testautomatisierung, selbstlaufend   Demos und andere Anwendungen wo   Steuerung von Maus und Tastatur ist   erforderlich. Der Hauptzweck von Robot   ist es, automatisierte Tests zu erleichtern   Java-Plattform-Implementierungen.

     

Verwenden der Klasse zum Generieren von Eingaben   Ereignisse unterscheiden sich von Buchungsereignissen nach   die AWT-Ereigniswarteschlange oder die AWT-Komponenten   dass die Ereignisse in erzeugt werden   die native Eingabewarteschlange der Plattform. Zum   Beispiel, Robot.mouseMove wird tatsächlich   Bewegen Sie den Mauszeiger statt nur   Mausbewegungsereignisse generieren.

     

Beachten Sie, dass einige Plattformen erfordern   spezielle Privilegien oder Erweiterungen zu   Zugriff auf Low-Level-Eingabesteuerung. Wenn die   aktuelle Plattformkonfiguration tut es   Eingangskontrolle nicht erlauben, ein   AWTException wird ausgelöst, wenn   versuchen, Roboterobjekte zu konstruieren. Zum   Beispiel, X-Window-Systeme werden werfen   die Ausnahme wenn der XTEST 2.2   Standard-Erweiterung wird nicht unterstützt   (oder nicht aktiviert) vom X-Server.

     

Anwendungen, die Roboter für verwenden   andere Zwecke als Selbsttests   sollte diese Fehlerbedingungen behandeln   anmutig.

Sie können selbst bestimmen, wie Sie Robot benutzen, aber generell:

%Vor%

Weitere Roboterbeispiele bei java2s: ( Link )

  1. Robot: createScreenCapture (Rechteck screenRect)
  2. Roboter: getPixelColor (int x, int y)
  3. Roboter: keyPress (int keycode)
  4. Robot: keyRelease (int Schlüsselcode)
  5. Roboter: mouseMove (int x, int y)
  6. Roboter: mousePress (int-Tasten)
  7. Roboter: Mausfreigabe (int-Tasten)
  8. Roboter: mouseWheel (int wheelAmt)

Verwenden von C #.

Es gibt Myriaden von Lösungen. Nur google " Testautomatisierung c # " oder " Spion c # ".

MSDN: SendKeys
MSDN: Vorgehensweise: Simulieren von Maus- und Tastaturereignissen im Code

Sie können Windows-API verwenden, aber es erfordert einige mühsame Arbeit. Du willst das nicht tun, du tust es wirklich nicht, aber wenn du es tust, dann schau dir das auf jeden Fall an:

Ich empfehle Ihnen, den Eingabesimulator zu verwenden. Beispiel:

%Vor%     
Margus 30.10.2010, 19:11
quelle

Tags und Links