所以我正在为我正在上课的课程制作课程。此程序任务是能够在TextBox中键入消息,并且能够设置宏的键以在当前的应用程序中发送此消息,因为C#程序在后台,没有聚焦。
我的问题是我找不到任何代码示例让程序没有重点,等待按键然后运行这个伪代码:
If (KeyPress = F1)
{
Send {Enter};
Send {Text from textbox};
Send {Enter};
}
那里有没有人会有这方面的知识,如果在C#中甚至可能的话?
答案 0 :(得分:0)
转到表单事件,双击KeyPress事件,在方法中输入以下逻辑:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Keys.Enter) //Keys.Enter is your key.
{
textBox1.Text == "YOUR TEXT";
}
}
答案 1 :(得分:0)
“我的问题是我找不到任何代码示例让程序没有重点,等待按键”
当你的应用不在焦点时,你正在寻找一个按键。仅使用标准.Net无法做到这一点。该任务需要使用Windows API ...
这个问题有三种可能的方法。
轮询 - 您可以使用Timer和GetAsyncKeyState()API轮询键盘状态。虽然这在技术上是可行的,但这不是推荐的方法。
系统范围注册的热键 - 您可以使用RegisterHotkey()API在应用程序中注册特定的热键组合。这是三种选择中资源最少的方法。然而,有一个巨大的缺点。如果你想要的热键组合已经被另一个应用程序占用了,那么你就是SOL(运气不好)。检查注册请求的返回值,以确定它是否成功。
低级键盘挂钩 - 您可以通过WH_KEYBOARD_LL使用低级键盘挂钩来捕获应用中的所有键盘按键。这是最具侵略性的,尽管用途广泛。
挑选你的毒药并进行搜索。在网上有很多这些方法的例子。