Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Mausklicks simulieren von VNC Programmen (https://www.delphipraxis.net/162633-mausklicks-simulieren-von-vnc-programmen.html)

zeras 31. Aug 2011 18:21

Mausklicks simulieren von VNC Programmen
 
Hallo,

würde es gehen, wenn man ein VNC Programm nutzt, um dann die Mausklicks, die man auf der VNC Server Seite machen würde, mittels Programm zu simulieren?
So könnte man Eingaben automatisieren, die man sonst mit der Maus machen müßte. Man müßte nur die Koordinaten der Maus setzen und dann einen Mausklick simulieren.
Wäre das möglich oder müßte man das mit einer Delphi VNC Komponente machen, wenn es diese geben würde?

Matthias

zeras 3. Sep 2011 08:48

AW: Mausklicks simulieren von VNC Programmen
 
Hat denn keiner eine Idee?

Vielleicht ein wenig mehr Hintergrundinfo.

Wir haben eine Steuerung, die man mittels VNC fernbedienen kann. Mit einem Mausklick auf die gespiegelte Oberfläche auf dem PC könnte man dann bestimmte Aktivitäten auslösen. Für ein Testprogramm wäre es gut, wenn man verschiedene Mausklicks zusammensetzen kann, um bestimmte Aktionen auszulösen. So müßte man sich nur einen "Mausklick" Editor schreiben, der sich die Positionen merkt und dann wieder abspielen kann.



Gruß

Matthias

Bernhard Geyer 3. Sep 2011 09:02

AW: Mausklicks simulieren von VNC Programmen
 
Wäre es nicht sinnvoller ein Automatisierungschnittstelle (nicht unbedingt auf (D)COM/COM+-Basis zu definieren auf das die GUI auch zugreift. Dies könnte dann wenn man eine passendes Netzwerkprotokoll sich auswählt auch von der ferne verwendbar sein.

doctor-x 3. Sep 2011 09:14

AW: Mausklicks simulieren von VNC Programmen
 
Hi,
hatte mal ähnliches vor.

Bin damals auf GhostMouse gestoßen (gibts z.b. bei Chip), damit kann man Mausbewegungen und clicks aufzeichnen und als Macro speichern.
Ist zwar dann nichts eigenes, aber warum viel Arbeit machen wenn es einfacher geht^^
Man kann dann über die Komandozeile GhostMouse mit einer angegebenen Macro-Datei starten.
Alternativ kann man dies natürlich über den Taskplaner oder mit einem eigenen Programm das den aufruf nutzt automatisieren.

Ich hoffe ich konnte dir weiter helfen :)

MfG

zeras 3. Sep 2011 09:15

AW: Mausklicks simulieren von VNC Programmen
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1121451)
Wäre es nicht sinnvoller ein Automatisierungschnittstelle (nicht unbedingt auf (D)COM/COM+-Basis zu definieren auf das die GUI auch zugreift. Dies könnte dann wenn man eine passendes Netzwerkprotokoll sich auswählt auch von der ferne verwendbar sein.

Da es sich um viele Seiten handeln würde, wäre der Aufwand wahrscheinlich zu erheblich.
Es soll möglichst ohne Eingriffe in das Steuerungsprogram gehen. Es gibt zwar schon eine API, aber mit der kann nicht alles bedient werden und so wollte ich diesen Schritt vielleicht gehen, denn alles was man an der Steuerung bedienen kann (mittels Touch), sollte man über VNC auch machen können.

zeras 3. Sep 2011 09:18

AW: Mausklicks simulieren von VNC Programmen
 
Zitat:

Zitat von doctor-x (Beitrag 1121452)
Hi,
hatte mal ähnliches vor.

Bin damals auf GhostMouse gestoßen (gibts z.b. bei Chip), damit kann man Mausbewegungen und clicks aufzeichnen und als Macro speichern.

MfG

Das könnte ers mal ein Anfang sein. Werde mal testen.
Wenn alles fuktioniert, sollte das aber interaktiv sein, d.h. möglicherweise müssen über eine Touchtastatur noch Eingaben gemacht werden. Oder man müßte die Makros manipulieren können.

doctor-x 3. Sep 2011 09:34

AW: Mausklicks simulieren von VNC Programmen
 
Ich habe damals auch einfache (immer gleiche eingaben) machen müssen.
Habe dann einfach per Macro mit der Maus aus einer Texdatei die passagen kopiert.
Ist zwar keine schöne aber dafür einfache Lösung.
Alternativ sollte die nutzung von simulierten Tastatureingaben z.b. über
Code:
procedure SendKeys(const aString: String);
var
  Count: Integer;
  ScanCode: Smallint;
  WithAlt, WithCtrl, WithShift: Boolean;
begin
  for Count := 1 to Length(aString) do begin
    ScanCode := VkKeyScan(aString[Count]);
    //Ermitteln ob Shift gedrückt wurde
    WithShift := ScanCode and (1 shl 8) <> 0;
    //Ermitteln ob Strg gedrückt wurde
    WithCtrl := ScanCode and (1 shl 9) <> 0;
    //Ermitteln ob Alt gedrückt wurde
    WithAlt  := ScanCode and (1 shl 10) <> 0;

    if WithShift then keybd_event(VK_SHIFT, 0, 0, 0);
    if WithCtrl then keybd_event(VK_CONTROL, 0, 0, 0);
    if WithAlt then keybd_event(VK_MENU, 0, 0, 0);

    keybd_event(ScanCode, 0, 0, 0);
    keybd_event(ScanCode, 0, KEYEVENTF_KEYUP, 0);

    if WithAlt then keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
    if WithCtrl then keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
    if WithShift then keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
  end;
end;
keine Probleme darstellen.
Damit könnte man dann halt dynamische eingaben realisieren.

FredlFesl 3. Sep 2011 10:46

AW: Mausklicks simulieren von VNC Programmen
 
Googel mal nach "Windows Makro Recorder"

neo4a 3. Sep 2011 11:38

AW: Mausklicks simulieren von VNC Programmen
 
Zitat:

Zitat von FredlFesl (Beitrag 1121464)
Googel mal nach "Windows Makro Recorder"

Das oder auch nach "Sikuli".

zeras 3. Sep 2011 14:10

AW: Mausklicks simulieren von VNC Programmen
 
Ich habe jetzt einige Beispiele bei den Schweizern gefunden. Den MouseEvent habe ich gleich ausprobiert. Es geeeeeeehhhhht! Super.
http://www.swissdelphicenter.ch/de/showcode.php?id=360

Danke trotzdem für eure Hilfe. Brauche nur noch Zeit, das umzusetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz