void BTN_ImportarNovosComandosClick(object sender, EventArgs e) { try{ openFileDialog1.Title = "Selecionar Arquivo para Importar"; openFileDialog1.Filter = "DataBase Files (*.db)|*.db|" + "Arquivos SQLite (*.db)|*.db"; //filtrar por .db DialogResult dr = openFileDialog1.ShowDialog(); if (dr == System.Windows.Forms.DialogResult.OK) { Model.Conexao_BD Endereco = new Model.Conexao_BD(); string endereco_atual = openFileDialog1.FileName; //Endereço do arquivo selecionado string endereco_destino = Endereco.endereco_banco; //Endereço definido na classe do banco de dados if (File.Exists(endereco_destino)) { if (MessageBox.Show("Já existe um arquivo de comandos em seu sistema arquivo de dados no momento," + "deseja excluir o existente e usar o que foi selecionado ?", "O Arquivo já existe", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { File.Delete(endereco_destino); File.Copy(endereco_atual, endereco_destino); MessageBox.Show("O arquivo com os novos comandos foi importado com sucesso!"); } } } } catch (Exception ex) { MessageBox.Show("Houve um erro Importar o arquivo com novos comandos ao \nMotivo: " + ex.Message); } }
public void Iniciar_Reconhecimento() { Model.Conexao_BD c = new Model.Conexao_BD(); //c.CriarBancoDeDados();//Cria caso não exista Controles_do_sintetizador_de_voz(); //Inicializa a configuração de voz salva no BD Carregar_Cultura(); //Inicializa a cultura pt-BR Carregar_Gramatica_interna(); // inicialização da gramatica Interna Carregar_Gramatica_SQL(); //inicialização da gramatica SQL Carregar_Entrada_Saida_de_Voz(); //Defini a entrada e saida da voz usadas }
private void Atualiza_Tabela() { try{ DataTable dt = new DataTable(); string SQL = "select id,Instrucao from controlecomando"; Model.Conexao_BD d = new Model.Conexao_BD(); SQLiteDataAdapter da = new SQLiteDataAdapter(SQL, d.Conexao); da.Fill(dt); dataGridView1.DataSource = dt.DefaultView; } catch { MessageBox.Show("Erro ao exibir os comandos referentes ao id:" + Convert.ToInt32(TXT_Id.Text)); } }
public void Carregar_Gramatica_SQL() { var lista_pronuncias = new Choices(); try { DataTable Tabela = new DataTable(); string Comando_SQL = "Select Id,Pronuncia,Instrucao,RespostaEsperada,IsCommand,Executar1,Executar2,TipoComando from controlecomando"; Model.Conexao_BD c = new Model.Conexao_BD(); c.Conexao.Open(); SQLiteCommand Comando = new SQLiteCommand(Comando_SQL, c.Conexao); //instancio o metodo SqlliteCommand SQLiteDataReader sdr = Comando.ExecuteReader(); //Lê o resultado de um comando sql while (sdr.Read()) { //Faz a leitura de toda a coluna 'Pronuncia' lista_pronuncias.Add(sdr["Pronuncia"].ToString()); } c.Conexao.Close(); //Construindo a gramatica com a lista de pronuncias var gramatica = new GrammarBuilder(); gramatica.Append(lista_pronuncias); //passando a gramatica criada para a biblioteca var g_sql = new Grammar(gramatica); g_sql.Name = "Gramatica_SQL"; reconhecedor.RequestRecognizerUpdate(); //Pausa o reconhecimento e atualiza a gramatica reconhecedor.LoadGrammarAsync(g_sql); } catch (Exception ex) { MessageBox.Show("Houve um erro ao criar ou carregar a Gramatica de comandos SQL do sistema \nMotivo: " + ex.Message); } try{ //reconhecedor.SpeechDetected += reconhecedor_SpeechDetected;//Detecção de Voz reconhecedor.SpeechRecognized += Executa_Comandos_Sqlite;//Executa ações com comando de voz } catch (Exception ex) { MessageBox.Show("Erro encontrado ao detectar a voz do usuário ou executar os comandos do banco de dados\nMotivo: " + ex.Message); } }
void BTN_ExportarComandosClick(object sender, EventArgs e) { try{ Model.Conexao_BD Endereco = new Model.Conexao_BD(); string endereco_banco = Endereco.endereco_banco; //Endereço definido na classe do banco de dados //define o titulo saveFileDialog1.Title = "Exportar Banco de dados"; //Define as extensões permitidas saveFileDialog1.Filter = "DataBase File|.db"; //Atribui um valor vazio ao nome do arquivo saveFileDialog1.FileName = "Dados.db"; //Open the dialog and determine which button was pressed DialogResult tela_salvar = saveFileDialog1.ShowDialog(); //Se o ousuário pressionar o botão Salvar if (tela_salvar == DialogResult.OK) { if (File.Exists(endereco_banco)) { File.Delete(saveFileDialog1.FileName); File.Copy(endereco_banco, saveFileDialog1.FileName); MessageBox.Show("O Banco de Dados foi Exportado com sucesso!"); } else { MessageBox.Show("Nenhum Banco de Dados foi encontrado, cadastre algum novo comando e tente novamente!"); } } } catch (Exception ex) { MessageBox.Show("Houve um erro ao Exportar o Banco de Dados \nMotivo: " + ex.Message); } }
private void Executa_Comandos_Sqlite(object sender, SpeechRecognizedEventArgs e) { if (e.Result == null) { return; } foreach (RecognizedPhrase frase in e.Result.Alternates) { if (frase.Confidence >= 0.6) { string speech = e.Result.Text; try{ DataTable Tabela = new DataTable(); string Comando_SQL = "Select Id,Pronuncia,Instrucao,RespostaEsperada,IsCommand,Executar1,Executar2,TipoComando from controlecomando"; Model.Conexao_BD c = new Model.Conexao_BD(); c.Conectar(); SQLiteCommand Comando = new SQLiteCommand(Comando_SQL, c.Conexao); //instancio o metodo SqlliteCommand SQLiteDataReader sdr = Comando.ExecuteReader(); //Lê o resultado de um comando sql while (sdr.Read()) { { string Id = sdr["Id"].ToString(); string Pronuncia = sdr["Pronuncia"].ToString(); string Instrucao = sdr["Instrucao"].ToString(); string RespostaEsperada = sdr["RespostaEsperada"].ToString(); string IsCommand = sdr["IsCommand"].ToString(); string Executar1 = sdr["Executar1"].ToString(); string Executar2 = sdr["Executar2"].ToString(); string TipoComando = sdr["TipoComando"].ToString(); if (Pronuncia == speech) { if (IsCommand == "Sim") { switch (TipoComando) { case "CMD": try { Emulador_de_Voz(RespostaEsperada); if (Executar1 == "") { Process.Start("\"" + Executar2 + "\""); Encerrar_Voz(); } else if (Executar2 == "") { Process.Start("\"" + Executar1 + "\""); Encerrar_Voz(); } else { Process.Start("\"" + Executar1 + "\"", "\"" + Executar2 + "\""); //scape para poder usar as aspas dentro de outras aspas Encerrar_Voz(); } } catch (Exception erro) { //Emulador_de_Voz("Encontrei um erro nesse comando, por padrão será deletado da base de dados"); MessageBox.Show(DateTime.Now + "\n" + "Detalhes: " + erro.Message); Encerrar_Voz(); } break; case "Tecla": try { Emulador_de_Voz(RespostaEsperada); SendKeys.Send(Executar1); Encerrar_Voz(); } catch (Exception erro) { //Emulador_de_Voz("Encontrei um erro ao usar essa teclas, por padrão será deletado da base de dados"); MessageBox.Show(DateTime.Now + "\n" + "Detalhes: " + erro.Message); Encerrar_Voz(); } break; case "Site": try { Emulador_de_Voz(RespostaEsperada); Process.Start("\"" + Executar1 + "\""); Encerrar_Voz(); } catch (Exception erro) { //Emulador_de_Voz("Este não é um link válido, por padrão será deletado da base de dados"); MessageBox.Show(DateTime.Now + "\n" + "Detalhes: " + erro.Message); Encerrar_Voz(); } break; case "Programa": try { Emulador_de_Voz(RespostaEsperada); //Process.Start("\""+Executar1+"\""); //Função em fase de teste Processo = new Process(); //Caminho do programa está na variavel Executar1 Processo.StartInfo.FileName = Executar1; Processo.Start(); Encerrar_Voz(); } catch (Exception erro) { Emulador_de_Voz("O Endereço do programa não foi encontrado"); MessageBox.Show(DateTime.Now + "\n" + "Detalhes: " + erro.Message); Encerrar_Voz(); } break; default: Emulador_de_Voz("Não conheço o tipo de comando da instrução," + speech + ""); break; } } else { //Caso não seja um comando, escrever a instrução na tela SendKeys.Send(Instrucao + " "); Encerrar_Voz(); } } } } sdr.Close(); c.Desconectar(); } catch (Exception ex) { MessageBox.Show("Você perguntou: " + speech + "\nDetalhes: " + ex.Message); } } } }