Okay, ho fatto una ricerca e sono riuscito ad avere successo.
Dopo un po 'di riflessione sono arrivato alla conclusione non so come funziona :-) Lo fa e basta! :-)
Precedentemente su « Utile :) Divertimento »:
In breve, il touchpad Synaptics invia ( SendMessage()
o PostMessage()
non si è preoccupato di individuarlo) i messaggi della finestra di destra ( WM_MOUSEWHEEL
) nella finestra di VMware, ma ciò che dovrebbe effettivamente fare è utilizzare SendInput()
, emulando direttamente il mouse fisico. Sembra che ci fosse un'opzione per controllare il comportamento dei driver (o, più precisamente, il programma in modalità utente SynTPEnh.exe
) con file
tp4table.dat
. Sfortunatamente, questa opzione non è in qualche modo abilitata nei miei driver (sebbene ci sia una tale stringa in un eseguibile).
Quindi, ho fatto quanto segue - ho appena iniettato un .dll
nel processo della finestra di VMware (spero sia sicuro e spero anche che non sia lo stesso processo che esegue una macchina virtuale), ho eseguito una sottoclasse della procedura della finestra (che significa messaggi intercettati della finestra) e tradotto quelli "sbagliati" usando SendInput()
.
Inoltre , è stato notato che vale la pena applicare la seguente correzione anche con la mia soluzione: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ .
Quindi, il codice sorgente e gli eseguibili (supportano solo Workstation, leggi oltre per Player, in "AGGIORNAMENTO") - chiedi nei commenti se non hai trovato qualcosa - sono su https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .
PRINCIPALE NOTA: eseguire l'eseguibile corrispondente quando è in esecuzione una macchina virtuale.
UN ALTRO PRINCIPALE NOTA: non muoverti hook.dll
e *.exe
dopo che lo scorrimento è stato attivato. Se inizi vmware_scroll_stop.exe
da un'altra posizione, non verrà scaricato .dll
(ovvero disabilita lo scorrimento).
AGGIORNAMENTO : esiste una versione migliorata
(è stata migliorata da Anthony Prieur, grazie a lui!), Che supporta anche VMware Player. È
anche disponibile un programma derivato da quello chiamato
VMWareTrackPadScroller con una semplice interfaccia utente.
NOTA: sfortunatamente non ci sarà alcuna versione che supporti lo scorrimento orizzontale. Il fatto è che esiste un'idea di soluzione, ma l'ho respinta perché troppo sporca. Per eseguire l'attività, è necessario agganciare (in SynTPEnh.exe) l'API GetClassNameW () per modificare i nomi delle classi di finestre VMware (sono "VMware.GuestWindow" e "MKSEmbedded") o wcsicmp () per restituire sempre "non uguale" quando uno degli argomenti è una delle stringhe menzionate. Penso che sia una soluzione sporca dal punto di vista delle prestazioni, almeno (questo è in realtà un argomento debole poiché la penalità delle prestazioni sarebbe minima). Ad ogni modo, la soluzione attuale è accettabile, penso, dal momento che non si ha sempre un dispositivo con capacità di scorrimento orizzontale ed è meglio abituarsi a vivere senza quel lusso piuttosto che soffrire in condizioni di povertà. BTW,Shift+Vertical Scroll
per eseguire lo scorrimento orizzontale.