Usa Synaptics Touchpad Scroll in VMware Guest


17

Vorrei usare Synaptics "Two-Finger Scrolling" all'interno di un guest VMware.

Funziona come previsto sull'host ma VMware non sembra supportarlo. Il cursore del mouse cambia per indicare che lo scorrimento è attivo ma il guest VMware non risponderà.

  • VMware Workstation 7.1
  • Sistema operativo host e guest: Windows 7 (64 bit)
  • Synaptics Driver 15.0.9.0
  • Il dispositivo viene visualizzato come "Synaptics LuxPad V7.4"

È possibile farlo funzionare in qualche modo? (ad es. modifica di .vmx, modifica delle opzioni di Synaptics o con un driver che emula lo "scorrimento della rotellina del mouse")

Aggiornamento: ho già provato diverse opzioni nel driver Synaptics ma l'unica modifica è stata che ha mostrato un cursore del mouse diverso quando ho provato a scorrere.


controlla la mia soluzione @ superuser.com/a/439474/106787
mreq

@hcris Considera di controllare la mia risposta come corretta, per favore :-)
Andrew Zabavnikov,

Risposte:


22

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 .dllnel 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.dlle *.exedopo che lo scorrimento è stato attivato. Se inizi vmware_scroll_stop.exeda 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.


2
L'ho appena aggiornato!
Andrew Zabavnikov,

3
questo merita un voto!
xiamx,

@xiamx Funziona per te? Ho appena ricevuto un feedback sul fatto che non funziona per Player (forse sono necessarie poche modifiche). Forse si tratta anche di applicare questa correzione blog.alexou.net/2010/07/…
Andrew Zabavnikov il

funziona perfettamente. Funziona anche con altri dispositivi di input con driver userland (logitech T650). Anche se l'ho ricompilato da solo poiché ho solo set di strumenti v110. Puoi metterlo su Github? così chi ha bisogno di farlo funzionare con Player può modificarlo da solo
xiamx,

@xiamx ok, lo farò tra qualche giorno. Non mi sono preoccupato di gestire GitHub mentre lavoravo su una versione che supporterà lo scorrimento orizzontale.
Andrew Zabavnikov,

7

Molte persone si sono lamentate di questo problema e le richieste di funzionalità sono state inviate a Synaptics.

Ho trovato un rapporto di successo qui . Anche se è per Ubuntu, sembra dimostrare che esiste una soluzione a questo problema.

Ti suggerisco di provare le soluzioni descritte nell'articolo seguente, sia per l'host che per il guest:
Risolvere i problemi di scorrimento di Firefox con il touchpad Dell Synaptics

L'articolo menziona due correzioni:

  1. Rimuovi l'opzione Scorrimento circolare dalle proprietà del mouse
  2. Sostituire i driver del touchpad Dell con i driver Synaptics

Come dice l'articolo per il secondo:

puoi rimuovere i driver del touchpad Dell e installare quelli generici di Synaptics, che funzionano meglio per molte persone, ma mancano alcune delle funzionalità aggiuntive di Dell. Finché il touchpad fa quello che ti aspetti, potrebbe valerne la pena.

Suggerisco di creare un punto di ripristino del sistema prima di modificare i driver, per ogni evenienza.
È inoltre possibile eseguire il rollback del driver da Gestione dispositivi.

EDIT1

Alcune persone segnalano il successo quando si utilizza il driver ALPS anziché Synaptics.
Come dice Alps Touchpad Driver per Windows 7 :

alcuni laptop Dell non dispongono di touchpad realizzati da Synaptics. Hanno i touchpad delle Alpi. Se non si è sicuri del tipo di touchpad in uso, consultare questo post sull'identificazione del modello corretto.

Quando ho aiutato il mio utente ad aggiornare il suo Inspiron 1420 a Windows 7, ho usato il driver per Vista. Ecco il link per il download. Questo driver è solo per 32 bit. Se questo non funziona per te, puoi anche provare il driver per Windows 7. Ecco il link . Il secondo collegamento fornisce driver a 32 e 64 bit.

EDIT2

Il seguente thread ha alcune informazioni interessanti:
Problemi con il touchpad Synaptics non in grado di scorrere nel SO guest (Windows XP)

L'ultima voce nel thread dice:

Ho diversi colleghi che vorrebbero utilizzare Vmware su laptop a scopo di supporto. Alcuni stanno provando Sun's Virtualbox e altri stanno provando Vmware. Lo scorrimento funziona bene con Virtualbox, ma l'impegno di SUN per questo tipo di prodotto ha bruciato persone in passato.

Sembra che VMware semplicemente non si preoccupi molto di Synaptics e il tuo dispositivo non è ben supportato da esso. Anche se questo non risponde direttamente alla tua domanda, penso che dovrai spostare Virtualbox per far funzionare il touchpad.

Per addolcire la pillola, vedere Come convertire un VMware in Virtualbox .


Ho già il driver Synaptics (vedi sopra). L'articolo è per lo scorrimento con un dito (che inoltre non funziona e la disabilitazione di Circular / Chiral non ha alcun effetto) ma sarei felice se potessi usare entrambe le opzioni. Le impostazioni di Ubuntu sembrano promettenti, ma come posso applicarle in Windows?
Laktak,

@chris: La maggior parte dei post che ho trovato afferma che VMware semplicemente non supporta Synaptics Touchpad come dispositivo, quindi ciò che chiedi è impossibile. Ho comunque modificato sopra un altro approccio che ha funzionato per alcune persone. Se non funziona, puoi anche provare a utilizzare un altro prodotto VM diverso da VMware.
harrymc,

@harrymc Sono abbastanza sicuro che sia un dispositivo Synaptics ma non riesco a trovarlo su pcidatabase.com. Gli ID HW sono "ACPI \ DLL02EF" e "* DLL02EF".
Laktak,

OK, forse sto chiedendo l'impossibile, ma questo mi ha infastidito per molto tempo. Speravo che ci fosse un modo per farlo funzionare nello stesso modo in cui funziona una rotellina del mouse (forse con emulazione). In ogni caso, se non c'è soluzione, ti assegnerò i punti per tutto il tuo aiuto!
Laktak,

@chris: non hai nulla da perdere, hai provato il driver ALPS? Vedi anche questo driver drivercure.com/driver/… e support.dell.com/support/downloads/…
harrymc


3

Questa soluzione sembra buona.

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

L'ho provato e offre molte opzioni per configurare il tocco e lo scorrimento di 1,2,3 cifre.


Grazie. Spero che questo aiuti qualcun altro mentre mi sono trasferito su un MacBook con VMware Fusion dove tutto funziona immediatamente (e ha anche un trackpad migliore).
Laktak,

Questa è la soluzione più veloce finora per me. Installato e funziona!
Eran Medan,

1

Lo scorrimento a due dita di Synaptics funziona con la modalità Unity di VMware (Player> Unity). Sto usando questo per eseguire VS2013 in VMware Player con Windows 7 x64 come sistema operativo host e guest.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.