Use Synaptics Touchpad Scroll en VMware Guest

17

Me gustaría usar Synaptics "Two-Finger Scrolling" dentro de un huésped VMware.

Funciona como se esperaba en el host, pero VMware no parece admitirlo. El cursor del mouse cambia para indicar que el desplazamiento está activo pero el invitado de VMware no responderá.

  • VMware Workstation 7.1
  • Sistema operativo host e invitado: Windows 7 (64 bits)
  • Synaptics Driver 15.0.9.0
  • El dispositivo se muestra como "Synaptics LuxPad V7.4"

¿Es posible hacer que esto funcione de alguna manera? (por ejemplo, modificar .vmx, cambiar las opciones de Synaptics o con un controlador que emule el "desplazamiento de la rueda del mouse")

Actualización: ya he probado varias opciones en el controlador Synaptics, pero el único cambio fue que mostraba un cursor de mouse diferente al intentar desplazarse.

laktak
fuente
comprobar mi solución @ superuser.com/a/439474/106787
mreq
@hcris Considere marcar mi respuesta como correcta, por favor :-)
Andrew Zabavnikov

Respuestas:

22

Bien, hice una investigación y logré tener éxito.

Después de pensar un poco, llegué a la conclusión de que no sé cómo funciona :-) ¡Simplemente lo hace! :-)

Anteriormente en « Útil :) Diversión »:

En resumen, el panel táctil de Synaptics envía ( SendMessage()o PostMessage()no se molestó en señalarlo) los mensajes de la ventana derecha ( WM_MOUSEWHEEL) a la ventana de VMware, pero lo que realmente debería hacer es usar SendInput(), emulando directamente el mouse físico. Parece que había una opción para controlar el comportamiento de los controladores (o, más precisamente, el programa en modo de usuario SynTPEnh.exe) con el archivo tp4table.dat. Desafortunadamente, esta opción de alguna manera no está habilitada en mis controladores (aunque existe una cadena en un ejecutable).

Entonces, hice lo siguiente: simplemente inyecté un .dllproceso de ventana de VMware (espero que sea seguro y también espero que no sea el mismo proceso que ejecuta una VM), procedimiento de ventana subclasificado (es decir, mensajes de ventana interceptados) y traduje los "incorrectos" usando SendInput().

Además , se observó que vale la pena aplicar la siguiente solución incluso con mi solución: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ .

Entonces, el código fuente y los ejecutables (solo son compatibles con Workstation, lea más para Player, en "ACTUALIZACIÓN") - pregunte en comentarios si no encontró algo - están en https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .

OBSERVACIÓN PRINCIPAL: ejecute el ejecutable correspondiente cuando se está ejecutando una VM.

OTRA OBSERVACIÓN PRINCIPAL: No se mueva hook.dlly *.exedespués de que se haya activado el desplazamiento. Si comienza vmware_scroll_stop.exedesde otra ubicación, no se descargará .dll(es decir, deshabilitará el desplazamiento).

ACTUALIZACIÓN : Hay una versión mejorada (fue mejorada por Anthony Prieur, ¡muchas gracias a él!), Que también es compatible con VMware Player. También está disponible un programa derivado de ese llamado VMWareTrackPadScroller con una interfaz de usuario simple.

NOTA: Desafortunadamente, no habrá una versión que admita el desplazamiento horizontal. La cuestión es que hay una idea de solución, pero la rechacé por estar demasiado sucia. Para llevar a cabo la tarea, es necesario enganchar (en SynTPEnh.exe) la API GetClassNameW () para modificar los nombres de las clases de ventana de VMware (son "VMware.GuestWindow" y "MKSEmbedded") o wcsicmp () para devolver siempre "no igual" cuando uno de los argumentos es una de las cadenas mencionadas. Creo que es una solución sucia desde el punto de vista del rendimiento, al menos (eso es realmente un argumento débil ya que la penalización del rendimiento sería mínima). De todos modos, la solución actual es aceptable, creo, ya que no siempre tiene un dispositivo con capacidad de desplazamiento horizontal y es mejor estar acostumbrado a vivir sin ese lujo que sufrir en la pobreza. Por cierto,Shift+Vertical Scroll hacer desplazamiento horizontal

Andrew Zabavnikov
fuente
2
¡Lo acabo de actualizar!
Andrew Zabavnikov
3
¡Esto merece un voto positivo!
xiamx
@xiamx ¿Funciona para ti? Acabo de recibir un comentario de que no funciona para Player (tal vez se requiera una pequeña modificación). Tal vez se trate de aplicar también esta solución blog.alexou.net/2010/07/…
Andrew Zabavnikov
sí, está funcionando perfectamente. Y también funciona para otros dispositivos de entrada con controladores de usuario (logitech T650). Aunque lo volví a compilar, ya que solo tengo el conjunto de herramientas v110. ¿Puedes ponerlo en github? para que quienes lo necesiten para trabajar con Player puedan modificarlo ellos mismos
xiamx
@xiamx ok, lo haré en unos días. Simplemente no se molestó en tratar con GitHub mientras trabajaba en una versión que admitiría el desplazamiento horizontal.
Andrew Zabavnikov
7

