Utilisez Synaptics Touchpad Scroll dans VMware Guest

17

Je souhaite utiliser le «défilement à deux doigts» de Synaptics dans un invité VMware.

Il fonctionne comme prévu sur l'hôte, mais VMware ne semble pas le prendre en charge. Le curseur de la souris change pour indiquer que le défilement est actif mais l'invité VMware n'y répondra pas.

  • VMware Workstation 7.1
  • OS hôte et invité: Windows 7 (64 bits)
  • Pilote Synaptics 15.0.9.0
  • L'appareil est représenté par "Synaptics LuxPad V7.4"

Est-il possible de faire fonctionner cela d'une manière ou d'une autre? (par exemple, modifier .vmx, changer les options de Synaptics ou avec un pilote qui émule le "défilement de la molette de la souris")

Mise à jour: J'ai déjà essayé plusieurs options dans le pilote Synaptics mais le seul changement était qu'il affichait un curseur de souris différent lors de la tentative de défilement.

laktak
la source
vérifier ma solution @ superuser.com/a/439474/106787
mreq
@hcris Envisagez de vérifier que ma réponse est correcte, s'il vous plaît :-)
Andrew Zabavnikov

Réponses:

22

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 .dlldans 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.dllet c'est *.exeaprès que le défilement a été activé. Si vous démarrez vmware_scroll_stop.exedepuis 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.

Andrew Zabavnikov
la source
2
Je viens de le mettre à jour!
Andrew Zabavnikov
3
cela mérite un vote positif!
xiamx
@xiamx Cela fonctionne-t-il pour vous? Je viens de recevoir un commentaire disant que cela ne fonctionne pas pour Player (peut-être que peu de modifications sont nécessaires). Il s'agit peut-être aussi d'appliquer ce correctif blog.alexou.net/2010/07/…
Andrew Zabavnikov
ouais ça marche parfaitement. Et cela fonctionne également pour d'autres périphériques d'entrée avec des pilotes utilisateur (logitech T650). Bien que je l'ai recompilé moi-même car je n'ai que le jeu d'outils v110. Pouvez-vous le mettre sur github? pour que ceux qui en ont besoin pour travailler avec Player puissent le modifier eux
xiamx
@xiamx ok, je le ferai dans quelques jours. Je n'ai pas pris la peine de traiter avec GitHub tout en travaillant sur une version qui prend en charge le défilement horizontal.
Andrew Zabavnikov
7

De nombreuses personnes se sont plaintes de ce problème et des demandes de fonctionnalités ont été soumises à Synaptics.

J'ai trouvé un rapport de réussite ici . Bien que ce soit pour Ubuntu, cela semble montrer qu'il existe une solution à ce problème.

Je vous suggère d'essayer les solutions décrites dans l'article ci-dessous, pour l'hôte et l'invité:
Résolution des problèmes de défilement de Firefox avec le pavé tactile Dell Synaptics

L'article mentionne deux correctifs:

  1. Supprimer l'option de défilement circulaire des propriétés de la souris
  2. Remplacez les pilotes du pavé tactile Dell par les pilotes Synaptics

Comme le dit l'article pour le second:

vous pouvez supprimer les pilotes du pavé tactile Dell et installer ceux Synaptics génériques, qui fonctionnent mieux pour beaucoup de gens - mais il leur manque certaines des fonctionnalités supplémentaires de Dell. Tant que votre pavé tactile fait ce que vous attendez, cela en vaut la peine.

Je suggère de créer un point de restauration système avant de changer les pilotes, au cas où.
Vous pouvez également toujours restaurer le pilote à partir du Gestionnaire de périphériques.

EDIT1

Certaines personnes signalent un succès lors de l'utilisation du pilote ALPS plutôt que de Synaptics.
Comme le dit Alps Touchpad Driver pour Windows 7 :

