Используйте Synaptics Touchpad Scroll в VMware Guest

45058
laktak

Я хотел бы использовать Synaptics "Прокрутка двумя пальцами" внутри гостя VMware.

На хосте он работает, как и ожидалось, но VMware, похоже, не поддерживает его. Курсор мыши изменится, чтобы указать, что прокрутка активна, но гость VMware не будет отвечать на нее.

  • VMware Workstation 7.1
  • Хост и Гостевая ОС: Windows 7 (64bit)
  • Драйвер Synaptics 15.0.9.0
  • Устройство отображается как «Synaptics LuxPad V7.4»

Можно ли как-то заставить эту работу работать? (например, измените .vmx, измените параметры Synaptics или с драйвером, который имитирует «прокрутку колесика мыши»)

Обновление: я уже пробовал несколько опций в драйвере Synaptics, но единственное изменение состояло в том, что он отображал другой курсор мыши при попытке прокрутки.

16
проверьте мое решение @ http://superuser.com/a/439474/106787 mreq 12 лет назад 0
@hcris Пожалуйста, проверьте мой ответ как правильный, пожалуйста :-) Andrew Zabavnikov 10 лет назад 0

5 ответов на вопрос

22
Andrew Zabavnikov

Okay, so I did a research and managed to succeed.

After some thinking I came to conclusion I do not know how it works :-) It just does! :-)

Previously on «Useful :) Fun»:

In brief, Synaptics touchpad sends (SendMessage() or PostMessage(), didn't bother to pinpoint that) right window messages (WM_MOUSEWHEEL) to VMware window, but what it actually should do is using SendInput(), directly emulating physical mouse. It seems that there was an option to control behavior of drivers (or, more precisely, user-mode program SynTPEnh.exe) with file tp4table.dat. Unfortunately, this option is somehow not enabled in my drivers (though there is such a string in an executable).

So, I did the following - just injected a .dll into VMware's window process (I hope it's safe and also hope it's not the same process that executes a VM), subclassed window procedure (meaning intercepted window messages) and translated the "wrong" ones using SendInput().

Also, it had been noted that the following fix is worth applying even with my solution: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/.

So, the source code and executables (they are only supporting Workstation, read further for Player, in "UPDATE") - ask in comment if you didn't find something - are on https://www.dropbox.com/s/gucmyo35heha6g2/vmware_scroll.zip?dl=0.

MAJOR REMARK: run the corresponding executable when a VM is running.

ANOTHER MAJOR REMARK: Don't move hook.dll and *.exe's after the scrolling has been turned on. If you start vmware_scroll_stop.exe from other location it won't unlload .dll (i.e. disable scrolling).

UPDATE: There is an enhanced version (it was enhanced by Anthony Prieur, big thanks to him!), which also supports VMware Player. A program derived from that called VMWareTrackPadScroller with a simple user interface is also available.

NOTE: There will be no version that supports horizontal scrolling, unfortunately. The thing is, there is a solution idea, but I rejected it as too dirty. To accomplish the task, one need to hook (in SynTPEnh.exe) GetClassNameW() API to modify VMware window classes' names (they are "VMware.GuestWindow" and "MKSEmbedded") or wcsicmp() to always return "not equal" when one of the argument is one of the mentioned strings. I think it's dirty solution from performance point of view, at least (that is actually a weak argument since performance penalty would be minimal). Anyway, current solution is acceptable, I think, since you don't always have device with horizontal scrolling capability and it's better to be accustomed to live without that luxury than to get suffering in poverty. BTW, in Chrome/Chromium you have Shift+Vertical Scroll to do horizontal scroll.

Только что обновил! Andrew Zabavnikov 10 лет назад 2
это заслуживает одобрения! xiamx 10 лет назад 3
@xiamx Это работает для вас? Я только что получил отзыв, что он не работает для игрока (может быть, небольшая модификация не требуется). Может быть, это вопрос применения этого исправления http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ Andrew Zabavnikov 10 лет назад 0
да, это работает отлично. И это также работает для других устройств ввода с пользовательскими драйверами (logitech T650). Хотя я перекомпилировал его сам, так как у меня есть только набор инструментов v110. Можете ли вы положить его на GitHub? так что те, кому нужно, чтобы он работал с Player, могут сами его модифицировать xiamx 10 лет назад 0
@ xiamx Хорошо, я сделаю это через несколько дней. Просто не удосужился разобраться с GitHub при работе над версией, которая будет поддерживать горизонтальную прокрутку. Andrew Zabavnikov 10 лет назад 0
Ну, я никогда не настраивал это, как ты видишь. Энтони Приер сделал это для меня, как вы видите, если вы прочитаете мой ответ. :-) Andrew Zabavnikov 10 лет назад 0
Я думаю, это «вместо меня». Никогда не приходило мне в голову. Andrew Zabavnikov 9 лет назад 0
@AndrewZabavnikov Я не могу следить за ним. не могли бы вы, пожалуйста, развиваться шаг за шагом. когда я запускаю vmware_scroll_start.exe. я получаю vmware_start_scroll результат 1 Amerrnath 9 лет назад 0
@Amerrnath Извините, сейчас далеко от моей машины для разработки Windows. Не могли бы вы сначала попробовать https://bitbucket.org/DouglasCameron/windows-trackpad-scroller-for-vmware? Это не от меня, но, как говорит недавний редактор ответа, у него простой пользовательский интерфейс :-) Если это тоже не сработает, я буду рад проверить ошибку (и она одна, как программа отчеты по коду состояния - и мне жаль, что я не реализовал комплексную диагностику). Удачи! :-) Andrew Zabavnikov 9 лет назад 0
@AndrewZabavnikov спасибо за ответ. конечно, я буду загружать, и я буду проверять это. :-) Amerrnath 9 лет назад 0
@AndrewZabavnikov Как мне заставить его работать с VMware KVM? Saravanabalagi Ramachandran 8 лет назад 0
@ ZekeDran Насколько я помню, ты должен играть с классом окна. Измените его в исходном коде и так далее, это работает! :-) Andrew Zabavnikov 8 лет назад 0
@ZekeDran Также обратите внимание, что проект изначально начинался с kvm, поэтому на момент первоначального выпуска это было возможно. Andrew Zabavnikov 8 лет назад 0
@ZekeDran Возможно, есть также закомментированные строки исходного кода, соответствующие kvm. Andrew Zabavnikov 8 лет назад 0
@AndrewZabavnikov Что и куда мне добавить? Я открыл src и почти ничего не понял: я все-таки новичок :( Мне нужна помощь ... И просто любопытно, если он изначально запускался с KVM, почему он удаляется из релизной версии? Saravanabalagi Ramachandran 8 лет назад 0
@ ZekeDran На самом деле, не могу помочь. Даже Windows ™ сейчас не установлена ​​... Извините. Может быть, вы можете обратиться за помощью к упомянутым людям, которые (я надеюсь) поддерживают ее на GitHub и BitBucket? И последний вопрос - не помню :-) Andrew Zabavnikov 8 лет назад 0
@ZekeDran Вы можете попробовать заменить `L" VMUIView "` либо `L" MKSEmbedded "`, либо `L" VMware.GuestWindow "` в `src / vmware_scroll / vmware_scroll_start.cpp` и перекомпилировать, дважды попробовав одну строку и Другой. В противном случае вы и я должны войти в развитие, основанное на помощи ... XD Andrew Zabavnikov 8 лет назад 0
Я пробовал это, но это не сработало! И каков результат 0 и что результат 1? Я получаю результат 0 для двух записей! Saravanabalagi Ramachandran 8 лет назад 0
Давайте [продолжим обсуждение в чате] (http://chat.stackexchange.com/rooms/46576/discussion-between-andrew-zabavnikov-and-zeke-dran). Andrew Zabavnikov 8 лет назад 0
6
harrymc

Многие люди жаловались на эту проблему, и запросы о новых функциях были отправлены в Synaptics.

Я нашел один отчет об успехе здесь . Хотя это для Ubuntu, похоже, что есть решение этой проблемы.

Я предлагаю вам попробовать решения, описанные в статье ниже, для хоста и гостя:
устранение проблем с прокруткой Firefox с помощью сенсорной панели Dell Synaptics

В статье упоминаются два исправления:

  1. Удалить параметр круговой прокрутки из свойств мыши
  2. Замените драйверы сенсорной панели Dell на драйверы Synaptics

Как говорится в статье для второго:

Вы можете удалить драйверы сенсорной панели Dell и установить универсальные драйверы Synaptics, которые лучше работают для многих людей, но в них отсутствуют некоторые дополнительные функции Dell. Пока ваш тачпад делает то, что вы ожидаете, это может стоить того.

Я предлагаю создать точку восстановления системы перед сменой драйверов, на всякий случай.
Вы также можете всегда откатить драйвер из диспетчера устройств.

EDIT1

Некоторые люди сообщают об успехе при использовании драйвера ALPS, а не Synaptics.
Как говорит Alps Touchpad Driver для Windows 7 :

некоторые ноутбуки Dell не имеют сенсорных панелей от Synaptics. У них есть сенсорные панели Альп. Если вы не уверены в том, какой у вас тачпад, ознакомьтесь с этой статьей об определении правильной модели.

Когда я помог моему пользователю обновить его Inspiron 1420 до Windows 7, я использовал драйвер для Vista. Вот ссылка на скачивание. Этот драйвер только для 32 бит. Если это не работает для вас, вы также можете попробовать драйвер для Windows 7. Вот ссылка . Вторая ссылка предоставляет как 32-битные, так и 64-битные драйверы.

EDIT2

Следующая ветка содержит некоторую интересную информацию:
Проблемы с тачпадом Synaptics, не способным прокрутить гостевую ОС (Windows XP)

Последняя запись в теме говорит:

У меня есть несколько коллег, которые хотели бы использовать Vmware на ноутбуках в целях поддержки. Некоторые пробуют Sun Virtualbox, а другие пробуют Vmware. Прокрутка прекрасно работает с Virtualbox, но приверженность SUN к этому типу продуктов в прошлом сгорела.

Кажется, что VMware просто не заботится о Synaptics, и ваше устройство не очень хорошо поддерживается им. Хотя это не дает прямого ответа на ваш вопрос, я думаю, что вам нужно будет перейти на Virtualbox, чтобы тачпад работал.

Чтобы подсластить таблетку, см. Как конвертировать VMware в Virtualbox .

У меня уже есть драйвер Synaptics (см. Выше). Эта статья предназначена для прокрутки одним пальцем (которая также не работает, и отключение Circular / Chiral не имеет никакого эффекта), но я был бы рад, если бы я мог использовать любой из этих вариантов. Настройки Ubuntu звучат многообещающе, но как их применить в Windows? laktak 14 лет назад 0
@chris: В большинстве сообщений, которые я нашел, говорится, что VMware просто не поддерживает тачпад Synaptics как устройство, поэтому то, что вы просите, невозможно. Во всяком случае, я отредактировал выше еще один подход, который работал для некоторых людей. Если это не работает, вы также можете попробовать использовать другой продукт VM, кроме VMware. harrymc 14 лет назад 0
@harrymc Я уверен, что это устройство Synaptics, но я не могу найти его на pcidatabase.com. Идентификаторы HW: «ACPI \ DLL02EF» и «* DLL02EF». laktak 14 лет назад 0
Хорошо, может быть, я прошу невозможного, но это раздражало меня долгое время. Я надеялся, что есть способ заставить это работать так же, как работает колесо мыши (возможно, с эмуляцией). В любом случае, если решения не будет, я начисляю вам очки за всю вашу помощь! laktak 14 лет назад 0
@chris: Вам нечего терять, вы пробовали драйвер ALPS? См. Также этот драйвер http://drivercure.com/driver/driver_vendor.php?id=60FBC7AC-436A-4BCE-BB2F-E454D6E75530 и http://support.dell.com/support/downloads/download.aspx?c= мы & л = еп & s = ген & releaseid = R175658 & SystemID = XPS_M1330 & servicetag = & OS = WW1 & OSL = еп & DeviceID = 14029 & devlib = 0 & typecnt = 0 & vercnt = 2 & CatID = -1 & impid = -1 & formatcnt = 0 & LIBID = 17 & TypeId = -1 & dateid = -1 & formatid = -1 & источник = -1 & FILEID = 238839 harrymc 14 лет назад 0
Я удалил Synaptics и попробовал драйвер ALPS - он установлен, но он предлагает только базовую функциональность. Он не предлагал прокрутку на хосте, и не было никакого способа настроить его с помощью диалогового окна мыши или иконки в трее. :( laktak 14 лет назад 0
@ Крис: Я начинаю немного пессимистично оценивать ваши шансы на успех, особенно потому, что идентификатор вашего устройства нельзя найти где-либо, кроме этих драйверов в моем предыдущем комментарии. harrymc 14 лет назад 0
@ Крис: Смотрите мой Edit2 для окончательной информации. harrymc 14 лет назад 0
Спасибо за совет, но я не могу переключиться. Мы используем настольные и серверные продукты VMware, а AFAIK Virtualbox не поддерживает сервер. Также есть проблема, что Sun была куплена Oracle, которая не помогает вообще. laktak 14 лет назад 0
@chris: у него действительно есть сравнимый виртуальный ящик xVM (теперь Oracle VM VirtualBox, а также Oracle Enterprise Manager Ops Center). Существуют и другие подобные продукты, почти все на основе гипервизора Xen с открытым исходным кодом. См. «Коммерческие реализации» в http://en.wikipedia.org/wiki/Xen. harrymc 14 лет назад 0
Я также думаю, что вы сохраните свою награду, поскольку я не верю, что есть решение с использованием VMware. harrymc 14 лет назад 0
Конечно, я наградил награду, спасибо за вашу помощь! Может быть, вы хотите заполнить запрос функции? :) laktak 14 лет назад 0
3
laktak

Поскольку в настоящее время нет решения, единственное, что нужно сделать, это заполнить запрос на

http://www.vmware.com/contact/contactus.html?department=prod_request

Просто вставьте первые два параграфа из вопроса в текстовое поле.

3
Deba Saha

This solution seems good.

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

I've tested it, and it gives a whole lot of options to configure 1,2,3 figure touch and scroll.

Благодарю. Я надеюсь, что это поможет кому-то еще, так как я перешел на MacBook с VMware Fusion, где все работает «из коробки» (и у него тоже есть лучший трекпад). laktak 11 лет назад 0
Это самое быстрое решение для меня на данный момент. Установил и все работает! Eran Medan 9 лет назад 0
1
user2361830

Synaptics' two-finger scrolling works with VMware's Unity mode (Player > Unity). I'm using this to run VS2013 in VMware Player with Windows 7 x64 as both host and guest OS.