[Delphi] MAM PYTANIE NA TEMAT KOMUNIKATÓW

0

Chce napisać programik który będzie komunikował się z inną aplikacją, to znaczy chce aby jedna aplikacja wysyłała dane do drugiej.
Umiem przechwycić okno innej applikacji za pomocą komendy "FindWindow". Ale jak mam przesłać dane np.: dodać linię do komponentu TMemo ??

Wydaje mi się że najpierw musze przechwycić uchwyt okna
var H: THandle;
Memo : TMemo;
begin
H := FindWindow(nil,'OKNO');

a potem przechwycić uchwyt TMemo
Memo1.Perform(WM_SETTExt,0,0,Longint(Pchar('tekst1'))); - ale w ten sposób wysyła się komunikaty w tej samej aplikacji i nie wiem czy zadziała to w innej aplikacji

Za pomoc z góry dziekuje !!!

0

Niedawno bawiłem się komunikatami. Mój prolem polegał na wyałaniu tekstu do pól edycyjnych okna "uruchom jako" a potem kliknnięcie (wysłanie komunikatu )na OK i ....
No ale do rzeczy. Nie będe sie opisywał co i jak tylko prześle gotowe procedurki. Problem dla Ciebie może stanowić język, gdyż to c++ ale to chyba nie aż tak duży problem bo niektóre rzeczy są podobne.
Tak więć jeżeli masz uchwyt do Edita, Memo czy czegokolwiek to wystarczy:
char *getText(HWND Uchwyt)
{
int Length;
char *tekst=""; // możesz w delphi wziąć typ String
char rob[255]; // tu podobnie no może niezupełnie

Length = SendMessage(Uchwyt, WM_GETTEXTLENGTH, 0, 0);
Length++; //Length:=Length+1
SendMessage(Uchwyt,WM_GETTEXT,Length,(LPARAM)rob); // !!!
strcpy(tekst,rob); //tekst:=rob

return tekst;
}
void setText(HWND Uchwyt, char *tekst)
{
SendMessage(Uchwyt,WM_SETTEXT,31,(LPARAM)tekst);
}

Zyczy miłej zabawy

0

Polecam również poniższy wątek (nie wiem, czy coś się skopało z przeglądarką w kafejce, ale trochę dziwnie się "przetasował" ten wątek).
http://http://4programmers.net/Forum/viewtopic.php?id=24760

0

Innym rozwiązaniem komunikacji między dwoma aplikacjami jest otwarcie lokalnych portów.Można w ten sposób komunikować się z aplikacją jak w sieci.

0

Jeżeli obie aplikacje są Twojej produkcji najprościej wykorzystać DDE.

1 użytkowników online, w tym zalogowanych: 0, gości: 1