ใช้ Synaptics Touchpad Scroll ใน VMware Guest


17

ฉันต้องการใช้ Synaptics "Two-Finger Scrolling" ในแขกของ VMware

มันทำงานได้ตามที่คาดหวังบนโฮสต์ แต่ VMware ดูเหมือนจะไม่สนับสนุน เคอร์เซอร์ของเมาส์จะเปลี่ยนเพื่อระบุว่าการเลื่อนทำงานอยู่ แต่แขกของ VMware จะไม่ตอบสนอง

  • VMware Workstation 7.1
  • โฮสต์และระบบปฏิบัติการทั่วไป: Windows 7 (64 บิต)
  • ไดรเวอร์ Synaptics 15.0.9.0
  • อุปกรณ์แสดงเป็น "Synaptics LuxPad V7.4"

เป็นไปได้ไหมที่จะทำให้งานนี้เป็นจริง? (เช่นแก้ไข. vmx เปลี่ยนตัวเลือก Synaptics หรือด้วยไดรเวอร์ที่เลียนแบบ "การเลื่อนล้อเลื่อนของเมาส์")

อัปเดต: ฉันได้ลองหลายตัวเลือกในไดรเวอร์ Synaptics แต่การเปลี่ยนแปลงเพียงอย่างเดียวคือมันแสดงเคอร์เซอร์ของเมาส์ที่แตกต่างกันเมื่อพยายามเลื่อน


ตรวจสอบโซลูชันของฉัน @ superuser.com/a/439474/106787
mreq

@hcris พิจารณาตรวจสอบคำตอบของฉันเป็นที่ถูกต้องโปรด :-)
แอนดรู Zabavnikov

คำตอบ:


22

โอเคดังนั้นฉันจึงทำการวิจัยและจัดการให้ประสบความสำเร็จ

หลังจากความคิดบางอย่างฉันก็มาถึงข้อสรุปฉันไม่ทราบวิธีการทำงาน :-) มันแค่! :-)

ก่อนหน้านี้ใน «มีประโยชน์ :) สนุก »:

กล่าวโดยย่อคือทัชแพด Synaptics ส่ง ( SendMessage()หรือPostMessage()ไม่ต้องระบุว่า) ข้อความหน้าต่างด้านขวา( WM_MOUSEWHEEL) ไปที่หน้าต่าง VMware แต่สิ่งที่ควรทำคือใช้งานจริงโดยSendInput()จำลองเมาส์จริง มันดูเหมือนว่าจะมีตัวเลือกในการควบคุมพฤติกรรมของคนขับ (หรืออย่างแม่นยำมากขึ้นโปรแกรมในโหมดผู้ใช้SynTPEnh.exe) tp4table.datกับแฟ้ม น่าเสียดายที่ตัวเลือกนี้ไม่ได้เปิดใช้งานในไดรเวอร์ของฉัน (แม้ว่าจะมีสตริงดังกล่าวในการปฏิบัติการ)

ดังนั้นฉันจึงทำสิ่งต่อไปนี้ - เพียงแค่ฉีด.dllเข้าไปในกระบวนการหน้าต่างของ VMware (ฉันหวังว่ามันจะปลอดภัยและหวังว่ามันจะไม่ใช่กระบวนการเดียวกับที่เรียกใช้ VM), ขั้นตอนหน้าต่าง subclassed (หมายถึงข้อความหน้าต่าง intercepted) และแปล "ผิด" SendInput().

นอกจากนี้ก็จะได้รับการตั้งข้อสังเกตว่าการแก้ไขดังต่อไปนี้มีค่าใช้แม้จะมีวิธีการแก้ปัญหาของฉัน: http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/

ดังนั้นซอร์สโค้ดและไฟล์ปฏิบัติการ (รองรับเฉพาะเวิร์กสเตชันอ่านเพิ่มเติมสำหรับ Player ใน "UPDATE") - ถามในความคิดเห็นหากคุณไม่พบอะไร - อยู่ในhttps://www.dropbox.com/s/ gucmyo35heha6g2 / vmware_scroll.zip? ดล = 0

