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 .dll
proceso 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.dll
y *.exe
después de que se haya activado el desplazamiento. Si comienza vmware_scroll_stop.exe
desde 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