Tag: keyboard events

模拟ctrl键向下事件和ctrl键向上事件后,Ctrl键保持按下状态

我有一个小程序,使用系统keybd_event模拟ctr + c & ctr + v (复制和粘贴)事件。 问题是程序运行后,计算机继续按下ctrl键,然后 – 如果我键入它选择整个文档,如果我滚动鼠标滚轮它会改变文本方面,等等。不仅在Visual Studio编辑器中,而且在程序以Word等运行时打开的任何其他程序。这是我的代码: //The system keyboard event. [System.Runtime.InteropServices.DllImport(“user32.dll”, SetLastError = true)] static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag public const int VK_LCONTROL = 0xA2; […]

windows phone 8.1 swype键盘事件捕获

更新[2014年7月16日]:问题在技术上是不正确的。 阅读答案以获取更多详细信息。 我试图在到达我的文本框之前捕获文本。 我发现了以下事实: KeyDown , KeyUp事件会告诉你什么是virtualKey被按下而不是字符!! CoreWindow.CharacterReceived将捕获角色但是这个 事件不是特定于TextBox的,它会告诉你角色 在它到达textBox之后。 现在我的问题是: 任何人都可以告诉我如何在Windows Phone 8.1上捕获Swype键盘的事件? 请注意: 1-我试图在TextBox.Paste中捕获它,但它失败了:( 2-事件textBox.textChanged()不是我想要的,因为键盘完成后事件触发,并且此事件(textChanged)将在keyDown , keyUp , CharacterReceived之后触发,无论文本是如何输入的。

将Windows密钥按键发送到应用程序

可能重复: 如何检测当前按下的键? (编辑:对于它的价值,这不是重复……不确定为什么它被投票如此) 我有一个小型计时器应用程序,我们在办公室使用它来跟踪项目花费的时间。 有一个开始和停止按钮,一个项目和任务字段。 当我们继续rest,午餐和其他事情时,我们停止该项目的计时器,然后重新启动它。 这是一个重复性的任务,通常涉及从其他几个窗口后面挖出窗口,然后在rest后将窗口挖出。 我想要做的是将WindowKey + W分配给工作计时器应用程序,让它不仅将计时器应用程序放在前面并将其聚焦,而且还让它切换启动/停止。 我尝试了一些搜索,但我似乎无法将示例缩小到我想要的范围。 我知道你可以打开Windows快捷方式的属性并分配一个快捷键来启动一个程序,并且(我猜?)如果你已经打开了该应用程序并且它被设置为只允许一个程序实例将该计划带到前面??? 也许.. 无论如何..但该方法不会接受WindowsKey作为有效的密钥组合。 而且我不知道它是否可以某种方式将该关键组合传递给该程序。 我感谢任何帮助或方向! 编辑 – 回答更新 谢谢你@huadianz的回答! 我将您的代码转换为VB: Public Const MOD_WIN As Integer = &H8 Public Const KEY_W As Integer = &H57 _ Public Shared Function RegisterHotKey(hWnd As IntPtr, id As Integer, fsModifiers As Integer, vlc As Integer) As Boolean End Function […]

keybd_event需要KEYEVENTF_EXTENDEDKEY说明

在文档中它说: KEYEVENTF_EXTENDEDKEY (0x0001):如果指定,则扫描代码前面有一个值为0xE0(224)的前缀字节。 有人能解释这意味着什么吗? 这有什么区别: keybd_event(RIGHT, 0, 0, 0); keybd_event(RIGHT, 0, 2, 0); 还有这个: keybd_event(RIGHT, 0, 1 | 0, 0); keybd_event(RIGHT, 0, 1 | 2, 0); 因为当我执行这段代码时,我看不出有什么区别? 另外,什么是“字节bScan”? 在描述中它是:密钥的硬件扫描代码。 那意味着什么?

KeyDown事件不会从网格中引发

这里我有一个带网格的示例窗口。 我需要在按下按键时捕获事件。 但是当我点击网格区域然后按键时它不会升起。 它仅在Textbox聚焦时才有效。 我知道如果我从Window捕获它会有效。 但我有其他应用程序几乎没有用户控件,我需要从不同的应用程序捕获它。 我尝试为Window设置Focusable.false,为Grid设置为true,但它没有帮助。 有解决方案?

发送鼠标和键盘事件

我正在开发一个必须将一些键或鼠标事件发送到活动窗口的应用程序。 我正在使用这个类: 鼠标 using System.Runtime.InteropServices; using System.Windows.Forms; namespace Mouse { public static class VirtualMouse { // import the necessary API function so .NET can // marshall parameters appropriately [DllImport(“user32.dll”)] static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo); // constants for the mouse_input() API function private const int MOUSEEVENTF_MOVE = 0x0001; […]