Use o Synaptics Touchpad Scroll no VMware Guest

17

Gostaria de usar o Synaptics "Rolagem com dois dedos" dentro de um convidado do VMware.

Funciona como esperado no host, mas o VMware não parece suportá-lo. O cursor do mouse muda para indicar que a rolagem está ativa, mas o convidado do VMware não responderá a ela.

  • Estação de trabalho VMware 7.1
  • SO host e convidado: Windows 7 (64 bits)
  • Driver Synaptics 15.0.9.0
  • O dispositivo é mostrado como "Synaptics LuxPad V7.4"

É possível fazer isso funcionar de alguma forma? (por exemplo, modifique .vmx, altere as opções do Synaptics ou com um driver que simule "rolagem da roda do mouse")

Atualização: Eu já tentei várias opções no driver Synaptics, mas a única alteração foi que ele exibiu um cursor de mouse diferente ao tentar rolar.

Laktak
fonte
veja a minha solução @ superuser.com/a/439474/106787
mreq
@hcris considerar verificar a minha resposta como correta, por favor :-)
Andrew Zabavnikov

Respostas:

22

Ok, então eu fiz uma pesquisa e consegui ter sucesso.

Depois de pensar um pouco, cheguei à conclusão de que não sei como funciona :-) Apenas funciona! :-)

Anteriormente em « Útil :) Diversão »:

Em breve, Synaptics touchpad envia ( SendMessage()ou PostMessage(), não se preocupou em milimétrica que) certas mensagens de janela ( WM_MOUSEWHEEL) para a janela VMware, mas o que ele realmente deve fazer é usando SendInput(), emulando diretamente do mouse física. Parece que havia uma opção para controlar o comportamento dos drivers (ou, mais precisamente, do programa em modo de usuário SynTPEnh.exe) com o arquivo tp4table.dat. Infelizmente, esta opção de alguma forma não está ativada nos meus drivers (embora exista essa string em um executável).

Então, fiz o seguinte - apenas injetei um .dllno processo de janela do VMware (espero que seja seguro e também não seja o mesmo processo que executa uma VM), procedimento de subclasse de janela (significando mensagens de janela interceptadas) e traduzi os "errados" usando SendInput().

Além disso , foi observado que vale a pena aplicar a seguinte correção, mesmo com a minha solução: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ .

Portanto, o código fonte e os executáveis ​​(eles suportam apenas a Estação de Trabalho, leia mais para o Player, em "UPDATE") - pergunte no comentário se você não encontrou algo - estão em https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .

OBSERVAÇÃO PRINCIPAL: execute o executável correspondente quando uma VM estiver sendo executada.

OUTRAS OBSERVAÇÕES PRINCIPAIS: Não se mova hook.dlle será *.exeapós a rolagem ter sido ligada. Se você começar vmware_scroll_stop.exede outro local, ele não será carregado .dll(por exemplo, desabilitar a rolagem).

ATUALIZAÇÃO : Existe uma versão aprimorada (foi aprimorada por Anthony Prieur, muito obrigado a ele!), Que também suporta o VMware Player. Também está disponível um programa derivado do chamado VMWareTrackPadScroller com uma interface de usuário simples.

NOTA: Infelizmente, não há versão que suporte rolagem horizontal. O problema é que existe uma ideia de solução, mas eu a rejeitei como muito suja. Para realizar a tarefa, é necessário conectar (no SynTPEnh.exe) a API GetClassNameW () para modificar os nomes das classes de janelas do VMware (eles são "VMware.GuestWindow" e "MKSEmbedded") ou wcsicmp () para sempre retornar "diferente de" quando um dos argumentos é uma das seqüências mencionadas. Eu acho que é uma solução suja do ponto de vista de desempenho, pelo menos (esse é realmente um argumento fraco, já que a penalidade de desempenho seria mínima). De qualquer forma, acho que a solução atual é aceitável, já que você nem sempre tem um dispositivo com capacidade de rolagem horizontal e é melhor estar acostumado a viver sem esse luxo do que sofrer na pobreza. BTW,Shift+Vertical Scroll para fazer rolagem horizontal.

Andrew Zabavnikov
fonte
2
Apenas atualizei!
Andrew Zabavnikov 04/12/13
3
isso merece um voto positivo!
Xiamx
@xiamx Está funcionando para você? Acabei de receber um feedback de que não está funcionando para o Player (talvez sejam necessárias poucas modificações). Talvez seja uma questão de também aplicar essa correção blog.alexou.net/2010/07/…
Andrew Zabavnikov
yeh está funcionando perfeitamente. E também funciona para outros dispositivos de entrada com drivers da área de usuário (logitech T650). Embora eu tenha recompilado pessoalmente, pois só tenho o conjunto de ferramentas v110. Você pode colocá-lo no github? por isso aqueles que precisa para tê-lo para o trabalho com o jogador pode modificar por si próprios
xiamx
@ xiamx ok, farei isso em alguns dias. Só não se preocupou em lidar com o GitHub enquanto trabalhava na versão que suporta a rolagem horizontal.
Andrew Zabavnikov
7

