Seite 1 von 1

AutoIt / Maus-Problem

Verfasst: 09.06.2011, 19:29
von dracode
Liebe VWware-Community,

ich hab ein Problem, mit dem ich einfach nicht fertig werde!
Seit langer Zeit verwende ich der VMWare-Player auf meinem Host-System Windows Vista mit dem Guest-System WIndows XP Prof. SP1.
Vom ersten Tag an, benutze ich auch AutoIt mit seinen Funktionen wie MouseMove oder MouseClick.

Jetzt funktioniert das alles nicht mehr.
Nein, das ist nicht richtig, es funktioniert absolut schräg.
Alle Funktionen von AutoIt klappen prima, aber bei der Maus als solches, gibt es nur Probleme. Ich hab schon wirklich lange danach gesucht, aber keine Lösung gefunden.
Die neusten VMWare-Tools sind drauf und auch ohne lief es nicht.
Auch mit Tools, aber dem Standard PS/2-Maustreiber keinerlei Änderung.

Ich verwende im Moment ein Testskript, das nichts weiter tut, als die Maus langsam über den Bildschirm zu bewegen, ganz langsam.
Parallel lasse ich mir anzeigen, welche Koordinaten der Cursor haben sollte.

An diesen Koordinaten ist er nicht sichtbar!
Egal ob die VMWare aktiviert ist, oder ich per STRG+ALT in das Host-System gewechselt bin.
Interagiere ich nun aber auf irgendeine Weise mit der Maus wieder, also mache ich z.B. einen Rechtsklick in die VM, so springt der Cursor zur richtigen Position, solange ich die Maus nicht selbst bewege, und führt die gewünschte Bewegung fort.
Bewege ich sie nun wieder von Hand, ist die genau da, wo ich sie zuletzt manuell hinbewegt hatte.

Was läuft da schief, woran liegt das?
Treiber? Tools? Alles andere hat sich nicht geändert...
Es ist das gleiche Windows XP Prof. und auch bei einem Bekannten, der noch immer die Version nutzt, mit der es einst wunderbar lief, geht im Bereich Maus gar nichts mehr.

Ich hoffe jemand hat da Erfahrung mit, oder ist ein Guru und kennt eine Lösung x.x

Vielen Dank im Voraus,
dracode

Verfasst: 10.06.2011, 21:39
von Dayworker
Was heißt ganz langsam bei dir?
Wenn es zu langsam ist, dürfte die VM von Leerlauf ausgehen. Diese wird daher weder Bildschirm noch Mauskoordinaten aktualisieren, um keine Ressourcen unnütz zu verschwenden und den Endeffekt siehst du dann, wenn du die Maus mal richtig bewegst. Sie steht dann halt wieder am alten Startpunkt.

Verfasst: 10.06.2011, 23:24
von dracode
Hey Dayworker,

ganz langsam heißt in der MouseMove-Funktion von AutoIt ein Wert von 5.
Da liegt ja aber gar nicht mein Problem.
Langsam ist ja hier ovn mir explizit gewollt, nur soll es auch ausgeführt werden, damit meine ich sowohl die Bewegung und zwar nicht erst wenn ich im Guest-System mit der realen Maus hantiere und natürlich auch die Klicks, was sie aber nicht werden!

Das ist aber noch zweitrangig, es geht mir erst einmal darum, dass die Mausbewegung ordentlich läuft und zwar am besten, aber nicht zwangsläufig, mit einer sichtbaren Cursorbewegung...

Verfasst: 10.06.2011, 23:42
von Dayworker
Ich glaube hier liegt ein Verständnisproblem vor. Weshalb sollte sich denn die Maus in einem nichtaktiven VM bewegen?
Solange du den Fokus nicht in die VM verschiebst oder dich extern draufschaltest, döst die VM vor sich hin.

Was heißt eigentlich, jetzt funktioniert es nicht mehr? Player- und Tools-Version erneuert oder M$-Updates eingespielt sind nur ein paar Dinge, an die man nicht immer gleich denkt.

