Được rồi, vì vậy tôi đã làm một nghiên cứu và quản lý để thành công.
Sau khi suy nghĩ, tôi đã đi đến kết luận Tôi không biết nó hoạt động như thế nào :-) Nó chỉ có thế! :-)
Trước đây trên « Hữu ích :) Vui vẻ »:
Tóm lại, bàn di chuột Synaptics gửi ( SendMessage()
hoặc PostMessage()
, không bận tâm xác định chính xác) thông điệp cửa sổ bên phải ( WM_MOUSEWHEEL
) đến cửa sổ VMware, nhưng những gì nó thực sự nên làm là sử dụng SendInput()
, mô phỏng trực tiếp chuột vật lý. Dường như có một tùy chọn để kiểm soát hành vi của trình điều khiển (hay chính xác hơn là chương trình chế độ người dùng SynTPEnh.exe
) với tệp
tp4table.dat
. Thật không may, tùy chọn này bằng cách nào đó không được kích hoạt trong trình điều khiển của tôi (mặc dù có một chuỗi như vậy trong một tệp thực thi).
Vì vậy, tôi đã làm như sau - chỉ cần đưa .dll
vào quy trình cửa sổ của VMware (tôi hy vọng nó an toàn và cũng hy vọng nó không giống quy trình thực thi VM), thủ tục cửa sổ được phân lớp (nghĩa là thông báo cửa sổ bị chặn) và dịch "sai" sử dụng SendInput()
.
Ngoài ra , đã lưu ý rằng cách khắc phục sau đây đáng để áp dụng ngay cả với giải pháp của tôi: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics- ức / .
Vì vậy, mã nguồn và các tệp thực thi (chúng chỉ hỗ trợ Workstation, đọc thêm cho Trình phát, trong "CẬP NHẬT") - hỏi trong nhận xét nếu bạn không tìm thấy thứ gì đó - có trên https://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? dl = 0 .
GHI NHỚ CHÍNH: chạy tệp thực thi tương ứng khi VM đang chạy.
NHỮNG GHI NHỚ CHÍNH KHÁC: Không di chuyển hook.dll
và *.exe
sau khi cuộn đã được bật. Nếu bạn bắt đầu vmware_scroll_stop.exe
từ vị trí khác, nó sẽ không tải .dll
(tức là vô hiệu hóa cuộn).
CẬP NHẬT : Có một phiên bản nâng cao
(nó được tăng cường bởi Anthony Prieur, rất cảm ơn anh ấy!), Cũng hỗ trợ VMware Player. Một chương trình bắt nguồn từ đó được gọi là
VMWareTrackPadScroller
với giao diện người dùng đơn giản cũng có sẵn.
LƯU Ý: Thật không may, sẽ không có phiên bản hỗ trợ cuộn ngang, thật không may. Vấn đề là, có một ý tưởng giải pháp, nhưng tôi đã từ chối nó vì quá bẩn. Để hoàn thành nhiệm vụ, người ta cần phải móc (trong SynTPEnh.exe) API GetClassNameW () để sửa đổi tên của các lớp cửa sổ VMware (chúng là "VMware.GuestWindow" và "MKSEmbedded") hoặc wcsicmp () để luôn trả về "không bằng" khi một trong các đối số là một trong các chuỗi được đề cập. Tôi nghĩ rằng đó là giải pháp bẩn từ quan điểm hiệu suất, ít nhất (đó thực sự là một lập luận yếu vì hình phạt hiệu suất sẽ là tối thiểu). Dù sao, giải pháp hiện tại là chấp nhận được, tôi nghĩ, vì bạn không phải lúc nào cũng có thiết bị có khả năng cuộn ngang và tốt hơn là quen với việc sống mà không có sự xa xỉ đó hơn là phải chịu cảnh nghèo khổ. BTWShift+Vertical Scroll
để làm cuộn ngang.