Ver Mensaje Individual
  #15  
Antiguo 03-04-2008
Avatar de Negriz
Negriz Negriz is offline
Miembro
 
Registrado: feb 2008
Ubicación: Some were inside Colombia
Posts: 123
Reputación: 19
Negriz Va por buen camino
Lightbulb

Cita:
Empezado por escafandra Ver Mensaje
Código:
 char* Nombre_de_ventana[] = "Nombre"; // Caption de la ventana a buscar
Significa lo que dice, no es el nombre del fichero ejecutable, sino el caption, el texto que aparece escrito encima de la ventana. Es el nombre por el que la reconoce esa API, y que tienes que conocer, de ahí la dificultad que plantea en diferentes máquinas. Por ejemplo, los caption pueden cambiar según el idioma...

Así que no tienes que poner ningún nombre de ruta....
aaa, gran problema y si le pido al usuario el nombre de su ventana?

mira, lo probe de la sigt manera:

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.
PostMessage(K, WM_KEYDOWN, VK_F5, 1); // Presionar
PostMessage(K, WM_KEYUP, VK_F5, 1); // Soltar
}
pero me decia en la linea char* Nombre_de_la_clase[] = "TApplication"; // o Nulo me salia un error que decia "wanted (o algo asi: need o wait) *char got **char"; la idea es que esperaba algo y recivio otro.
y en la otra donde llamo FindWindow, me salia "no se puede convertir *char en **char"
pero luego lo puse asi:

Código:
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString s = Application->ExeName;
AnsiString ExePath = ExtractFilePath(s);
char Nombre_de_la_clase[] = "TApplication";  // o Nulo//quito el *
HWND K = FindWindow( Nombre_de_la_clase, ExePath.c_str() );// Handle de la ventana buscada
PostMessage(K, WM_KEYDOWN, VK_F5, 1); // Presionar
PostMessage(K, WM_KEYUP, VK_F5, 1); // Soltar
}
y compila, pero cuando presiono el boton no pasa nada, y la ventan donde esta el ejecuable no se actualiza...
Aclaro que las modificaciones que hize no son basadas en experiencia, solo estaba probando.

Gracias por su ayuda.
saludos.
Responder Con Cita