Wow, sau một tấn nghiên cứu và những nỗ lực thất bại, tôi thực sự đã giải quyết điều này!
Vâng, chủ yếu là giải quyết nó - đó là chức năng, nhưng không phải không có nhược điểm.
Nhờ câu trả lời của @ JourneymanGeek và đặc biệt là bài đăng mà anh ấy liên kết, tôi đã có thể theo dõi khách hàng tiềm năng và cuối cùng phát hiện ra rằng trong số nhiều giao diện được thực hiện bởi Remote Desktop Client ActiveX, một trong số chúng hỗ trợ thuộc tính RelativeMouseMode ! Nghe có vẻ chính xác những gì tôi cần, nó sẽ buộc RDP hỗ trợ các chuyển động chuột tương đối!
Tuy nhiên, tôi đã lưu ý trên bài đăng Diễn đàn MSDN này rằng "RelativeMouseMode không được hỗ trợ trong các kịch bản RDP RDSH / RDVH và không nên được sử dụng", nhưng tôi nghĩ rằng nó không phải là một môi trường sản xuất thực sự và tôi vẫn ổn khi sử dụng tính năng không được hỗ trợ. Nó cũng được ghi chép kém, nhưng dường như tôi đã có thứ tôi cần - câu hỏi này trên StackOverflow cũng cho tôi hy vọng rằng nó có thể thực hiện được.
Vì vậy, tôi đã thiết lập để thực hiện một ứng dụng WinForms đơn giản để lưu trữ điều khiển ActiveX, với các thuộc tính giao diện "... Không an toàn".
Ngoại trừ khi nó bật ra, bởi "không được hỗ trợ", lần này Microsoft có nghĩa là "nó không hoạt động".
Chà, nếu có, đây sẽ là một câu hỏi SO, xin lỗi vì đã dẫn bạn đi (nhưng tôi nghĩ thật tốt khi được ghi lại ở đâu đó ...)
Tuy nhiên, không phải tất cả là vô ích, trong suốt quá trình đào sâu vào giao thức RDP, tôi đã xem xét Chuyển hướng USB RemoteFX - và nó trông giống như một ngõ cụt, vì các thiết bị đầu vào cơ bản (như chuột, bàn phím, máy in) bị chặn rõ ràng từ cơ chế chuyển hướng USB:
Theo mặc định, các thiết bị trong các danh mục nói trên có thể truy cập được trong phiên từ xa bằng cách sử dụng các phương thức chuyển hướng thiết bị cấp cao. Các phương pháp chuyển hướng này cho phép hiệu suất tối ưu và khả năng tương thích ngược của thiết bị trong phần lớn các tình huống của người dùng. Do đó, các thiết bị này không được cung cấp qua chuyển hướng USB RemoteFX.
Vâng, câu trả lời cuối cùng, như hóa ra, là có một cơ chế ghi đè lên khối này.
Bước 1: Kích hoạt tính năng chuyển hướng USB RemoteFX
Có một công phu tuyệt vời ở đây: http://windowsitpro.com/virtualization/q-how-do-i-enable-remotefx-usb-redirection . Về cơ bản, trên máy client, bạn sử dụng một trong hai chính sách địa phương hoặc Group Policy để thiết lập RemoteFX USB Device Redirection
để Enable
, và cho phép người sử dụng (hoặc chỉ cần quản trị viên) các quyền. Sau đó gpupdate /force
và khởi động lại.
Bước 2: Kích hoạt ghi đè chuyển hướng cho chuột.
Như bài viết MS KB này giải thích , bạn có thể đặt khóa đăng ký để bật một thiết bị cụ thể (hoặc loại thiết bị) cho Chuyển hướng USB.
Một lần nữa trên máy khách, dưới
HKEY_LOCAL_MACHINE \ PHẦN MỀM \ Chính sách \ Microsoft \ Windows NT \ Terminal Services \ Client \ USBSelectDeviceByInterfaces
bạn có thể thêm một giá trị chuỗi bằng mã định danh thiết bị.
Ví dụ, dưới khóa này tôi đã thêm giá trị chuỗi sau:
"GUID_DEVINTERFACE_MOUSE" = "{378DE44C-56EF-11D1-BC8C-00A0C91405DD}"
Tùy thuộc vào chuột của bạn, bạn có thể cần một mã định danh khác, vì vậy YMMV. Nhưng hãy bắt đầu với điều đó.
Bước 3: Đặt máy khách RDP để chuyển hướng chuột.
Như bài viết từ bước 1 đã nêu:
Khi được bật, hãy truy cập tab Tài nguyên cục bộ, nhấp vào Khác trong phần Tài nguyên và thiết bị cục bộ và bạn sẽ thấy cài đặt khác hỗ trợ các thiết bị USB RemoteFX mới. Bạn có thể sử dụng cài đặt này để ánh xạ qua nhiều loại phần cứng USB mà bạn không thể với chuyển hướng USB RDP của vanilla, như hiển thị bên dưới.
Theo đó bạn sẽ thấy một mục cho chuột của bạn; nó có thể là một chút mơ hồ như:
Chọn chuột của bạn (hoặc mục thích hợp khác).
Đó là nó! Bây giờ bạn có một con chuột phần cứng được gắn "trực tiếp" vào máy ảo của mình, cho phép các trò chơi 3D lấy ra các chuyển động chuột tương đối trực tiếp từ trình điều khiển chuột (-ish ..)
Tuy nhiên, như đã nêu, có một số nhược điểm.
Chuột được chuyển hướng đến VM của RemoteFX - nói cách khác, máy khách không còn chuột , ít nhất là trong khi phiên Remote Desktop đang mở.
Một giải pháp khả thi sẽ là gắn một con chuột thứ 2 và chỉ chuyển hướng một trong số chúng. (Tôi vẫn chưa thử cái này, nhưng nó sẽ hoạt động tốt).
Vì một số lý do, khi chuyển hướng chuột không trực tiếp hiển thị một con trỏ trong phiên từ xa. Mặc dù nó vẫn hoạt động, nhưng nó hơi khó hiểu khi nhắm vào con chuột của bạn.
Một giải pháp đơn giản là bật Chuột Trails, với chiều dài quay xuống hết cỡ.
Điều này sẽ có vị trí chuột hiển thị, nhưng nó hơi chậm.
Nhìn chung, trong khi giải pháp này hoạt động tốt, chuột vẫn hơi chậm và chậm chạp.
Bạn có thể bật lên tốc độ chuột, chơi với con trỏ chính xác (đôi khi biến nó OFF sẽ thực sự giúp đỡ với điều này), và thậm chí quay vòng với các thiết lập tăng tốc chuột registry dưới HKEY_CURRENT_USER\Control Panel\Mouse
( Mouse Speed
, MouseThreshold1
và MouseThreshold2
tương ứng).
Điều này sẽ giúp giảm thiểu vấn đề, nhưng không thực sự làm cho nó biến mất.
Vì vậy, về tổng thể, điều này có thể làm cho ngay cả các trò chơi 3D rất dễ chơi - đối với trò chơi thông thường, tiếc là không tuyệt vời khi chơi trò chơi co giật. (Mặc dù nếu bạn cần, bạn chỉ có thể khởi động kim loại thẳng vào VHD đó và có cả hai tùy chọn ....)