 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
karlitos Invitado
|
Publicado: Jue 10 Feb, 2005 7:50 pm Asunto: acceder a otro programa |
|
|
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 |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Jue 10 Feb, 2005 11:28 pm Asunto: |
|
|
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 |
|
 |
Pablo A Castillo Lt


Registrado: 14 Jul 2004Mensajes: 75Ubicación: Caracas - Venezuela
|
Publicado: Dom 13 Feb, 2005 9:55 pm Asunto: |
|
|
| 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  _________________ "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 ) |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|