如何使用c#在windows上调用onmousedown方法

时间:2012-02-11 16:01:08

标签: c# mouseevent mouseover onmousedown

当我按W时,我需要使用鼠标左键单击执行操作:

我想将cruse移动到文件夹然后按w以打开文件夹

我想将cruse移动到一个文件中并按下w并拖动它并在我释放w时放下

我尝试使用windowsFrom并执行onKeyPress()并调用onMouseDown()但当然这意味着将在表单内调用onMouseDown()函数,我需要的是一个系统行为,,,,我在VS2010上使用Windows 7 64,但我想如果它是所有窗口全局的东西

非常感谢帮助,,,

2 个答案:

答案 0 :(得分:2)

您需要在外部应用程序中捕获Key Down事件的第一步是定义全局热键:

我建议您查看全局热键问题的一些答案:Best way to tackle global hotkey processing in c#?或此CodeProject文章:A Simple C# Global Low Level Keyboard Hook

然后,正如M.Babcock所说,你需要发送鼠标按下事件。他在评论中提供的链接很好。为了完整起见,我在这里重复一遍。

How to simulate Mouse Click in C#?

如果你真的需要发送键盘输入,你可以使用InputSimulator这是我所倡导的(并在过去使用过),它提供了一个非常灵活(可靠)的包装器,能够模拟键盘事件。

它封装了引擎盖下的SendInput,但抽象出了所有PInvoke调用和其他复杂性。

InputSimulator.SimulateKeyDown(VirtualKeyCode.CTRL);
InputSimulator.SimulateKeyPress(VirtualKeyCode.KEYS_V);
InputSimulator.SimulateKeyUp(VirtualKeyCode.CTRL);

InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.CONTROL, VirtualKeyCode.VK_C); 

答案 1 :(得分:0)

使用布尔标志进行单击,然后通过单击或按热键将其设置为两者。例如,此标志应在表单内声明,并且事件KeyDown和MouseDown将其设置为true,而KeyUp和MouseUp将其设置为false。对于您现在的所有操作,您可以使用此标志来验证点击。 (不确定它是否适用于Windows应用程序,在XNA中它可以正常工作)。要在课外使用,只需将此标志设置为公共属性。