C# 书写和关闭记事本++;使用语音识别库
我试图编写代码,打开记事本++,写入文件,然后关闭它。我的代码包括在下面。我对C#完全是新手。有什么图书馆或方法可以做到这一点吗C# 书写和关闭记事本++;使用语音识别库,c#,speech-recognition,voice-recognition,C#,Speech Recognition,Voice Recognition,我试图编写代码,打开记事本++,写入文件,然后关闭它。我的代码包括在下面。我对C#完全是新手。有什么图书馆或方法可以做到这一点吗 // Button Reference private void button1_Click(object sender, EventArgs e) { if (button1.Text.Equals("Enable Voice Control")) { button1.Text = "Stop Voice Control";
// Button Reference
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text.Equals("Enable Voice Control"))
{
button1.Text = "Stop Voice Control";
recEngine.RecognizeAsync(RecognizeMode.Multiple);
}
else
{
button1.Text = "Enable Voice Control";
recEngine.RecognizeAsyncStop();
}
}
public void Form1_Load(object sender, EventArgs e)
{
Choices commands = new Choices();
commands.Add(myCommands);
GrammarBuilder gBuilder = new GrammarBuilder();
gBuilder.Append(commands);
Grammar grammar = new Grammar(gBuilder);
recEngine.LoadGrammarAsync(grammar);
recEngine.SetInputToDefaultAudioDevice();
recEngine.SpeechRecognized += recEngine_SpeechRecognized;
}
void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Process cmd = new Process();
cmd.StartInfo.FileName = @"notepad++.exe" ;
//cmd.StartInfo.Arguments =@"\Write.txt";
cmd.Start();
cmd.CloseMainWindow();
cmd.WaitForExit();
cmd.Refresh();
//if (cmd.StandardError != null)
//Console.WriteLine(cmd.StandardError.ReadToEnd());
var result = e.Result;
var i = 0;
foreach (var command in myCommands)
{
if (command.StartsWith("close"))
{
this.Close();
//cmd.StartInfo.FileName = @"notepad++";
cmd.Kill();
}
if (command.StartsWith("--") || command == string.Empty) continue; // Skip commentBlocks and skipEmptylines
var parts = command.Split(new char[] { '|' }); // Split the lines
i++;
if (command.Equals(result.Text))
{
Console.WriteLine("Command is {0}: {1}", i, command);
break;
}
}
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
您不需要打开记事本并写入文件。你可以通过编程来完成
// Create a file to write to.
string createText = "Hello and Welcome" + Environment.NewLine;
File.WriteAllText(path, createText);
// Open the file to read from.
string readText = File.ReadAllText(path);
您可以使用以下代码关闭记事本:
Process[] processes = Process.GetProcessesByName("notepad");
foreach (var process in processes)
{
process.Kill();
}
它将关闭记事本的所有实例。因此,最好确保记事本是你的(由语音识别程序打开)
如果您实际上不想打开记事本,而您的要求只是以编程方式捕获文本并写入文件,则使用以下代码:
// Create a file to write to.
string createText = "Hello World"; // Replace with voice captured text
File.WriteAllText(path, createText);
// Open the file to read from.
string readText = File.ReadAllText(path);
如果您想编写
.txt
文件,只需使用文件Api
编写即可尝试自动化另一个过程是一个非常受欢迎的新手项目。这不是一个好的代码,这种代码从来都不是简单的,也不会学到什么。如果您学习了如何使用System.Windows.Automation命名空间,您就可以正确地使用它。但是考虑继续前进,你首先要编写和控制自己的程序。此项目可以等待。@Hans passnt感谢您的输入。我想通过speech打开文本文件,也可以通过Speechop在打开的文本板中写入内容。因为OP自己启动流程,所以不需要搜索流程实例。如果没有插入文本的部分,这个答案是不完整的(在我看来,这个问题不应该试图回答,而应该尽可能广泛地封闭)。@Nithish。如果您确定需要打开记事本并输入文本以实际自动模拟人机交互,则这是一个选项。如果您的要求只是捕获语音文本并写入文件,请参考我的答案以编程方式写入文件。