Tag: 键盘

如何将keypresses发送到正在运行的流程对象?

我正在尝试使C#启动一个应用程序(在这种情况下是开放式办公室),并开始发送该应用程序按键,使其看起来好像有人正在打字。 理想情况下,我可以发送一个正在运行的开放式办公室流程来处理字母“d”的按键,然后打开办公室就会在纸上输入d。 任何人都可以根据具体情况给我指点吗? 我试图做以下事情: p = new Process(); p.StartInfo.UseShellExecute = true; p.StartInfo.CreateNoWindow = false; p.StartInfo.FileName = processNames.executableName; p.Start(); p.StandardInput.Write(“hello”); 但这并没有给我带来预期的效果 – 我没有看到文本在开放式办公室输入。

如何将键而不是字符发送到进程?

System.Diagnostics.Process公开名为StandardInput的StreamWriter,据我所知,它只接受字符。 但我也需要发送击键,并且一些击键不能很好地映射到角色。 我该怎么办?

检测是否在C#中按下任何键(不是A,B,但是任何键)

[编辑3]我使用“奇怪”版本“解决了它”。 至少对于最重要的键。 这对我的情况来说是足够的,我想检查ALT和ALT + A是不一样的(从而确保没有按下A)。 不完美,但已经有很多时间来解决这个小问题了。 无论如何,感谢所有答案…… [编辑3] [编辑4]由于280Z28 [/ EDIT 4]解决了它更清洁 我知道如何检查修改键以及如何测试单个键。 问题是,我想检查是否按下任何键。 以下方法似乎“奇怪”:-) 用C#编写的WPF应用程序 if (Keyboard.IsKeyDown(Key.A)) return true; if (Keyboard.IsKeyDown(Key.B)) return true; if (Keyboard.IsKeyDown(Key.C)) return true; 我知道这是一个枚举,所以我想到了一个循环,但是使用的“最大数字”是什么。 这可能吗? 顺便说一句,这是一个非常特殊的情况,通常我会使用一个事件,但在这种情况下我必须这样做。 不幸的是,没有“列表”Keyboard.CurrentlyDownKeys。 至少我没有看到它。 谢谢,克里斯 编辑:好的,因为它似乎是一个更大的交易,这里的原因是:我已经定义了一个“KeySet”,它作为自定义函数的DictionaryKey。 如果有人点击某个元素,则包装器会遍历字典并检查是否有任何预定义的“Keysets”处于活动状态。 这允许我定义简单的触发器,例如,如果按下ALT + A + B,则运行此function。 另一个选项是例如,如果按下ALT + STRG + A,则运行此function(在鼠标单击WPF元素期间)。 当前实现的唯一“问题”,如果我定义一个不包含任何REAL键的Keyset,如按下ALT则运行,如果按下ALT + A,也会触发它。 哦,在写这篇文章时,我意识到还有另一个问题。 如果按下ALT + A + B […]

如何在c#中获得组合键

如何在C#表单上捕获Ctrl + Alt + K + P键? 谢谢