หมายเหตุสำคัญ:รันไฟล์เรียกทำงานที่เกี่ยวข้องเมื่อ VM กำลังทำงาน

หมายเหตุสำคัญอื่น ๆ :อย่าขยับhook.dllและ*.exeหลังจากเปิดใช้งานการเลื่อนแล้ว หากคุณเริ่มต้นvmware_scroll_stop.exeจากที่อื่นมันจะไม่ยกเลิกการโหลด.dll(เช่นปิดใช้งานการเลื่อน)

UPDATE : มีรุ่นที่ ได้รับการปรับปรุง (ปรับปรุงโดย Anthony Prieur ขอบคุณมากสำหรับเขา!) ซึ่งรองรับ VMware Player โปรแกรมที่ได้รับมาจากที่เรียกว่า VMWareTrackPadScroller พร้อมส่วนต่อประสานผู้ใช้แบบง่ายก็มีให้เช่นกัน

หมายเหตุ:จะไม่มีรุ่นที่รองรับการเลื่อนแนวนอนอย่างน่าเสียดาย เป็นสิ่งที่มีความคิดทางออก แต่ฉันปฏิเสธมันสกปรกเกินไป เมื่อต้องการทำงานให้สำเร็จหนึ่งต้องขอ (ใน SynTPEnh.exe) GetClassNameW () API เพื่อแก้ไขชื่อคลาสหน้าต่างของ VMware (เป็น "VMware.GuestWindow" และ "MKSEmbedded") หรือ wcsicmp () เสมอเพื่อกลับ "ไม่เท่ากัน" เมื่อหนึ่งในการโต้แย้งเป็นหนึ่งในสตริงที่กล่าวถึง ฉันคิดว่ามันเป็นวิธีการแก้ปัญหาที่สกปรกจากมุมมองของประสิทธิภาพอย่างน้อย (นั่นเป็นข้อโต้แย้งที่อ่อนแอเนื่องจากการปรับประสิทธิภาพจะมีค่าน้อยที่สุด) อย่างไรก็ตามวิธีการแก้ปัญหาในปัจจุบันเป็นที่ยอมรับได้ฉันคิดว่าเนื่องจากคุณไม่ได้มีอุปกรณ์ที่มีความสามารถในการเลื่อนแนวนอนเสมอไปและมันจะดีกว่าถ้าคุณคุ้นเคยกับการใช้ชีวิตโดยปราศจากความหรูหรานั้น BTW,Shift+Vertical Scroll เพื่อเลื่อนแนวนอน


2
เพิ่งอัปเดตมัน!
Andrew Zabavnikov

3
สิ่งนี้สมควรได้รับการโหวต!
xiamx

@xiamx มันเหมาะกับคุณหรือเปล่า ฉันเพิ่งได้รับข้อเสนอแนะว่าไม่ได้ผลกับ Player (อาจต้องมีการแก้ไขเล็กน้อย) อาจเป็นคำถามของการใช้บล็อกการ
Andrew Zabavnikov

ใช่มันทำงานได้อย่างสมบูรณ์ และยังใช้งานได้กับอุปกรณ์อินพุตอื่น ๆ ที่มีไดรเวอร์ของ userland (logitech T650) แม้ว่าฉันจะคอมไพล์ใหม่ด้วยตัวเองเนื่องจากฉันมีชุดเครื่องมือ v110 เท่านั้น คุณสามารถใส่มันบน GitHub ได้หรือไม่? ดังนั้นผู้ที่ต้องการให้มันทำงานกับ Player สามารถแก้ไขได้ด้วยตัวเอง
xiamx

