コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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
        }
コード例 #3
0
 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));
     }
 }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
        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);
                    }
                }
            }
        }