C#(Windows窗体)输入输出键盘和鼠标状态

时间:2012-05-15 16:17:08

标签: c# input keyboard mouse

如何获得键盘和鼠标输入(当前按下了哪些按钮)&&还有如何发送输出(让鼠标点击另一个程序中的特定位置)。如果你还可以添加关于不同事物做什么以及为什么使用它们的评论会很棒:D 干杯! //丹尼尔

4 个答案:

答案 0 :(得分:1)

http://www.codeproject.com/Articles/28064/Global-Mouse-and-Keyboard-Library

这篇文章非常有帮助。它甚至包括一个很酷的宏录像机的代码。

答案 1 :(得分:1)

这可能不是一个非常好的解决方案,但是因为我(不明白如何使用其他建议)我选择了siple出路...我在获得xna框架后使用了using Microsoft.Xna.Framework.Input;参考,然后我继续前进,并与鼠标相同keyboardstate currentkeyboard = keyboard.getstate :)

答案 2 :(得分:0)

答案 3 :(得分:0)

.NET只有内置鼠标/键盘挂钩的.NET控件(窗体,按钮等),因此要以编程方式响应.NET控件之外的那些事件,您需要一个可以拦截鼠标和键盘活动的全局事件挂钩来自Windows的任何地方。

如何使用一个键盘/鼠标挂钩dll来执行您请求的功能(能够以编程方式响应全局鼠标/键盘事件):

global mouse/keyboard kooks in c#

下载“Gma.UserActivityMonitor.dll”

将此dll放在C:\ Windows \ System32

在您的项目中,包含一个引用(来自VS,添加...引用并浏览到dll)

在项目代码中,添加“using Gma.UserActivityMonitor;”

在您的代码中,声明这些事件使用者:

HookManager.MouseMove += HookManager_MouseMove;
HookManager.KeyPress += new KeyPressEventHandler(HookManager_KeyPress);

以下是鼠标/键盘事件发生时可以引发的一些方法存根:

private void HookManager_MouseMove(object sender, EventArgs e)
{   
}
private void HookManager_KeyPress(object sender, EventArgs e)
{   
}

希望这会有所帮助,当我需要在代码中使用全局鼠标和键盘事件时,我就是这样做的。