@xiamx ตกลงฉันจะทำมันในอีกไม่กี่วัน ไม่ต้องกังวลกับ GitHub ในขณะที่ทำงานกับเวอร์ชันที่รองรับการเลื่อนในแนวนอน
Andrew Zabavnikov

7

มีหลายคนที่บ่นเกี่ยวกับปัญหานี้และส่งคำขอคุณสมบัติไปที่ Synaptics

ฉันได้พบรายงานความสำเร็จหนึ่งที่นี่ แม้ว่าจะเป็นสำหรับ Ubuntu แต่ดูเหมือนว่าจะแสดงให้เห็นว่ามีวิธีแก้ไขปัญหานี้

ฉันขอแนะนำให้คุณลองใช้วิธีแก้ปัญหาที่อธิบายไว้ในบทความด้านล่างสำหรับทั้งโฮสต์และแขก:
แก้ไขปัญหาการเลื่อน Firefox ด้วย Dell Synaptics Touchpad

บทความกล่าวถึงการแก้ไขที่สอง:

  1. ลบตัวเลือกการเลื่อนแบบวงกลมออกจากคุณสมบัติของเมาส์
  2. แทนที่ไดรเวอร์ทัชแพดของ Dell ด้วยไดรเวอร์ Synaptics

ตามที่บทความบอกไว้สำหรับบทความที่สอง:

คุณสามารถลบไดรเวอร์ทัชแพดของ Dell และติดตั้งซินแนปติกส์ทั่วไปซึ่งทำงานได้ดีกว่าสำหรับผู้คนจำนวนมาก - แต่พวกเขาขาดคุณสมบัติพิเศษบางอย่างของเดลล์ ตราบใดที่ทัชแพดทำในสิ่งที่คุณคาดหวังมันก็คุ้มค่า

ฉันแนะนำให้สร้างจุดคืนค่าระบบก่อนที่จะเปลี่ยนไดรเวอร์ในกรณี
คุณสามารถย้อนกลับไดรเวอร์จาก Device Manager ได้ตลอดเวลา

EDIT1

บางคนรายงานความสำเร็จเมื่อใช้ไดรเวอร์ ALPS มากกว่า Synaptics
ตามที่ไดร์เวอร์ Alps Touchpadกล่าวไว้สำหรับ Windows 7 :

แล็ปท็อปบางรุ่นของ Dell ไม่มีทัชแพดจาก Synaptics พวกเขามีทัชแพดของเทือกเขาแอลป์ หากคุณไม่แน่ใจเกี่ยวกับชนิดของทัชแพดที่คุณมีโปรดดูโพสต์นี้เกี่ยวกับการระบุรุ่นที่ถูกต้อง

เมื่อฉันช่วยให้ผู้ใช้อัพเกรด Inspiron 1420 เป็น Windows 7 ฉันใช้ไดรเวอร์สำหรับ Vista นี่คือ ลิงค์สำหรับดาวน์โหลด ไดรเวอร์นี้ใช้สำหรับ 32 บิตเท่านั้น หากไม่ได้ผลสำหรับคุณคุณยังสามารถลองไดร์เวอร์สำหรับ Windows 7 นี่คือ การเชื่อมโยง ลิงค์ที่สองให้ทั้งไดรเวอร์ 32 บิตและ 64 บิต

EDIT2

หัวข้อต่อไปนี้มีข้อมูลที่น่าสนใจ:
ปัญหาเกี่ยวกับ Synaptics touchpad ไม่สามารถเลื่อนใน Guest OS (Windows XP)

รายการสุดท้ายในหัวข้อพูดว่า:

ฉันมีเพื่อนร่วมงานหลายคนที่ต้องการใช้ Vmware บนแล็ปท็อปเพื่อการสนับสนุน มีบางคนลองใช้ Virtualbox ของ Sun และบางคนกำลังลองใช้ Vmware การเลื่อนทำงานได้ดีกับ Virtualbox แต่ความมุ่งมั่นของ SUN ต่อผลิตภัณฑ์ประเภทนี้ได้เผาผลาญผู้คนในอดีต

