0

可能重复:
在 C# 中获取鼠标位置

是否可以在其中一个端口上模拟外围设备,例如鼠标,并编写一个可以将点击发送到显示器上的 (x,y) 的程序?

4

1 回答 1

0

是的你可以。几年前我为 NUnitForms 做了一个 MouseController。查看http://nunitforms.sourceforge.net/

鼠标控制器的源代码在http://nunitforms.svn.sourceforge.net/viewvc/nunitforms/trunk/nunitforms/source/NUnitForms/MouseController.cs?revision=32&view=markup

关键是使用Win32函数SendInput;http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx

SendInput 函数将联合作为输入,C# 不容易支持。我所做的是定义两个函数 SendMouseInput 和 SendKeyboardInput 指定不同的输入结构但调用相同的函数。

[DllImport("user32.dll", EntryPoint="SendInput", SetLastError=true)]
internal static extern int SendMouseInput(int cInputs, ref MOUSEINPUT pInputs, int cbSize);

[DllImport("user32.dll", EntryPoint="SendInput", SetLastError=true)]
internal static extern int SendKeyboardInput(int cInputs, ref KEYBDINPUT pInputs, int cbSize);
于 2012-07-18T04:26:59.983 回答