我有一个系统,其中有多个键盘,我真的需要知道击键来自哪个键盘。解释设置:我有一台普通的PC和USB键盘我有一个带有一些硬键的外部VGA屏幕硬键被映射为标准USB键盘,发送有限数量的键码(F1、F2、Return、+和-)我有一个低级Hook(在C#中,但实际上调用了Win32功能),即使我的应用程序未获得焦点,它也能够处理输入。问题是,当使用普通键盘时,一些映射的键代码被外部屏幕上驱动的应用程序拾取。外部屏幕发送并用于确认的按键之一是VK_RETURN。除非我可以识别“设备”并对其进行过滤,否则用户可能正在执行操作并在屏幕上确认它们,他们甚至都没有看。我如何知道哪个键盘负责按键操作?
我正在使用C#创建一个Windows应用程序,点击GUI上的按钮时,应该会显示屏幕键盘。如有任何帮助,将不胜感激。谢谢。此外,由于我主要在我的应用程序的其余部分使用EmguCv库,我们可以简单地使用它来调用屏幕键盘吗? 最佳答案 在C#中,您可以简单地编写以下代码行来调用Windows自带的屏幕键盘应用程序:System.Diagnostics.Process.Start("osk.exe");您可以找到更多帮助here. 关于c#-C#中使用按钮调用屏幕键盘,我们在StackOverf
我正在使用C#开发适用于Windows8的应用程序,一件非常烦人的事情是触摸键盘有时会停留在屏幕上,即使所有文本框都已失去焦点。我读了文章keyboarddismissallogicwhitepaper,这解释了当从一个控件切换到另一个控件时,即使控件可能不接受键盘输入,键盘也可以保持打开状态。这就是我的情况,因为我的所有内容都托管在GridView或ListView中。当用户点击屏幕上的任何项目时,点击将落在这些控件上。这很烦人,因为键盘占据了半个屏幕,而且无法关闭键盘。我试过将文本框设置为禁用,但没有效果。移除键盘的唯一方法是将焦点设置在按钮上,这非常hacky。我想我需要用“Au
我正在用C#编写一个在后台运行的程序,它允许用户使用热键在事件窗口中切换键盘布局。(Windows只支持CTRL+SHIFT和ALT+SHIFT)我正在使用RegisterHotKey来捕捉热键,它工作正常。问题是我找不到任何API来更改聚焦窗口的键盘布局。ActivateKeyboardLayout和LoadKeyboardLayout只能改变调用线程的键盘布局。有谁知道如何更改不同线程的键盘布局(语言栏的方式)? 最佳答案 PostMessage(handle,WM_INPUTLANGCHANGEREQUEST,0,LoadKe
好的,基本上我希望能够检索键盘文本。就像在文本字段中输入文本之类的。我只是在为Windows编写游戏。我忽略了使用Guide.BeginShowKeyboardInput,因为它打破了独立游戏的感觉,而且Guide总是显示XBOX按钮这一事实对我来说也不合适。是的,这是最简单的方法,但我不喜欢它。接下来我尝试使用System.Windows.Forms.NativeWindow。我创建了一个继承自它的类,并将游戏窗口句柄传递给它,实现了WndProc函数以捕获WM_CHAR(或WM_KEYDOWN),尽管WndProc被调用以获取其他消息,WM_CHAR和WM_KEYDOWN从未这样做
我有一个在后台运行的应用程序(最小化/任务栏)。我需要能够检测鼠标事件(点击、移动)以及键盘事件。考虑到我的窗口没有“聚焦”的限制,最好的方法是什么? 最佳答案 看看这个图书馆globalmousekeyhook.它是100%托管的c#代码,用于安装全局鼠标和键盘Hook。它将低级Hook包装到常见的Windows窗体键盘和鼠标事件中。 关于c#-捕获表单外的鼠标/键盘事件(在后台运行的应用程序),我们在StackOverflow上找到一个类似的问题: htt
我正在尝试延迟从WinRT中的键盘事件调用的方法(示例中的SubmitQuery())的处理,直到一段时间内(在本例中为500毫秒)没有进一步的事件。我只希望在我认为用户已完成输入时运行SubmitQuery()。使用下面的代码,当Task.Delay(500,cancellationToken.Token)时,我不断收到System.Threading.Tasks.TaskCanceledException;叫做。请问我做错了什么?CancellationTokenSourcecancellationToken=newCancellationTokenSource();private
我正在尝试为自定义游戏Controller应用程序模拟键盘命令。因为我需要在DirectInput环境中模拟命令,所以大多数常用方法都不起作用。我知道使用Hook100%有效,但我正在努力寻找更简单的实现方式。我进行了大量搜索,发现通过将SendInputAPI与扫描码一起使用而不是虚拟键应该可以工作,但它似乎表现得像键的“粘着”。我已经发送了KEYDOWN和KEYUP事件,但是当我尝试在DirectInput环境中发送消息时,游戏的行为就像按键被按住一样。例如,如果我模拟一个“W”按键并在第一人称射击游戏中将该键映射到“向前移动”Action,一旦我进入游戏,下面的函数将导致角色向前
我正在开发一个游戏,一个基于WPF并用C#编写的Windows应用商店应用程序。当玩家按下Esc键时,我想暂停游戏并显示一个菜单(继续、退出等)。听起来很简单。遗憾的是,事实并非如此。游戏在Windows.UI.Xaml.Controls.Page中进行,主要由Canvas中的数百个Shape组成,但没有单个Button、TextBox或任何其他支持键盘交互的东西。唯一的交互是点击或点击形状。我需要为整个页面全局捕获键盘事件,无论哪个元素具有焦点,或者是否有任何焦点等等。只要按下Esc键,就必须触发一个事件。我尝试过的:使用事件Page.KeyDown或覆盖Page.OnKeyDown
如何设置键盘以数字模式打开或直接打开一个特殊的数字键盘(如在android中)???我的目标是避免用户在输入可能只是数值的值之前每次都按下小按钮来切换字母和数字。我有一个用户需要编辑的文本框。谢谢!!!! 最佳答案 将InputScope设置为Number。XAMLC#InputScopescope=newInputScope();InputScopeNamename=newInputScopeName();name.NameValue=InputScopeNameValue.Number;scope.Names.Add(name)