Verfasst: 11.06.2011, 11:23
von dracode
Gut da hast du natürlich Recht,

ich kann nicht mit Sicherheit sagen, dass ich heute exakt dieselben WIndows-Updates eingespielt habe, wie damals.
Jedoch, wie gesagt, tritt bei meinem Bekannten dasselbe Problem auf, wenn liegt es also an einem neuen Update und schonmal nicht an einem bei mir nicht vorhandenen.

Die Maus soll sich bewegen, weil mein Script sie dazu anhält.
Das hatte sie ja auch die ganze Zeit über getan, selbst wenn die VM minimiert war, schließlich hält das Guest-System ja nicht seine Ausführung an, wenn es nicht aktiv ist, oder irre ich mich?

Die Player-Version habe ich geändert, ja, aber mein Bekannter wie erwähnt nicht, d.h. daran wird es kaum liegen, wenn eher an einem neuen Windows-Update.
Von denen habe ich aber KEINES eingespielt bisher, "blankes" SP1, selbe CD wie damals.

Bleiben noch die Tools...
Es wäre halt klasse, wenn jemand ebenfalls AutoIt verwendet und vielleicht die Player- bzw. wohl eher die Tools-Version angeben könnte, mit der es funktioniert.

Verfasst: 11.06.2011, 12:23
von Dayworker
Richtig, eine VM läuft unabhängig vom Fokus immer weiter.
Keine Ahnung ob ich damit richtig liege, aber wie realisiert Autoit die Mausbewegung? Löst es dazu einen Interrupt aus oder verschiebt es einfach den Cursor in der Grafikausgabe?
Bis zu einem gewissen Grad verhindert auch Windows selbst eine Mausbewegung, wenn die Bewegung über die Zeit minimal genug ist.

Für einen Vergleich mit deinem Bekannten unterscheiden sich eure beiden Installationen aber zu sehr. Habt ihr beide VMs mal über kreuz probiert?
Welche Player- bzw Tools-Version hast du denn eigentlich am laufen?
Was sagt die Autoit-Version?

Verfasst: 11.06.2011, 12:59
von continuum
poste mal dein script - dann probier ich es mal aus

Verfasst: 11.06.2011, 15:16
von dracode
Also ich habe noch ein wenig herum experimentiert.
Ich war wohl zu stark auf dies spezielle Beispiel bezogen.

Mein Skript funktioniert einwandfrei!
Es verschiebt den Cursor und kann Klicks an der entsprechenden Stelle simulieren.

Das geht scheinbar allerdings nur, solange der Cursor ein Standardcursor ist.
Für meinen Zweck will ich die Mausklicks jedoch in einem Spiel simulieren um mich dort bequem einzuloggen, was auf meinem Host-System auch einwandfrei funktioniert.
Dieses Spiel (Metin2, ein freies Online-Rollenspiel) hat jedoch seinen eigenen Cursor, der zur Geltung kommt, wenn die Maus die Fenstergrenzen überschreitet.
Ab diesem Punkt versagt - zumindest in der VM - das Skript!

Von daher ist dein Ansatz vermutlich sehr gut, denn wahrscheinlich kollidiert diese Funktion im Zusammenhang mit dem Spielcursor und der VM.
Denn versucht AutoIt einmal die Maus zu bewegen, kann ich solange ich den Spielcursor habe, das Fenster nicht per Schließen-Button schließen.
Nur wenn ich zum Desktop zurückkehre und von außen mit dem Standardcursor darauf klicke, lässt es sich beenden.
Ich befürchte für dies spezielle Problem gibt es kaum eine Lösung =/

Ich suche am besten mal nach Möglichkeiten diese Cursorüberschreibung zu unterbinden, in der Hoffnung es gibt soetwas.
Ansonsten muss ich es mal mit Vista als Guest-System versuchen, vielleicht hat XP damit einfach Probleme, schließlich spielt das Spiel auch ständig Updates ein.