certains ordinateurs portables Dell n'ont pas de pavés tactiles fabriqués par Synaptics. Ils ont des pavés tactiles Alps. Si vous n'êtes pas sûr du type de pavé tactile dont vous disposez, veuillez consulter cet article sur l'identification du modèle approprié.

Lorsque j'ai aidé mon utilisateur à mettre à niveau son Inspiron 1420 vers Windows 7, j'ai utilisé le pilote pour Vista. Voici le lien vers le téléchargement. Ce pilote est pour 32 bits uniquement. Si cela ne fonctionne pas pour vous, vous pouvez également essayer le pilote pour Windows 7. Voici le lien . La deuxième liaison fournit des pilotes 32 bits et 64 bits.

EDIT2

Le fil suivant contient des informations intéressantes:
Problèmes avec le pavé tactile Synaptics ne pouvant pas défiler dans le système d'exploitation invité (Windows XP)

La dernière entrée du fil dit:

J'ai plusieurs collègues qui souhaitent utiliser Vmware sur des ordinateurs portables à des fins d'assistance. Certains essaient la Virtualbox de Sun et d'autres essaient Vmware. Le défilement fonctionne bien avec Virtualbox, mais l'engagement de SUN envers ce type de produit a brûlé les gens dans le passé.

Il semble que VMware ne se soucie pas beaucoup de Synaptics et que votre appareil n'est pas bien pris en charge par celui-ci. Bien que cela ne réponde pas directement à votre question, je pense que vous devrez passer à Virtualbox pour que le pavé tactile fonctionne.

Pour adoucir la pilule, voir Comment convertir un VMware en Virtualbox .

harrymc
la source
J'ai déjà le pilote Synaptics (voir ci-dessus). L'article concerne le défilement à un doigt (ce qui ne fonctionne pas non plus et la désactivation de Circular / Chiral n'a aucun effet), mais je serais heureux si je pouvais utiliser l'une ou l'autre option. Les paramètres Ubuntu semblent prometteurs, mais comment puis-je les appliquer dans Windows?
laktak
@chris: La plupart des articles que j'ai trouvés disent que VMware ne prend tout simplement pas en charge le pavé tactile Synaptics en tant qu'appareil, de sorte que ce que vous demandez est impossible. J'ai de toute façon édité ci-dessus une autre approche qui a fonctionné pour certaines personnes. Si cela ne fonctionne pas, vous pouvez également essayer d'utiliser un autre produit VM que VMware.
harrymc
@harrymc Je suis sûr que c'est un appareil Synaptics mais je ne le trouve pas sur pcidatabase.com. Les ID HW sont "ACPI \ DLL02EF" et "* DLL02EF".
laktak
OK, je demande peut-être l'impossible mais cela m'ennuie depuis longtemps. J'espérais qu'il y avait un moyen de faire fonctionner cela de la même manière qu'une roue de souris fonctionne (peut-être avec une émulation). En tout cas s'il n'y a pas de solution je vous attribuerai les points pour toute votre aide!
laktak
@chris: N'ayant rien à perdre, avez-vous essayé le pilote ALPS? Voir aussi ce pilote drivercure.com/driver/… et support.dell.com/support/downloads/…
harrymc
3

Cette solution semble bonne.

http://code.google.com/p/two-finger-scroll/

Je l'ai testé, et il donne beaucoup d'options pour configurer le toucher et le défilement à 1,2,3 chiffres.

Deba Saha
la source
Merci. J'espère que cela aide quelqu'un d'autre car je suis passé à un MacBook avec VMware Fusion où tout fonctionne hors de la boîte (et il a aussi un meilleur trackpad).
laktak
Jusqu'à présent, c'est la solution la plus rapide pour moi. Je l'ai installé et ça marche!
Eran Medan
1

Le défilement à deux doigts de Synaptics fonctionne avec le mode Unity de VMware (Player> Unity). J'utilise cela pour exécuter VS2013 dans VMware Player avec Windows 7 x64 en tant qu'OS hôte et invité.

user2361830
la source