ดูเหมือนว่า VMware จะไม่ค่อยสนใจเรื่อง Synaptics มากนักและอุปกรณ์ของคุณก็ไม่รองรับเช่นกัน แม้ว่าสิ่งนี้จะไม่ตอบคำถามของคุณโดยตรง แต่ฉันคิดว่าคุณจะต้องย้ายไปที่ Virtualbox เพื่อให้ทัชแพดทำงานได้

เพื่อทำให้หวานยาให้ดูวิธีการแปลง VMware เพื่อ Virtualbox


ฉันมีไดรเวอร์ Synaptics แล้ว (ดูด้านบน) บทความนี้ใช้สำหรับการเลื่อนด้วยนิ้วเดียว (ซึ่งยังใช้งานไม่ได้และปิดการใช้งานแบบวงกลม / Chiral ไม่มีผล) แต่ฉันจะมีความสุขถ้าฉันสามารถใช้ตัวเลือกอย่างใดอย่างหนึ่ง การตั้งค่าของ Ubuntu นั้นดูดี แต่ฉันจะใช้กับ Windows ได้อย่างไร
laktak

@chris: โพสต์ส่วนใหญ่ที่ฉันได้พบบอกว่า VMware เพียงแค่ไม่สนับสนุน Synaptics Touchpad เป็นอุปกรณ์ดังนั้นสิ่งที่คุณถามเป็นไปไม่ได้ ฉันได้แก้ไขวิธีต่อไปแล้วซึ่งใช้งานได้กับบางคน หากไม่สามารถใช้งานได้คุณสามารถลองใช้ผลิตภัณฑ์ VM อื่นที่ไม่ใช่ VMware
harrymc

@harrymc ฉันค่อนข้างแน่ใจว่ามันเป็นอุปกรณ์ Synaptics แต่ฉันไม่พบมันใน pcidatabase.com รหัส HW คือ "ACPI \ DLL02EF" และ "* DLL02EF"
laktak

ตกลงฉันอาจจะถามหาสิ่งที่เป็นไปไม่ได้ แต่สิ่งนี้ทำให้ฉันรำคาญเป็นเวลานาน ฉันหวังว่าจะมีวิธีที่จะทำให้เรื่องนี้ทำงานแบบเดียวกับที่ล้อเลื่อนทำงานอยู่ (อาจมีการเลียนแบบ) ในกรณีใด ๆ หากไม่มีวิธีแก้ปัญหาฉันจะมอบรางวัลให้คุณสำหรับความช่วยเหลือของคุณ!
laktak

@chris: ไม่มีอะไรจะเสียคุณลองใช้ ALPS driver หรือเปล่า? ดูเพิ่มเติมไดรเวอร์นี้drivercure.com/driver/...และsupport.dell.com/support/downloads/...
harrymc


3

วิธีนี้ดูดี

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

ฉันได้ทำการทดสอบแล้วและมันมีตัวเลือกมากมายสำหรับกำหนดค่าการสัมผัสและเลื่อนรูป 1,2,3 ตัว


ขอบคุณ ฉันหวังว่านี่จะช่วยคนอื่นได้เมื่อฉันย้ายไปใช้ MacBook กับ VMware Fusion ที่ทุกอย่างทำงานนอกกรอบ (และมันมี trackpad ที่ดีกว่าด้วย)
laktak

นี่คือทางออกที่เร็วที่สุดสำหรับฉัน ติดตั้งแล้วและใช้งานได้!
Eran Medan

1

การเลื่อนด้วยสองนิ้วของ Synaptics ทำงานร่วมกับโหมด Unity ของ VMware (Player> Unity) ฉันใช้สิ่งนี้เพื่อเรียกใช้ VS2013 ใน VMware Player พร้อม Windows 7 x64 เป็นทั้งระบบโฮสต์และระบบปฏิบัติการทั่วไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.