Tag: 键盘

使用.NET 4.5.2从C#代码更改键盘布局

我正在编写我的SDL Trados Studio插件。 插件的最后一部分需要一些API完全没有公开的自动化,所以我所拥有的(保持某些东西)是自动化默认的键盘快捷键。 我的代码完全适用于英文键盘布局(以及匈牙利语!),但它当然不适用于希腊语,俄语等等。 我一直在寻找解决方案,但直到现在我都找不到它,不是在网上也不是在SO上,比如这篇文章: 通过代码改变键盘布局c# 我需要将键盘布局更改为英语,以便它可以采用正确的快捷键(和其他字符串)。 然后我需要将其切换回之前的状态。 我正在使用非常有限的API,因此我只有SendKeys我使用。 这是工作代码: //Save the document SendKeys.SendWait(“^s”); //Open files view SendKeys.SendWait(“%v”); SendKeys.SendWait(“i”); SendKeys.SendWait(“1”); Application.DoEvents(); //get url and credentials from a custom input form string[] psw = UploadData.GetPassword( Settings.GetValue(“Upload”, “Uri”, “”), Vars.wsUsername == null ? Settings.GetValue(“Upload”, “User”, “”) : Vars.wsUsername, Vars.wsPassword == null ? “” : Vars.wsPassword ); […]

最小化应用程序时捕获媒体密钥

我想提供一个媒体播放器的选项,我正在努力使媒体键工作,即使它被最小化。 在没有焦点的情况下,在C#中捕获和处理这些关键事件的最佳方法是什么? 它甚至可能吗?

在C#中模拟键盘输入

我需要知道如何模拟键W , S , A , D键盘输入。 我没有使用SendKeys ,也没有使用InputSimulator库而没有修复。 我正在尝试做的是将游戏(战场,自然选择等新的FPS游戏)等应用程序注册为真正的击键。 我正在尝试创建一个虚拟控制器程序,其中外部控件将注册为这些游戏的键盘输入。 有没有办法手动模拟键盘输入,就像有这样的东西? [DllImport(“user32.dll”, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern void mouse_event(uint dwFlags, uint dx, uint dy, int cButtons, uint dwExtraInfo);

C#低级键盘挂钩不工作

这是我的keyhooking类的代码,但它不起作用。 我想知道是否有人可以告诉我为什么? 我正在另一个控制台应用程序中实现它。 调试消息提供正确的输出,但键盘钩子根本不捕获键。 我希望有人能告诉我原因。 namespace GlobalHooks { public class InterceptKeys { private const int WH_KEYBOARD_LL = 13; private const int WM_KEYDOWN = 0x0100; private static IntPtr _hookID = IntPtr.Zero; private static String keysHooked = String.Empty; private static LowLevelHookProc keyboardHook; public delegate IntPtr LowLevelHookProc(int nCode, Int32 wParam, IntPtr lParam); public delegate void KeyboardHandleFunction(int vkCode); public […]

如何将F4密钥发送到C#中的进程?

我正在从Windows应用程序启动一个进程。 当我按下按钮时,我想模拟在该过程中按下键F4 。 我怎样才能做到这一点? [稍后编辑]我不想在我的表单中模拟按F4键,但在此过程中我开始了。

在C#中捕获并发送键盘/鼠标输入

我正在寻找一种发送和接收键盘信息的方法,无论应用程序有什么焦点。 我记得回到大学时看到一个关于旧Windows API的演示文稿,它可以让你改变光标位置并发送正确的点击等。 除了User32.dll有没有办法用.net框架做到这一点?

如何使用C#推送密钥并将其释放?

我正在编写一个C#程序,它捕获来自外部设备的信号,并将键击发送到另一个应用程序。 我正在使用SendKeys,它工作正常。 SendKeys通过按住并立即释放它来“按下”一个键。 我想按下它并随意释放它。 我的问题是:“有没有办法向键发送”推“信号,然后在一定时间后发出”释放“信号?” 我不确定SendKeys是否能够做到这一点。 任何线索?

检测屏幕键盘是否打开(TabTip.exe)

我正在开发一个WPF / C#应用程序来填写表单。 我试图找到一种方法来确定TapTip键盘(用于Windows 8桌面的TabTip.exe /类似地铁的键盘)是否在Windows 8中最小化/不可见。 我已经能够检测到osk键盘(osk.exe / windows可访问性屏幕键盘)是否被最小化,但是相同的过程似乎不适用于TabTip键盘。 要检测键盘是否最小化,我: 1.找到键盘的过程 2.获取MainWindowHandle 3.使用WINDOWPLACEMENT的showCmd属性(使用MainWindowHandle找到) 4.使用showCmd值确定窗口是否最小化 我遇到的问题是: – TabTip进程的MainWindowHandle为0(因此我无法使用它来查找WINDOWPLACEMENT信息) – 当TabTip打开并最小化时,WINDOWPLACEMENT.showCmd的值相同 为了找到TabTip窗口的句柄,我使用ENUMWINDOWS来获取所有窗口句柄,使用GETWINDOWTHREADPROCESSID来获取进程ID,然后将id与TabTip进程id进行比较。 任何帮助都将不胜感激。 这也是我的第一篇文章。 我想我做对了,但如果没有,请让我知道如何解决它。

使表格无法在C#中聚焦

我想写一个虚拟键盘,就像触摸屏电脑的Windows屏幕键盘一样。 但我的虚拟键盘问题正在从使用的应用程序中窃取焦点。 即使用户点击它,Windows屏幕键盘也会将焦点集中在当前应用程序上。 有没有办法在C#中使用Windows窗体做同样的事情? 我现在唯一能做的就是将键盘事件发送到特定的应用程序,例如以下代码中的记事本。 如果我可以使表单不可聚焦,我可以使用GetForegroundWindow获取当前聚焦窗口。 [DllImport(“USER32.DLL”, CharSet = CharSet.Unicode)] public static extern IntPtr FindWindow(string lpClassName,string lpWindowName); [DllImport(“USER32.DLL”)] public static extern bool SetForegroundWindow(IntPtr hWnd); private void button1_Click(object sender, EventArgs e) { IntPtr calculatorHandle = FindWindow(“notepad”, null); SetForegroundWindow(calculatorHandle); SendKeys.SendWait(“111”); } 有没有办法可以做到这一点? 有没有更好的方法让表格将键盘事件发送到正在使用的应用程序? 谢谢!!

多个键盘和低级挂钩

我有一个系统,我有多个键盘,真的需要知道键击来自哪个键盘。 解释设置: 我有一个普通的PC和USB键盘 我有一个带有一些硬键的外部VGA屏幕 硬键映射为标准USB键盘,发送有限数量的键码(F1,F2,Return,+和 – ) 我有一个低级钩子(在C#中,但实际上调用了Win32function),即使我的应用程序没有聚焦,也可以处理输入。 问题是当使用普通键盘时,应用程序拾取的一些映射键码在外部屏幕上被驱动。 外部屏幕发送并用于确认的其中一个按键是VK_RETURN。 除非我能够识别“设备”并对其进行过滤,否则用户可能正在执行操作并在甚至不看的屏幕上确认它们。 我怎么知道哪个键盘负责按键?