当我说出来时,我想制作一个按键盘字母的程序
namespace LOL
{
public partial class Form1 : Form
{
Choices list = new Choices();
SpeechSynthesizer ss = new SpeechSynthesizer();
PromptBuilder pb = new PromptBuilder();
SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
list.Add(new string[] { "q", "w", "e" });
Grammar gr = new Grammar(new GrammarBuilder(list));
try
{
sre.RequestRecognizerUpdate();
sre.LoadGrammar(gr);
sre.SpeechRecognized += Sre_SpeechRecognized;
sre.SetInputToDefaultAudioDevice();
sre.RecognizeAsync(RecognizeMode.Multiple);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
button1.Enabled = false;
}
private void Sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
switch (e.Result.Text.ToString())
{
case "q":
SendKeys.Send("q");
break;
case "w":
SendKeys.Send("w");
break;
case "e":
SendKeys.Send("e");
break;
default:
break;
}
}
}
如果我打开记事本并说q,w,它可以工作,但如果我打开其他程序时,如果按q说你赢了一些它不起作用。我怎么用它?我打开视觉,运行应用程序,然后打开另一个应用程序,一个游戏。并且不起作用。 我认为问题应该在SendKeys,但我不知道如何解决它:\ 请问有什么帮助吗?
答案 0 :(得分:0)
绝对缺少发送键的SendWait属性以及字母上的大括号应该类似于
SendKeys.SendWait(“ {q}”); sapi也没有实现语音字母选择,因此您必须选择拼写字母的发音方式,以便(q)实际上是(cue),(w)被拼写为 “加倍您”或其他类似方式