elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema con PromptBuilder
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con PromptBuilder  (Leído 2,697 veces)
rigorvzla

Desconectado Desconectado

Mensajes: 213


Ver Perfil
Problema con PromptBuilder
« en: 3 Febrero 2018, 23:21 pm »

Eh creado este codigo con la finalidad de poder copiar todo lo que hable en un cuadro de texto, pero quiero que se pueda hacer fuera del cuadro de texto.

Aqui el codigo que implemente
Código
  1. using System.Windows;
  2. using System.Speech.Synthesis;
  3. using System.Speech.Recognition;
  4.  
  5. namespace Test
  6. {
  7.    public partial class MainWindow : Window
  8.    {        
  9.        PromptBuilder dictado = new PromptBuilder();
  10.        SpeechSynthesizer habla = new SpeechSynthesizer();
  11.        SpeechRecognitionEngine escucha = new SpeechRecognitionEngine();
  12.        string speech;
  13.        public MainWindow()
  14.        {
  15.            InitializeComponent();
  16.            ActivarEscucha();
  17.        }
  18.  
  19.  
  20.        private void ActivarEscucha()
  21.        {
  22.            escucha.SetInputToDefaultAudioDevice();
  23.            escucha.LoadGrammar(new DictationGrammar());
  24.            escucha.RecognizeAsync(RecognizeMode.Multiple);
  25.            escucha.SpeechRecognized += Escucha_SpeechRecognized;
  26.            habla.SpeakAsync("Esperando Dictado");
  27.        }
  28.  
  29.        private void Escucha_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
  30.        {
  31.            speech = e.Result.Text;
  32.    // dictado.AppendText(speech);        
  33.        textbox.AppendText(speech); <-- si yo coloco esta linea, me escribe lo que hable en el textbox, yo necesito es que lo escriba fuera del textbox
  34.  
  35.        }
  36.    }
  37. }
  38.  

Espero puedan ayudarme a solventar este problema , gracias.


« Última modificación: 4 Febrero 2018, 00:34 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Problema con PromptBuilder
« Respuesta #1 en: 4 Febrero 2018, 00:37 am »

Código
  1. textbox.AppendText(speech); <-- si yo coloco esta linea, me escribe lo que hable en el textbox, yo necesito es que lo escriba fuera del textbox

"yo necesito es que lo escriba fuera del textbox", intenta ser más específico, eso se puede interpretar de mil formas, aclara lo que estás intentando hacer: escribir en otro control de la UI, o donde?.

Saludos!


En línea

rigorvzla

Desconectado Desconectado

Mensajes: 213


Ver Perfil
Re: Problema con PromptBuilder
« Respuesta #2 en: 4 Febrero 2018, 02:32 am »

la idea seria que al yo colocar el promt en cualquier lugar donde sea posible escribir, pueda dictar y que copie , sea ya en bloc de notas, en la barra de direccion del explorador web o un cuadro de consola.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Problema con PromptBuilder
« Respuesta #3 en: 4 Febrero 2018, 03:44 am »

la idea seria que al yo colocar el promt en cualquier lugar donde sea posible escribir, pueda dictar y que copie , sea ya en bloc de notas, en la barra de direccion del explorador web o un cuadro de consola.

Bueno, eso no es algo de hacer tan simple como llamar a un método y listo, debes identificar la ventana activa que tiene el foco de entrada, o la ventana hija de tipo 'Edit Control' en la que desees escribir el texto. Para detectar la ventana activa y asignar un texto a dicha ventana puedes recurrir a las funciones de la API de Windows para la mensajería de ventanas (GetForegroundWindow, SendMessage + WM_GETTEXT / WM_SETTEXT), si necesitases identificar una ventana hija dentro de la ventana principal/padre activa, entonces necesitarías enumerar las ventanas (funciones EnumChildWindows / EnumThreadWindows), o puedes recurrir diréctamente a la tecnología de Microsoft UI Automation para analizar el árbol de ventanas.

Win32 o UI Automation, ambas metodologías tienen sus ventajas e inconvenientes respectivamente, UI Automation es más sofisticado y simplificado, pero tambien más lento, y solo es compatible con ciertas ventanas que soporten el modelo (yo te digo, que en general con UI Automation no deberías encontrar ningún problema al intentar analizar cualquier tipo de ventana), pero lo bueno es que sería una solución basada en código administrado y por ello la solución se vuelve más estable y sencilla de implementar; mientras que la API de Win32 es compatible con todo tipo de ventanas (Win32, WPF, Windows Forms...), pero es código no administrado y eso resultaría en un código resultante más tedioso, feo e inestable en comparación.

Puedes encontrar muchos ejemplos en Internet con respecto a como detectar la ventana activa en C#, ejemplos de como enumerar ventanas hijas con la API de Windows, o como usar UI Automation en general.

Un saludo
« Última modificación: 4 Febrero 2018, 03:59 am por Eleкtro » En línea

rigorvzla

Desconectado Desconectado

Mensajes: 213


Ver Perfil
Re: Problema con PromptBuilder
« Respuesta #4 en: 4 Febrero 2018, 04:32 am »

Gracias elektro, partire de ahi entonces, creia que seria mas simple asi como lo mensionaste, asi como escribir en un txtbox pero al parecer es mas laborioso, investigare al respecto.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines