Итак, я провел исследование и смог добиться успеха.
Подумав, я пришел к выводу, что не знаю, как это работает :-) Просто так! :-)
Ранее в « Полезном :) Веселье »:
Короче говоря, тачпад Synaptics отправляет ( SendMessage()
или PostMessage()
не удосужился точно определить) сообщения правого окна ( WM_MOUSEWHEEL
) в окно VMware, но на самом деле он должен использовать SendInput()
прямую эмуляцию физической мыши. Кажется, что была возможность контролировать поведение драйверов (или, точнее, программы пользовательского режима SynTPEnh.exe
) с помощью файла
tp4table.dat
. К сожалению, эта опция почему-то не включена в моих драйверах (хотя в исполняемом файле есть такая строка).
Итак, я сделал следующее - просто ввел a .dll
в процесс окна VMware (я надеюсь, что это безопасно, а также надеюсь, что это не тот же процесс, который выполняет VM), подклассовую процедуру окна (имеется в виду перехваченные сообщения окна) и перевел «неправильные», используя SendInput()
,
Также было отмечено, что следующее исправление стоит применить даже с моим решением: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/ .
Итак, исходный код и исполняемые файлы (они только поддерживают Workstation, подробнее об Player, читайте в «ОБНОВЛЕНИЕ») - спросите в комментарии, если вы что-то не нашли - на https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .
ОСНОВНОЕ ЗАМЕЧАНИЕ: запустите соответствующий исполняемый файл, когда виртуальная машина работает.
ДРУГОЕ ОСНОВНОЕ ЗАМЕЧАНИЕ: не двигайтесь, hook.dll
и *.exe
это после того, как прокрутка была включена. Если вы начнете vmware_scroll_stop.exe
с другого места, оно не будет выгружено .dll
(т.е. отключите прокрутку).
ОБНОВЛЕНИЕ : есть улучшенная версия
(она была улучшена Энтони Приером, большое ему спасибо!), Которая также поддерживает VMware Player.
Также доступна программа, производная от
VMWareTrackPadScroller, с простым пользовательским интерфейсом.
ПРИМЕЧАНИЕ. К сожалению, не будет версии с горизонтальной прокруткой. Дело в том, что есть идея решения, но я отверг ее как слишком грязную. Чтобы выполнить задачу, нужно подключить (в SynTPEnh.exe) API GetClassNameW () для изменения имен классов окон VMware (это «VMware.GuestWindow» и «MKSEmbedded») или wcsicmp (), чтобы всегда возвращать «не равно» когда один из аргументов является одной из упомянутых строк. Я думаю, что это грязное решение с точки зрения производительности, по крайней мере (это на самом деле слабый аргумент, поскольку снижение производительности будет минимальным). В любом случае, я думаю, что текущее решение является приемлемым, поскольку у вас не всегда есть устройство с возможностью горизонтальной прокрутки, и лучше привыкнуть жить без этой роскоши, чем страдать в нищете. КСТАТИ,Shift+Vertical Scroll
сделать горизонтальную прокрутку.