D'accord, j'ai donc fait une recherche et j'ai réussi à réussir.
Après réflexion, je suis arrivé à la conclusion que je ne sais pas comment cela fonctionne :-) :-)
Précédemment dans « Utile :) Fun »:
En bref, le pavé tactile Synaptics envoie ( SendMessage()
ou PostMessage()
n'a pas pris la peine de le préciser) les bons messages de la fenêtre ( WM_MOUSEWHEEL
) à la fenêtre VMware, mais ce qu'il devrait réellement faire, c'est utiliser SendInput()
, en émulant directement la souris physique. Il semble qu'il y avait une option pour contrôler le comportement des pilotes (ou, plus précisément, le programme en mode utilisateur SynTPEnh.exe
) avec le fichier
tp4table.dat
. Malheureusement, cette option n'est en quelque sorte pas activée dans mes pilotes (bien qu'il y ait une telle chaîne dans un exécutable).
J'ai donc fait ce qui suit - j'ai simplement injecté un .dll
dans le processus de fenêtre de VMware (j'espère qu'il est sûr et j'espère également que ce n'est pas le même processus qui exécute une machine virtuelle), une procédure de fenêtre sous-classée (signifiant les messages de fenêtre interceptés) et traduit les «mauvais» en utilisant SendInput()
.
En outre , il avait été noté que le correctif suivant valait la peine d'être appliqué même avec ma solution: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ .
Ainsi, le code source et les exécutables (ils ne prennent en charge que Workstation, lisez la suite pour Player, dans "UPDATE") - demandez en commentaire si vous n'avez rien trouvé - sont sur https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .
REMARQUE IMPORTANTE: exécutez l'exécutable correspondant lorsqu'une VM est en cours d'exécution.
UNE AUTRE REMARQUE MAJEURE: Ne bougez pas hook.dll
et c'est *.exe
après que le défilement a été activé. Si vous démarrez vmware_scroll_stop.exe
depuis un autre emplacement, il ne se déchargera pas .dll
(c'est-à-dire désactiver le défilement).
MISE À JOUR : Il existe une version améliorée
(elle a été améliorée par Anthony Prieur, un grand merci à lui!), Qui prend également en charge VMware Player. Un programme dérivé de celui appelé
VMWareTrackPadScroller
avec une interface utilisateur simple est également disponible.
REMARQUE: malheureusement, aucune version ne prend en charge le défilement horizontal. Le truc, c'est qu'il y a une idée de solution, mais je l'ai rejetée comme trop sale. Pour accomplir la tâche, il faut accrocher (dans SynTPEnh.exe) l'API GetClassNameW () pour modifier les noms des classes de fenêtres VMware (ce sont "VMware.GuestWindow" et "MKSEmbedded") ou wcsicmp () pour toujours retourner "pas égal" lorsque l'un des arguments est l'une des chaînes mentionnées. Je pense que c'est une mauvaise solution du point de vue des performances, au moins (c'est en fait un argument faible car la pénalité de performance serait minime). Quoi qu'il en soit, la solution actuelle est acceptable, je pense, car vous n'avez pas toujours un appareil avec une fonction de défilement horizontal et il vaut mieux être habitué à vivre sans ce luxe que de souffrir dans la pauvreté. BTW,Shift+Vertical Scroll
pour faire défiler horizontalement.