Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

acceder a otro programa

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: acceder a otro programa Responder citando

mi pregunta es la siguiente:

desde builder puedo acceder a otro programa y, por ejemplo, rellenar campos en un Tedit de otro programa?
la cosa es la siguiente he echo una pequeña ventanita donde introduzco una palabra y quiero que mi mismo prog abra una ventana del google e introduzca la palabra y le de a buscar, simplemente,¿ es posible? como? no se, no estoy muy puesto quizas estoy pidiendo el cielo.
Gracias
Volver arriba
Mensaje    Asunto: Responder citando

Hola, karlitos.

Acceder a otro programa es difícil, algo recuerdo haber leído sobre detectar el handle del programa e intentar identificar el componente que quieres modificar y hacerlo convenientemente (con una simulación de pulsación de teclas, por ejemplo).

Lo que tú pides es más sencillo. Abrir otro programa (tu navegador de internet) es cuestión de usar la función ShellExecute(). En la misma orden se puede indicar que lo que queremos abrir es cierto documento, esté en tu disco o en un servidor remoto. Osea que para abrir el Google basta con
Código:
   ShellExecute(NULL, "open", "http://www.google.es/", "", "", SW_SHOWDEFAULT);
Y para que te busque lo que tú tienes en un TEdit de tu programa puedes decírselo en la misma línea de dirección de Google, tal y como lo hace él mismo cuando lo usas normalmente:
Código:
   ShellExecute(NULL, "open", "http://www.google.es/search?q=club", "", "", SW_SHOWDEFAULT);
Si quieres encontrar más de una palabra tendrás que parsear tu TEdit pues en la dirección no puede aparecer ningún espacio, ha de ser sustituido por un símbolo de suma. Este código puede orientarte:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender) {
   AnsiString busqueda = Edit1->Text;
   int espacio;
   while (espacio = busqueda.Pos(" ")) {
      busqueda = busqueda.SubString(1, espacio - 1) + "+" +
                 busqueda.SubString(espacio + 1, busqueda.Length());
   }
   busqueda = "http://www.google.es/search?q=" + busqueda;
   ShellExecute(NULL, "open", busqueda.c_str(), "", "", SW_SHOWDEFAULT);
}
Te dejo a tí averiguar cómo se tendrán que tratar los acentos o caracteres especiales (comillas, ....).

Suerte.
_________________
Ojos ... no son ojos porque los ves, son ojos porque te miran
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Cita:
desde builder puedo acceder a otro programa y, por ejemplo, rellenar campos en un Tedit de otro programa?


con la API findwindow tomas la ventana, pero la identificas por el titulo de la misma, asi si tienes 8 ventanas sepas cual buscar, y con findwindowEx identificas el control en la ventana, en el caso del c++builder es TEdit. luego le pasas los parametros que quieras con SendMessage Wink
_________________
"Quid quid agis prudenter agas et respice finem"
(Hagas lo que hagas, actúa inteligentemente y considerando el fin)
MyNeoReport - the "FREE" Report Generator for .NET
http://myneoreport.sourceforge.net/
(funciona en Delphi for .NET Wink )
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor Yahoo Messenger MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.