Muitas pessoas se queixaram desse problema e solicitações de recursos foram enviadas ao Synaptics.

Encontrei um relatório de sucesso aqui . Embora seja para o Ubuntu, parece mostrar que existe uma solução para esse problema.

Sugiro que você experimente as soluções descritas no artigo abaixo, tanto para o host quanto para o convidado:
Corrigindo problemas de rolagem do Firefox com o Dell Synaptics Touchpad

O artigo menciona duas correções:

  1. Remover a opção Rolagem circular das propriedades do mouse
  2. Substitua os drivers do touchpad Dell pelos drivers Synaptics

Como o artigo diz para o segundo:

você pode remover os drivers do touchpad da Dell e instalar os Synaptics genéricos, que funcionam melhor para muitas pessoas - mas estão faltando alguns dos recursos extras da Dell. Enquanto o touchpad fizer o que você espera, pode valer a pena.

Sugiro criar um ponto de restauração do sistema antes de alterar os drivers, apenas por precaução.
Você também pode sempre reverter o driver no Gerenciador de dispositivos.

EDIT1

Algumas pessoas relatam sucesso ao usar o driver ALPS em vez do Synaptics.
Como diz o driver Alps Touchpad para Windows 7 :

alguns laptops da Dell não possuem touchpads fabricados pela Synaptics. Eles têm touchpads dos Alpes. Se você não tiver certeza sobre o tipo de touchpad que possui, consulte esta postagem sobre como identificar o modelo correto.

Quando ajudei meu usuário a atualizar o Inspiron 1420 para o Windows 7, usei o driver para o Vista. Aqui está o link para o download. Este driver é apenas para 32 bits. Se isso não funcionar, você também pode tentar o driver para Windows 7. Aqui está o link . O segundo link fornece drivers de 32 e 64 bits.

EDIT2

O seguinte tópico tem algumas informações interessantes:
Problemas com o touchpad Synaptics não conseguem rolar no SO convidado (Windows XP)

A última entrada no segmento diz:

Tenho vários colegas que gostariam de usar o VMware em laptops para fins de suporte. Alguns estão tentando o Virtualbox da Sun e outros estão tentando o VMware. A rolagem funciona bem com o Virtualbox, mas o compromisso da SUN com esse tipo de produto já havia queimado as pessoas no passado.

Parece que o VMware simplesmente não se importa muito com o Synaptics, e seu dispositivo não é bem suportado por ele. Embora isso não responda diretamente à sua pergunta, acho que você precisará mudar para o Virtualbox para que o touchpad funcione.

Para adoçar a pílula, consulte Como converter um VMware em Virtualbox .

harrymc
fonte
Eu já tenho o driver Synaptics (veja acima). O artigo é para rolagem com um dedo (que também não funciona e a desativação de Circular / Quiral não tem efeito), mas eu ficaria feliz se pudesse usar qualquer uma das opções. As configurações do Ubuntu parecem promissoras, mas como posso aplicá-las no Windows?
Laktak
@chris: A maioria das postagens que encontrei dizem que o VMware simplesmente não suporta o Synaptics Touchpad como dispositivo, de modo que o que você pede é impossível. De qualquer forma, editei acima mais uma abordagem que funcionou para algumas pessoas. Se não funcionar, você também pode tentar usar outro produto de VM que não seja o VMware.
harrymc
@harrymc Tenho certeza de que é um dispositivo Synaptics, mas não consigo encontrá-lo no pcidatabase.com. Os IDs de HW são "ACPI \ DLL02EF" e "* DLL02EF".
laktak
OK, talvez eu esteja pedindo o impossível, mas isso me incomoda há muito tempo. Eu esperava que houvesse uma maneira de fazer com que isso funcionasse da mesma forma que uma roda do mouse (talvez com emulação). De qualquer forma, se não houver solução, conceder-lhe-ei os pontos por toda a sua ajuda!
precisa saber é o seguinte
@chris: Não tendo nada a perder, você tentou o driver ALPS? Veja também este driver drivercure.com/driver/... e support.dell.com/support/downloads/...
harrymc
3

Esta solução parece boa.

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

Eu testei e oferece várias opções para configurar 1,2,3 dígitos e rolagem.

Deba Saha
fonte
Obrigado. Espero que isso ajude outra pessoa, pois mudei para um MacBook com VMware Fusion, onde tudo funciona imediatamente (e também possui um trackpad melhor).
laktak
Esta é a solução mais rápida até agora para mim. Instalou e funciona!
Eran Medan
1

A rolagem com dois dedos do Synaptics funciona com o modo Unity do VMware (Player> Unity). Estou usando isso para executar o VS2013 no VMware Player com Windows 7 x64 como sistema operacional host e convidado.

user2361830
fonte