Muchas personas se han quejado con respecto a este problema y se han enviado solicitudes de funciones a Synaptics.

He encontrado un informe de éxito aquí . Aunque es para Ubuntu, parece mostrar que hay una solución a este problema.

Le sugiero que pruebe las soluciones descritas en el siguiente artículo, tanto para el host como para el invitado:
Solución de problemas de desplazamiento de Firefox con el panel táctil de Dell Synaptics

El artículo menciona dos soluciones:

  1. Eliminar la opción de desplazamiento circular de las propiedades del mouse
  2. Reemplace los controladores del panel táctil de Dell por los controladores de Synaptics

Como dice el artículo para el segundo:

puede eliminar los controladores del panel táctil de Dell e instalar los genéricos Synaptics, que funcionan mejor para muchas personas, pero les faltan algunas de las características adicionales de Dell. Mientras su touchpad haga lo que espera, podría valer la pena.

Sugiero crear un punto de restauración del sistema antes de cambiar los controladores, por si acaso.
También siempre puede revertir el controlador desde el Administrador de dispositivos.

EDITAR1

Algunas personas informan tener éxito al usar el controlador ALPS en lugar de Synaptics.
Como dice Alps Touchpad Driver para Windows 7 :

algunas computadoras portátiles Dell no tienen paneles táctiles hechos por Synaptics. Tienen paneles táctiles de los Alpes. Si no está seguro de qué tipo de panel táctil tiene, consulte esta publicación sobre cómo identificar el modelo correcto.

Cuando ayudé a mi usuario a actualizar su Inspiron 1420 a Windows 7, utilicé el controlador para Vista. Aquí está el enlace a la descarga. Este controlador es solo para 32 bits. Si esto no funciona para usted, también puede probar el controlador para Windows 7. Aquí está el enlace . El segundo enlace proporciona controladores de 32 bits y 64 bits.

EDIT2

El siguiente hilo tiene información interesante:
Problemas con el panel táctil de Synaptics que no puede desplazarse en el SO invitado (Windows XP)

La última entrada en el hilo dice:

Tengo varios colegas a quienes les gustaría usar Vmware en computadoras portátiles con fines de soporte. Algunos están probando Sun's Virtualbox, y otros están probando Vmware. El desplazamiento funciona bien con Virtualbox, pero el compromiso de SUN con este tipo de producto ha quemado a la gente en el pasado.

Parece que VMware simplemente no se preocupa mucho por Synaptics, y su dispositivo no está bien soportado por él. Aunque esto no responde directamente a su pregunta, creo que deberá pasar a Virtualbox para que el panel táctil funcione.

Para endulzar la píldora, consulte Cómo convertir un VMware a Virtualbox .

harrymc
fuente
Ya tengo el controlador Synaptics (ver arriba). El artículo es para desplazarse con un solo dedo (lo que tampoco funciona y deshabilitar Circular / Chiral no tiene ningún efecto), pero estaría feliz si pudiera usar cualquiera de las opciones. La configuración de Ubuntu suena prometedora, pero ¿cómo puedo aplicarla en Windows?
laktak
@chris: La mayoría de las publicaciones que he encontrado dicen que VMware simplemente no es compatible con el panel táctil Synaptics como dispositivo, por lo que lo que pides es imposible. De todos modos, he editado un enfoque más que funcionó para algunas personas. Si no funciona, también puede intentar usar otro producto VM que no sea VMware.
harrymc
@harrymc Estoy bastante seguro de que es un dispositivo Synaptics, pero no puedo encontrarlo en pcidatabase.com. Los identificadores de HW son "ACPI \ DLL02EF" y "* DLL02EF".
laktak
De acuerdo, tal vez estoy pidiendo lo imposible, pero esto me ha estado molestando durante mucho tiempo. Esperaba que hubiera una manera de hacer que esto funcione de la misma manera que funciona una rueda de mouse (tal vez con emulación). En cualquier caso, si no hay solución, ¡te otorgaré los puntos por toda tu ayuda!
laktak
@chris: Al no tener nada que perder, ¿probaste el controlador ALPS? Consulte también este controlador drivercure.com/driver/… y support.dell.com/support/downloads/…
harrymc
3

Esta solución parece buena.

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

Lo probé y ofrece muchas opciones para configurar el toque y desplazamiento de 1,2,3 cifras.

Deba Saha
fuente
Gracias. Espero que esto ayude a alguien más, ya que me mudé a una MacBook con VMware Fusion, donde todo funciona de inmediato (y también tiene un mejor panel táctil).
laktak
Esta es la solución más rápida hasta ahora para mí. ¡Lo instalé y funciona!
Eran Medan
1

El desplazamiento de dos dedos de Synaptics funciona con el modo Unity de VMware (Player> Unity). Estoy usando esto para ejecutar VS2013 en VMware Player con Windows 7 x64 como sistema operativo host e invitado.

usuario2361830
fuente