Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Darle Abrir a OpenDialog desde codigo. (https://www.clubdelphi.com/foros/showthread.php?t=52258)

JuanErasmo 15-01-2008 21:03:30

Darle Abrir a OpenDialog desde codigo.
 
Buenas tardes.

Estoy utilizando un OpenDialog, y necesito que al ejecutarse,
( OpenDialog1->Excute()), luego , a los 3 seg, automaticamente se de click en abrir por si mismo ( con mi programa)
he buscado y no he encontrado ningun metodo para esto. Es posible?

Alguien puede ayudarme?

Gracias!

Lepe 16-01-2008 02:34:00

Se supone que el diálogo se queda esperando la acción del usuario, por tanto no creo que pueda hacerse de forma rápida, a menos que se dé un nombre de archivo válido en su propiedad "Filename".

De todas formas no he visto ese comportamiento en ningún programa. Si usas los ShellControls podrías programar una ventana en apariencia igual al OpenDialog, pero que incorpore el Timer.

Saludos

JuanErasmo 16-01-2008 05:41:41

enviar evento a ventana activa
 
SI, no hay forma, gracias por tu respuesta....
perooooooo, si despues de pasarle el FileName le envio el evento "enter" a la ventana activa?
quien sabe como hacerlo?
Alguien me puede ayudar a codificar eso?

Gracias.

Lepe 16-01-2008 11:24:50

Se ha hablado en el foro como "simular un clic de ratón", aunque no encuentro el hilo ahora. Mediante API de windows es posible lo que pides. Busca en el foro por "situar raton en pantalla y hacer clic" o términos similares.

La otra forma que decía, quizás incluso te lleve menos tiempo, ya que situar un ShellDirectoryTree y ShellListBox, más establecer las propiedades, te llevará poco tiempo. Muestras la ventana como ShowModal y pones un Timer en marcha, indicando al usuario que se cerrará en 3, 2, 1 ... ;).

Saludos

JuanErasmo 16-01-2008 18:16:34

Aqui les dejo el codigo, por si alguien lo necesita
 
Muchas gracias a todos los que me ayudaron en este hilo.
La solucion es esta :

Código:

HWND NuevoAbrir = FindWindowEx(FindWindow(NULL,"Cargar Imagen"),0,"ComboBoxEx32",NULL);
            SendMessage(NuevoAbrir, WM_SETTEXT, 0, long ("ruta desde aqui"));    // Envia un texto a la ventana del yahoo activa!!!
            HWND NuevoAbrir1 = FindWindowEx(FindWindow(NULL,"Cargar Imagen"),0,"Button","&Abrir");
            SendMessage(NuevoAbrir1, WM_KEYDOWN, VK_SPACE, 0);
            SendMessage(NuevoAbrir1, WM_KEYUP, VK_SPACE, 0);

Sigamos colaborando, por favor, cuando encontremos la solucion, si no la hallamos aqui, pues publícala luego para enriquecer el club!

Gracias!


La franja horaria es GMT +2. Ahora son las 18:50:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi