Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-05-2020
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
La otra guía de estilo:
Si encuentras la solución tú mismo, no te molestes en explicarla. Bastará con un "Ya lo resolví". Nos emociona ver gente autosuficiente.
Responder Con Cita
  #2  
Antiguo 01-05-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Lo siento, ya lo pongo:
Código PHP:
//Funcion para enviar texto a un TEdit
void sendTextToEdit(const charappTitle,
  
int ResId, const chartext)
{
    
HWND hParenthChild;

    
hParent FindWindow(NULLappTitle);
    if (
hParent) {
        
hChild GetDlgItem(hParent,ResId);
        if (
hChild)
            
SendMessage(hChildWM_SETTEXT0, (LPARAM)text);
        else
            
MessageBox(0"No se pudo enviar el serial a la ventana.\n¿Tienes abierta la ventana?""Error"MB_ICONERROR);
    }
    else
        
MessageBox(0"No se encontró la ventana.\n¿Tienes abierta la ventana?""Error"MB_ICONERROR);
}
//---------------------------------------------------------------------------

//Funcion para obtener el texto de un TEdit
AnsiString getTextFromEdit(const charappTitleint ResId)
{
    
HWND hParenthChild;
    
int TxtLen;
    
char txtFinal[50];

    
hParent FindWindow(NULLappTitle);
    if (
hParent) {
        
hChild GetDlgItem(hParent,ResId);
        if (
hChild){
            
//Leo lo que hay en el Edit
            
TxtLen SendMessage(hChildWM_GETTEXTLENGTH00);
            
SendMessage(hChildWM_GETTEXTTxtLen 1, (LPARAM)txtFinal);
        }else{
            
MessageBox(0"No se pudo leer el Edit de la ventana.\n¿Tienes abierta la ventana?""Error"MB_ICONERROR);
        }
    }
    else{
        
MessageBox(0"No se encontró la ventana.\n¿Tienes abierta la ventana?""Error"MB_ICONERROR);
    }

    return 
txtFinal;

Responder Con Cita
  #3  
Antiguo 01-05-2020
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Responder Con Cita
  #4  
Antiguo 04-05-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Tengo una duda, he probado a sustituir SendMessage por SetWindowText y GetWindowText y no me funciona. Según he leído en la msdn se usan para enviar y leer texto de controles de otras aplicaciones. ¿Habría que hacer algo más a parte de sustituir una por otra?
Responder Con Cita
  #5  
Antiguo 04-05-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por aguml Ver Mensaje
Tengo una duda, he probado a sustituir SendMessage por SetWindowText y GetWindowText y no me funciona. Según he leído en la msdn se usan para enviar y leer texto de controles de otras aplicaciones. ¿Habría que hacer algo más a parte de sustituir una por otra?
Para leer el texto de un Edit de una aplicacion ajena a la tuya, no funciona SetWindowText y GetWindowText, sólo se puede hacer a través de
Código PHP:
SendMessage(hWndWM_GETTEXT,  BuffSize, (LPARAM)Buffer); 
Saludos.
Responder Con Cita
  #6  
Antiguo 04-05-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
"Changes the text of the specified window's title bar (if it has one). If the specified window is a control, the text of the control is changed. However, SetWindowText cannot change the text of a control in another application."
Lo leí mal, tienes razón, no sirve para cambiar texto en otras aplicaciones.
Tengo otra duda, el código funciona genial pero me gustaría automatizarlo, me explico:
La aplicación tiene un cuadro de diálogo el cual crea con DialogBoxParamA y se en que parte de la aplicación hace la llamada a ese cuadro de diálogo y la idea es crearme un pequeño debuger que lo ejecute y que cuando salga ese cuadro de diálogo ya aparezca con el texto que quiero enviar pero no sé si es posible hacer algo así porque depurando la aplicación veo que al ejecutar la línea que muestra el cuadro de diálogo ya no vuelve al código hasta que obtenga una respuesta al igual que pasa con los MessageBox.
Responder Con Cita
  #7  
Antiguo 04-05-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Si tienes el código, modifícalo.
Si quieres cambiar texto desde una app externa con WM_SETTEXT, piensa que hasta que no se cree el diálogo no podrás enviar mensajes y que el dialogo puede resistirse al cambio porque tiene su propia función de tratamiento de mensajes.
Otra opción es hacer un subclassing cambiando lpDialogFunc, eso lo puedes hacer con un hook a la API DialogBoxParamA con código inyectado.

Una Ultima Opción es hacer un escaner de la memoria del proceso para detectar la cadena que pretendes cambiar. El cambio tiene que ser en idéntica longitud de caracteres o menor, terminada en cero. Nunca mayor.


Si lo que pretendes es cambiar varios comportamientos del cuadro de dialogo, la mejor opción es el subclassing.


Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Enviar datos a PHP y leer resultados (pagina ajena) dosher81 Delphi para la web 7 04-06-2018 07:16:00
problema texto de varios edit a otro edit rafaelon Varios 2 29-07-2017 22:49:02
comparar un texto de un listbox con un texto de un edit juaarias Varios 1 04-10-2011 01:13:10
Delphi 7.0 y MySql, Enviar informacion de ventana a ventana gozi Conexión con bases de datos 2 03-04-2006 05:28:41
Enviar texto a la ventana abierta Mr.Vaka Varios 4 28-11-2005 18:57:31


La franja horaria es GMT +2. Ahora son las 05:00:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi