Użyj Synaptics Touchpad Scroll w VMware Guest

17

Chciałbym użyć funkcji Synaptics „Przewijanie dwoma palcami” wewnątrz gościa VMware.

Działa zgodnie z oczekiwaniami na hoście, ale VMware nie obsługuje go. Kursor myszy zmienia się, wskazując, że przewijanie jest aktywne, ale gość VMware nie zareaguje na to.

  • VMware Workstation 7.1
  • System operacyjny hosta i gościa: Windows 7 (64-bitowy)
  • Sterownik Synaptics 15.0.9.0
  • Urządzenie jest wyświetlane jako „Synaptics LuxPad V7.4”

Czy można to jakoś sprawić, żeby działało? (np. zmodyfikuj .vmx, zmień opcje Synaptics lub za pomocą sterownika, który emuluje „przewijanie kółkiem myszy”)

Aktualizacja: Wypróbowałem już kilka opcji w sterowniku Synaptics, ale jedyną zmianą było to, że podczas przewijania wyświetlał inny kursor myszy.

laktak
źródło
sprawdź moje rozwiązanie @ superuser.com/a/439474/106787
mreq
@hcris Zastanów się, czy moja odpowiedź nie jest poprawna, proszę :-)
Andrew Zabavnikov

Odpowiedzi:

22

Okej, więc przeprowadziłem badania i udało mi się odnieść sukces.

Po namyśle doszedłem do wniosku, że nie wiem, jak to działa :-) Po prostu tak! :-)

Poprzednio w Przydatne :) Zabawa ”:

W skrócie, touchpad Synaptics wysyła ( SendMessage()lub PostMessage()nie zadał sobie trudu, aby to wskazać) właściwe komunikaty okna ( WM_MOUSEWHEEL) do okna VMware, ale tak naprawdę powinien to robić SendInput(), bezpośrednio emulując fizyczną mysz. Wygląda na to, że istniała opcja kontrolowania zachowania sterowników (lub ściślej programu trybu użytkownika SynTPEnh.exe) za pomocą pliku tp4table.dat. Niestety, ta opcja w jakiś sposób nie jest włączona w moich sterownikach (choć taki plik jest w pliku wykonywalnym).

Więc zrobiłem następujące - po prostu wstrzyknąłem proces .dlldo okna VMware (mam nadzieję, że jest bezpieczny, a także mam nadzieję, że nie jest to ten sam proces, który wykonuje maszynę wirtualną), podklasowałem procedurę okna (co oznacza przechwycone komunikaty okna) i przetłumaczyłem „niewłaściwe” za pomocą SendInput().

Ponadto zauważono, że następująca poprawka jest warta zastosowania nawet w moim rozwiązaniu: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ .

Tak więc kod źródłowy i pliki wykonywalne (obsługują tylko stację roboczą, czytaj dalej Player, w „AKTUALIZACJI”) - zapytaj w komentarzu, jeśli czegoś nie znalazłeś - są na https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .

WAŻNA UWAGA: uruchom odpowiedni plik wykonywalny, gdy uruchomiona jest maszyna wirtualna.

KOLEJNA GŁÓWNA UWAGA: Nie ruszaj się hook.dlli *.exejest po włączeniu przewijania. Jeśli zaczniesz vmware_scroll_stop.exez innej lokalizacji, nie zostanie odciążone .dll(tj. Wyłączy przewijanie).

