![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Tienes razón en una cosa, equivoqué una parte del código. Debe ser así:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char Nombre_de_la_clase[] = "TApplication"; // o Nulo
char Nombre_de_ventana[] = "Nombre"; // Caption de la ventana a buscar
HWND H = FindWindow(Nombre_de_la_clase, Nombre_de_ventana);// Handle de la ventana buscada.
//Si falla (H == NULL), por lo que no tiene sentido seguir...
if(H){
::SendMessage(H, WM_KEYDOWN, VK_F5, 1); // Presionar
::SendMessage(H, WM_KEYUP, VK_F5, 1); // Soltar
}
}
Sigues cometiendo el error de confundir el caption de la ventana con la ruta Path o el nombre del ejecutable. Haz lo siguiente: Abre una ventana del explorador, abre una carpeta (el caption puede variar al cambiar la carpeta visualizada) mira el caption y colocalo en tu código. FindWindow te devuelve un HANDLE a esa ventana, si es nulo quiere decir que no la ha localizado, en caso contrario te vale, de forma que la simulación de presionar un botón esta condicionada a que el HANDLE no sea nulo. |
|
#2
|
||||
|
||||
|
hola, gracias por tu respuesta, mi pregunta es esta:
¿la caption de la ventana es el nombre de la carpeta? si es asi: ¿no se supone que en la ruta esta el nombre de la carpeta? ¿y si saco solo el nombre de la carpteta de la ruta?¿funcionaria? de todas manreas voy a prbar algunas cosas, dependiendo lo que pase lo posteo, muchas rgacias por ayudarme, no saben cuanto he aprendido con esta discusion, muchas gracias. saludos desde Colombia. |
|
#3
|
||||
|
||||
|
Pues es posible que en el explorador el Caption sea el nombre de la carpeta, el problema es que no puedes estar seguro de esto no va a cambiar de una maquina a otra o de un Sistema Operativo a otro (versiones nuevas de Windows), o con una opción de configuración nueva... Pero si estás seguro de que siempre va a corresponder el Caption del explorador con el nombre de la carpeta, pues adelante.
Otra cosa, no pongas Nombre_de_Clase "TApplication", eso es para aplicaiones delphi o builder, coloca en su lugar NULL: Código:
HWND H = FindWindow(0, Nombre_de_ventana); Puedes experimentar también con otra API: WindowFromPoint. Te permite localizar la ventana que contiene un punto, que puede ser por ejemplo el cursor del ratón... Código:
TPoint Point; ::GetCursorPos(&Point); HWND h = WindowFromPoint(Point); Última edición por escafandra fecha: 04-04-2008 a las 19:40:35. Razón: Aclaración |
|
#4
|
||||
|
||||
|
¿estamos hablando de la barra de titulo?
si es asi en windows he visto que en la caption hay dos posibilidades: que solo se muestre el nombre de la carpeta o que se muestre toda la ruta en el titulo, si comparo is esta toda o solo la carpeta, es decir. Cita:
El problema es que este no es mi PC y tengo que ver el code e ir a mi casa aprobar. Saludos |
|
#5
|
|||
|
|||
|
Disculpen esta breve interrupción.
Me gustaría preguntarle a Negriz cuál es la necesidad de actualizar la ventana del explorador. Lo pregunto porque la API de Windows cuenta con la función ShChangeNotify, que hasta donde entiendo, sirve para notificar al shell acerca de cambios que una aplicación puede hacer que lo afecten. Eso incluye agregar o borrar archivos y directorios. Si la necesidad de actualizar la ventana del explorador viene de algo por este estilo, quizá le sea más conveniente usar la función referida y no depender así de cosas como el título de la ventana, que, como ya comentó escafandra, es poco fiable. Bye |
|
#6
|
||||
|
||||
|
Cita:
Otro ejemplo es cuando cambias un icono con TuneUP o algun otro programa cuando aceptas los cambios, los iconos se refrescan. algo asi mas o menos es lo que se desea hacer. Cita:
Muchas gracias a todos por sus comentarios. La verdad... eso es verdad, valga la redundancia. ![]() ![]() yo quiero aprender y este tema me ha ayudad mucho. ![]() ![]() saludos desde colombia. ![]() keyboy voy a mirar la funcion. gracias. Última edición por Negriz fecha: 07-04-2008 a las 19:30:12. |
|
#7
|
||||
|
||||
|
Pues la verdad, hacerlo como pretende es escabroso, pero yo creo que ya es una cuestión de curiosidad, a ver si le sale, más que por una cuestión práctica, y como él dice:Negriz, prueba ese último código, puede funcionar, aunque no "al pié de la letra" según lo has citado. Experimenta. En una ocasión yo hice un programa para hacer una broma a un compañero de trabajo. Consistía en localizar cuando estaba jugando, para lo que utilizaba FindWindow y WindowFromPoint. Localizada la ventana del juego y conociendo que estaba en primer plano y con actividad (movimiento de ratón), esperaba 10 segundos y le minimizaba la ventana.....Fue divertido y aprendí mucho.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Tab en el Explorador de Windows | vtdeleon | Noticias | 2 | 16-05-2007 00:14:09 |
| FlashMemory no se ve en Explorador | Deiv | Windows | 5 | 16-02-2007 00:28:58 |
| Ejecutar un PHP sin explorador | majaco | Internet | 1 | 24-04-2006 17:24:34 |
| Problemas con el Explorador con las PC en Red | santi33a | Windows | 0 | 20-12-2005 17:16:46 |
| Explorador de directorios. | zugazua2001 | Varios | 1 | 08-06-2005 17:48:54 |
|