Tag: 键盘

.Net KeyEventArgs返回vs enter

在ac#.net应用程序中有这个: string key = e.KeyCode.ToString(); 在.net 1.1键=“输入” 在.net 3.5 key =“return” 我的问题是他们为什么不同?

F10钥匙没有被抓住

我有一个Windows.Form,并覆盖ProcessCmdKey。 但是,这适用于除F10之外的所有F键。 我正在尝试搜索当我在表单上按F10时未调用ProcessCmdKey的原因。 有人可以告诉我如何找到原因吗? 最诚挚的问候,托马斯

如何从WPF KeyDown事件中获取普通字符?

我想要来自WPF KeyDown事件的e.Key属性传递的ASCII字符。

处理多个按键并检测键盘事件

我正在制作一个简单的游戏,我使用以下代码来检测光标键: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (Connection == null || Connection.IsOpen == false) return true; Thread.Sleep(SleepTime); switch (keyData) { case Keys.Up: GoForward(); return true; case Keys.Right: GoRight(); return true; case Keys.Left: GoLeft(); return true; case Keys.Down: GoBackward(); return true; case Keys.Space: Beep(); return true; } return base.ProcessCmdKey(ref msg, keyData); } […]

在屏幕键盘显示时调整winrt页面的大小

我有一个Windows 8.1 C#应用程序,它显示了一个带有相当大的文本框的页面(几乎涵盖了所有页面;它是一个写作应用程序)。 当屏幕键盘出现时,它覆盖了文本框的一半。 我想调整文本框(甚至整个页面)的大小,以便它不被键盘覆盖。 我现在正在使用静态InputPane并订阅其显示和隐藏事件来实现此目的。 然后我尝试使用eventargs中提供的带有方框的矩形来更改文本框的边距。 这样可行,但由于我的页面仍然是屏幕的高度,因此它将其向下滚动到底部。 public MainPage() { var inputPane = InputPane.GetForCurrentView(); inputPane.Showing += this.InputPaneShowing; inputPane.Hiding += this.InputPaneHiding; } void InputPaneHiding(InputPane sender, InputPaneVisibilityEventArgs args) { this.EditBox.Margin = new Thickness(); } private void InputPaneShowing(InputPane sender, InputPaneVisibilityEventArgs args) { this.EditBox.Margin = new Thickness(0, 0, 0, args.OccludedRect.Height); } 在尝试这一点时,我感觉这不是理想的解决方案,但我没有更好的主意。 理想情况下,我认为当你打开应用程序时,它会像垂直分割一样,但是底部的键盘是水平的,而应用程序只是键盘上方的可用尺寸。 知道这是否可行?

用C#更改按下的键

嘿,我正在尝试用C#编写一个程序来跟踪某些键的按下(使用键盘钩子),然后发送不同的键。 例如,当我按下A键时,它将发送Q键。 我使用http://www.codeproject.com/KB/cs/CSLLKeyboardHook.aspx这个用于我的钩子并尝试使用SendKeys函数,但是我得到一个关于垃圾收集器的例外,它破坏了钩子类中的一些对象。

WPF – 发送密钥Redux

所以,我正在使用硬编码的第三方wpf网格控件,只接受某些击键来执行快捷反应,其中一个是Shift-Tab。 但是,我的用户群用于点击箭头和向下箭头并告诉他们“不”现在不是一个选项。 所以我认为我唯一的选择是截取预览键并发送不同的击键组合。 现在,我使用以下代码在此处发送Tab,当用户按下向下箭头时: if (e.Key == Key.Down) { e.Handled = true; KeyEventArgs eInsertBack = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, Key.Tab); eInsertBack.RoutedEvent = UIElement.KeyDownEvent; InputManager.Current.ProcessInput(eInsertBack); } 但是,这种方法的局限性在于您似乎无法模拟按下Shift键? WPF似乎看看Keyboard.Modifiers能够“读取”Shift或Ctrl,但似乎没有任何工具以编程方式设置Keyboard.Modifiers。 有帮助吗?

使用驱动程序在Windows登录屏幕中模拟输入

我正在编写一个开源的远程桌面工具,类似于VNC和TeamViewer。 我注意到TeamViewer继续在Switch Users或Workstation Locked屏幕上捕获屏幕 – 并允许远程用户输入密码并解锁工作站。 我想做同样的事情。 我读了: 更新:在Windows登录屏幕上与用户交互 https://stackoverflow.com/questions/9485530/capturing-image-during-windows-logon-invalid-password 将命令按钮添加到Windows登录屏幕 从Windows登录屏幕挂钩热键 https://stackoverflow.com/questions/7183241/launch-windows-on-screen-keyboard-at-logon-screen-on-win7 模拟Keypress的驱动程序 通过服务删除Windows登录屏幕 如何在Windows 7登录屏幕中捕获密钥? 在Windows XP中使用C#在登录屏幕上显示窗口 从这些post中,我收集了在隔离会话中模拟输入肯定不是对SendInput()的简单调用。 但是有可能使用驱动程序(我相信它特别是键盘filter驱动程序,但我不确定)? 如果是这样,我正在考虑在C#中编写一个服务(以便它在用户会话之外运行),它与拦截驱动程序交互以模拟按键。 回答:“为什么你不试试呢?”,对于我来说,没有一个用于拦截的.NET包装器来测试这样的服务,所以如果普遍的共识得出结论认为这是不可能的,那么我不想花时间编写.NET包装器。 我发现了一个名为Interception的键盘驱动程序(将来会发布这个驱动程序) 。 您可以在此处直接找到源(源只是围绕实际内核驱动程序的C通信API包装器) 。 我有另一个问题……我对哪些文件构成驱动程序感到困惑。 他用C编程的拦截DLL库编译成.DLL。 但是不是某些.sys扩展的驱动程序 – 如何将该拦截DLL编译成实际的驱动程序 – 然后你将如何安装它? 编辑: .NET包装器确实存在 。 当我按下’x’键时,我修改了示例控制台应用程序以键入我的整个密码,并且它成功运行 – 不仅在工作站锁定屏幕上,而且在Windows登录屏幕上。 所以它有效。 编辑: 这个键盘驱动程序的C#包装器库在这里 。

键盘上的特殊键

有没有办法让我的程序能够“触发”键盘上的特殊键,例如媒体键(播放,暂停,下一个等等)。 我正在尝试创建一个执行这些function的应用程序,一种简单的方法是模拟按下的键。 如果它更容易,这是一个个人项目,所以我不介意解决方案是非通用的和/或不适用于所有键盘。 我环顾四周,我认为SendKey可能是一种方法,但我不知道这些特殊键的扫描码是什么。

确定哪个键盘正在发送击键

我有2个键盘连接到我的机器上(一个在PS / 2上,另一个在USB上)。 我如何确定哪个键盘在C#中发送击键?