Ver Mensaje Individual
  #16  
Antiguo 04-04-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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
  }
}
El error estaba en definir un puntero a un puntero char* P[]. Cuando lo que quería definir es un puntero a una cadena, es decir o simplemente char* P ó char P[].

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.
Responder Con Cita