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 .dll
no 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.dll
e será *.exe
após a rolagem ter sido ligada. Se você começar vmware_scroll_stop.exe
de 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.