当我按W时,我需要使用鼠标左键单击执行操作:
我想将cruse移动到文件夹然后按w以打开文件夹
我想将cruse移动到一个文件中并按下w并拖动它并在我释放w时放下
我尝试使用windowsFrom并执行onKeyPress()
并调用onMouseDown()
但当然这意味着将在表单内调用onMouseDown()
函数,我需要的是一个系统行为,,,,我在VS2010上使用Windows 7 64,但我想如果它是所有窗口全局的东西
非常感谢帮助,,,
答案 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中它可以正常工作)。要在课外使用,只需将此标志设置为公共属性。