Okay, also habe ich recherchiert und es geschafft, Erfolg zu haben.
Nach einigem Überlegen bin ich zu dem Schluss gekommen, dass ich nicht weiß, wie es funktioniert :-) Es funktioniert einfach! :-)
Bisher bei « Nützlich :) Spaß »:
Kurz gesagt, das Synaptics-Touchpad sendet ( SendMessage()
oder PostMessage()
hat sich nicht darum gekümmert, dies genau zu bestimmen) Meldungen im rechten Fenster ( WM_MOUSEWHEEL
) an VMware-Fenster. Eigentlich sollte es jedoch SendInput()
die physische Maus direkt emulieren. Es scheint, dass es eine Option gab, um das Verhalten von Treibern (oder genauer gesagt von Programmen im Benutzermodus SynTPEnh.exe
) mit Dateien
zu steuern tp4table.dat
. Leider ist diese Option in meinen Treibern nicht aktiviert (obwohl eine ausführbare Datei eine solche Zeichenfolge enthält).
Also habe ich Folgendes getan - einfach ein .dll
in den Fensterprozess von VMware injiziert (ich hoffe, es ist sicher und ich hoffe, es ist nicht derselbe Prozess, der eine VM ausführt), eine untergeordnete Fensterprozedur (was bedeutet, dass Fenstermeldungen abgefangen wurden) und die "falschen" mit übersetzt SendInput()
.
Außerdem wurde festgestellt, dass die folgende Korrektur auch mit meiner Lösung sinnvoll ist : http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ .
Also, der Quellcode und die ausführbaren Dateien (sie unterstützen nur Workstation, lesen Sie weiter für Player, in "UPDATE") - fragen Sie im Kommentar, ob Sie etwas nicht gefunden haben - sind auf https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .
WICHTIGSTER HINWEIS: Führen Sie die entsprechende ausführbare Datei aus, wenn eine VM ausgeführt wird.
Ein weiterer wichtiger Hinweis: Bewegen Sie sich nicht hook.dll
und ist *.exe
, nachdem das Scrollen aktiviert wurde . Wenn Sie vmware_scroll_stop.exe
von einem anderen Ort aus starten , wird es nicht entladen .dll
(dh das Scrollen deaktivieren).
UPDATE : Es gibt eine verbesserte Version
(sie wurde von Anthony Prieur erweitert, ein großes Dankeschön an ihn!), Die auch VMware Player unterstützt. Ein von VMWareTrackPadScroller abgeleitetes Programm
mit einer einfachen Benutzeroberfläche ist ebenfalls verfügbar.
HINWEIS: Leider wird es keine Version geben, die horizontales Scrollen unterstützt. Die Sache ist, es gibt eine Lösungsidee, aber ich habe sie als zu schmutzig abgelehnt. Um diese Aufgabe zu erfüllen, müssen Sie die GetClassNameW () - API (in SynTPEnh.exe) einbinden, um die Namen der VMware-Fensterklassen ("VMware.GuestWindow" und "MKSEmbedded") oder "wcsicmp ()" zu ändern und immer "ungleich" zurückzugeben. wenn eines der Argumente eine der genannten Zeichenfolgen ist. Ich denke, es ist zumindest aus Performance-Sicht eine schmutzige Lösung (das ist eigentlich ein schwaches Argument, da die Performance-Einbußen minimal wären). Auf jeden Fall ist die derzeitige Lösung akzeptabel, da Sie nicht immer über ein Gerät mit horizontalem Bildlauf verfügen und es besser ist, sich daran zu gewöhnen, ohne diesen Luxus zu leben, als in Armut zu leiden. Übrigens,Shift+Vertical Scroll
horizontal scrollen.