Estoy tratando de escribir en otra aplicacion, desde mi programa, e intentado usar SendMessage de la API de windows, pero no me funciona, no se si este haciendo lo correcto
Primero habro la aplicacion (Bloc de notas) y guardo el HANDLE
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Programa = "C:\\WINDOWS\\NOTEPAD.EXE";
AnsiString Wname = "Sin título - Bloc de notas";
char WinName[80];
char WinClass[80];
//HandleProg esta declarada dentro de la clase de la forma (HWND HandleProg;)
ShellExecute(HandleProg,"open", Programa.c_str() , NULL ,NULL,SW_SHOWNORMAL );
while(1)
{
HandleProg = FindWindow( 0,Wname.c_str() );
if( HandleProg != NULL )
break;
}
//Esto es solo para ver el nombre de la clase y el titulo del programa
GetWindowTextA( HandleProg ,WinName,sizeof( WinName )-1 );
GetClassNameA( HandleProg ,WinClass,sizeof( WinClass ) - 1 );
Label_WinClass->Caption = WinClass;
Label_WinName->Caption = WinName;
}
//---------------------------------------------------------------------------
Ya que tengo guardado el HANDLE del programa, lo puedo cerrar, por lo que
compruebo que el HANDLE es correcto
void __fastcall TForm1::Button2Click(TObject *Sender)
{
SendMessage( HandleProg,WM_CLOSE,0,0 );
}
//---------------------------------------------------------------------------
Pero no puede escribir un caracter :s
void __fastcall TForm1::Button3Click(TObject *Sender)
{
SendMessage( HandleProg,WM_CHAR,'r',0 );
}
//---------------------------------------------------------------------------
Lo que e logrado hacer con el mensaje WM_CHAR es escribir en un Edit o un Memo, pero solo dentro de mi aplicacion
SendMessage( Edit1->Handle,WM_CHAR,'r',0 );
SendMessage( Memo1->Handle,WM_CHAR,'r',0 );
Por eso creo que el mensaje WM_CHAR es lo que estoy buscando, pero creo que el error esta en el parametro Handle de la funcion SendMessage.
Creo que tendria que poner el Handle del Memo que tiene el Bloc de notas, pero eso si no se como obtenerlo :s
E intentado usar FindWindowEx() pero no e tenido exito.
Si alguien puede darme un norte se los agradeceria muchisimo.
O algun codigo donde manejen este tipo de funciones del APIWin para comunicarce con otras aplicaciones tambien se le agradece