2017-06-12 14 views
0

我有一个远程系统,使用鼠标和键盘来操作事件,主要是电子邮件数据。Windows鼠标 - 如果硬件被移除或故障,软鼠标?

现在又一遍,我松开鼠标 - 用户在C#中拔下

我的应用程序编程。

我看过Legacy鼠标驱动程序,但Windows 10似乎不再支持这种旧技术。

我如何欺骗窗户进入认为有一个鼠标仍然连接和工作?或者是否有解决此问题的方法?

回答

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

到目前为止,这是工作,即使重新开机后!

我希望这可以帮助别人!

2

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

的Windows 10(也许是之前的Windows版本)在控制面板称为轻松的访问鼠标设置的设置。在此页面上,您可以找到一个标题为的设置。使用数字小键盘在屏幕周围移动鼠标,启用时就会完全按照说明操作。

enter image description here

Windows应用程序是完全无视该鼠标悬停和点击实际上是由键盘,而不是一个普通的鼠标策动。

+0

这工作,直到重新启动。重新启动后,没有鼠标指针/光标 - 对不起,我不得不取消标记为答案,因为它不是完整的解决方案,虽然是一个很好的解决方案 - 谢谢! –

+0

@RustyNail所以重新启动后重新启用它。完成任务 – MickyD

+0

只有通过再次插入鼠标才能实现这一点,但其他方式无法正常工作。没有鼠标,没有指针/光标,没有在屏幕上移动鼠标。 –