AKTUALIZACJA : Istnieje ulepszona wersja (została ulepszona przez Anthony'ego Prieura, wielkie dzięki niemu!), Która obsługuje również VMware Player. Dostępny jest również program wywodzący się od tego o nazwie VMWareTrackPadScroller z prostym interfejsem użytkownika.

UWAGA: Niestety, nie będzie wersji obsługującej przewijanie w poziomie. Chodzi o to, że istnieje pomysł na rozwiązanie, ale odrzuciłem go jako zbyt brudny. Aby wykonać zadanie, należy zaczepić (w SynTPEnh.exe) API GetClassNameW (), aby zmodyfikować nazwy klas okien VMware (są to „VMware.GuestWindow” i „MKSEmbedded”) lub wcsicmp (), aby zawsze zwracały „nierównany” gdy jednym z argumentów jest jeden z wymienionych ciągów. Myślę, że to brudne rozwiązanie, przynajmniej z punktu widzenia wydajności (to w rzeczywistości słaby argument, ponieważ ograniczenie wydajności byłoby minimalne). W każdym razie obecne rozwiązanie jest dopuszczalne, jak sądzę, ponieważ nie zawsze masz urządzenie z funkcją przewijania w poziomie i lepiej jest przyzwyczaić się do życia bez tego luksusu niż cierpienia w biedzie. BTW,Shift+Vertical Scroll zrobić przewijanie w poziomie.

Andrew Zabavnikov
źródło
2
Właśnie to zaktualizowałem!
Andrew Zabavnikov,
3
to zasługuje na aprobatę!
xiamx
@xiamx Czy to działa dla Ciebie? Właśnie otrzymałem informację zwrotną, że to nie działa w odtwarzaczu (być może wymagana jest niewielka modyfikacja). Być może chodzi o zastosowanie tej poprawki blog.alexou.net/2010/07/…
Andrew Zabavnikov,
tak, działa idealnie. Działa również w przypadku innych urządzeń wejściowych ze sterownikami dla użytkowników (logitech T650). Chociaż skompilowałem go sam, ponieważ mam tylko zestaw narzędzi v110. Czy możesz to umieścić na github? więc ci, którzy muszą go mieć do pracy z Player, mogą go sami zmodyfikować
xiamx,
@xiamx ok, zrobię to za kilka dni. Po prostu nie zadałem sobie trudu radzenia sobie z GitHubem podczas pracy nad wersją, która będzie obsługiwać przewijanie w poziomie.
Andrew Zabavnikov,
7

Wiele osób skarżyło się na ten problem, a prośby o nowe funkcje zostały przesłane do Synaptics.

Znalazłem tutaj jeden raport o sukcesie . Chociaż dotyczy to Ubuntu, wydaje się, że pokazuje, że istnieje rozwiązanie tego problemu.

Sugeruję wypróbowanie rozwiązań opisanych w poniższym artykule, zarówno dla hosta, jak i gościa:
Rozwiązywanie problemów z przewijaniem Firefoksa za pomocą touchpada Dell Synaptics

W artykule wymieniono dwie poprawki:

  1. Usuń opcję przewijania kołowego z właściwości myszy
  2. Wymień sterowniki touchpad Dell przez kierowców Synaptics

Jak mówi artykuł do drugiego:

możesz usunąć sterowniki touchpada Dell i zainstalować standardowe Synaptics, które działają lepiej dla wielu osób - ale brakuje im niektórych dodatkowych funkcji Dell. Tak długo, jak touchpad robi to, czego oczekujesz, może być tego warte.

Sugeruję utworzenie punktu przywracania systemu przed zmianą sterowników, na wszelki wypadek.
Zawsze możesz także przywrócić sterownik z poziomu Menedżera urządzeń.

EDYCJA 1

Niektóre osoby zgłaszają sukces podczas używania sterownika ALPS zamiast Synaptics.
Jak mówi Alps Touchpad Driver dla Windows 7 :

niektóre laptopy Dell nie mają tabliczek dotykowych wyprodukowanych przez Synaptics. Mają touchpady Alp. Jeśli nie masz pewności, jakiego rodzaju touchpad posiadasz, zapoznaj się z tym postem na temat identyfikacji odpowiedniego modelu.

Kiedy pomogłem mojemu użytkownikowi zaktualizować Inspiron 1420 do Windows 7, użyłem sterownika dla Visty. Oto link do pobrania. Ten sterownik jest przeznaczony tylko dla wersji 32-bitowej. Jeśli to nie zadziała, możesz także wypróbować sterownik dla systemu Windows 7. Oto link . Drugie łącze zapewnia sterowniki 32- i 64-bitowe.

EDYCJA 2

Poniższy wątek zawiera kilka interesujących informacji:
Problemy z niemożnością przewijania touchpada Synaptics w systemie operacyjnym gościa (Windows XP)

Ostatni wpis w wątku mówi:

Mam kilku kolegów, którzy chcieliby korzystać z Vmware na laptopach w celach wsparcia. Niektórzy próbują Virtualbox firmy Sun, a inni próbują Vmware. Przewijanie działa dobrze w Virtualbox, ale zaangażowanie SUN w tego typu produkty płonęło w przeszłości.

Wygląda na to, że VMware po prostu nie dba o Synaptics, a twoje urządzenie nie jest przez nią dobrze obsługiwane. Chociaż to nie odpowiada bezpośrednio na twoje pytanie, myślę, że musisz przejść do Virtualbox, aby uruchomić touchpad.

Aby osłodzić pigułkę, zobacz Jak przekonwertować VMware na Virtualbox .

harrymc
źródło
Mam już sterownik Synaptics (patrz wyżej). Artykuł dotyczy przewijania jednym palcem (co również nie działa, a wyłączenie opcji Circular / Chiral nie ma żadnego efektu), ale byłbym szczęśliwy, gdybym mógł skorzystać z którejkolwiek z opcji. Ustawienia Ubuntu brzmią obiecująco, ale jak mogę je zastosować w systemie Windows?
laktak
@chris: Większość znalezionych przeze mnie postów mówi, że VMware po prostu nie obsługuje touchpada Synaptics jako urządzenia, więc to, o co pytasz, jest niemożliwe. Zresztą edytowałem powyżej jedno podejście, które działało dla niektórych osób. Jeśli to nie działa, możesz także spróbować użyć innego produktu VM niż VMware.
harrymc,
@harrymc Jestem pewien, że to urządzenie Synaptics, ale nie mogę go znaleźć na pcidatabase.com. Identyfikatory HW to „ACPI \ DLL02EF” i „* DLL02EF”.
laktak
OK, może proszę o niemożliwe, ale to mnie denerwuje od dłuższego czasu. Miałem nadzieję, że istnieje sposób, aby to działało tak samo, jak działa kółko myszy (być może z emulacją). W każdym razie, jeśli nie ma rozwiązania, przyznam ci punkty za całą twoją pomoc!
laktak
@chris: Nie mając nic do stracenia, wypróbowałeś sterownik ALPS? Zobacz także ten sterownik drivercure.com/driver/… i support.dell.com/support/downloads/…
harrymc
3

To rozwiązanie wydaje się dobre.

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

Przetestowałem to i daje wiele opcji konfiguracji dotykania i przewijania 1,2,3 figury.

Deba Saha
źródło
Dzięki. Mam nadzieję, że pomoże to komuś innemu, ponieważ przeniosłem się na MacBooka z VMware Fusion, w którym wszystko działa od razu (i ma też lepszy gładzik).
laktak
To dla mnie najszybsze rozwiązanie. Zainstalowałem i działa!
Eran Medan
1

Przewijanie dwoma palcami Synaptics działa w trybie Unity VMware (Player> Unity). Używam tego do uruchamiania VS2013 w VMware Player z Windows 7 x64 zarówno jako system operacyjny hosta, jak i gościa.

użytkownik2361830
źródło