Windows鼠标 - 如果硬件被移除或有故障,软鼠标?

时间:2017-06-12 02:27:53

标签: c# mouse

我有一个远程系统,它使用鼠标和键盘来处理事件,主要是电子邮件数据。

我一次又一次地松开了鼠标 - 用户拔出

我的应用程序是用C#编程的。

我看过Legacy Mouse Drivers,但是Windows 10似乎不再支持这种老技术了。

我怎么能欺骗窗户认为鼠标仍然连接并正常工作?或者有解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:2)

“愚弄”鼠标可能需要从操作系统级别而不是应用程序完成。幸运的是,有一种方法无需编程

Windows 10(可能是Windows的早期版本)在控制面板中设置了一个名为轻松访问鼠标设置的设置。在此页面上,您将找到一个标题为使用数字小键盘在屏幕上移动鼠标的设置,启用后将完全按照其说明进行操作。

enter image description here

Windows应用程序完全没有注意到鼠标悬停和点击实际上是由键盘而不是常规鼠标发起的。

答案 1 :(得分:0)

MickyD的回答非常好,但并不是很好。我不得不欺骗Windows看到鼠标移动:

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);

private const uint MOUSEEVENTF_ABSOLUTE = 0x8000;
private const uint MOUSEEVENTF_MOVE = 0x0001;

uint dest_x = (uint)(coordinate.X * 65535 / System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width);
uint dest_y = (uint)(coordinate.Y * 65535 / System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height);

mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE, dest_x, dest_y, 0, 0);

注意此功能已被取代。改为使用SendInput。

请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx

到目前为止,即使重新启动,这仍然有效!

我希望这可以帮助其他人!

相关问题