Komunikaty, parametry

0

Troche jestem w tym zielony wiec pytanko:
Czy mozna wyslac komunikat do okna, ktore jest w sieci lokalnej ?

0

Aha, no zobacze tam,
mam drugie pytanko: czy jest lepsze wyjscie na przeslaniu tekstu w komunikacie ?
np 'HEJ' skodzilem tak:

procedure TForm1.Button1Click(Sender: TObject);
var
  handle : HWND;
  x:integer;
  s:string;
begin
  handle := FindWindow(nil,'kkkk');
  x := ord('H') shl 16 or ord('E') shl 8 or ord('J');

  PostMessage(handle,Moj_Komunikat,x,0);

  //tak wygladalby odczyt komunikatu
  showmessage(chr(x shr 16));
  showmessage(chr(x shr 8 and 255));
  showmessage(chr(x and 255));

end;

Tylko dziwnie troche jesli np chcialbym przeslac 4 znaki, wiec moze jakas lepsza metoda ?

0

Myślę że WM_COPYDATA powinno znaleźć się w kręgu Twoich zainteresowań. A tak poza tym kiedyś widziałem rozwiązanie oparte o atomy (ale wtedy komunikaty były tylko pomocnicze).

b

0

No, super rozwiazanie z tym WM_COPYDATA.

Nastepne pytanie: czy da sie wyslac komunikat do aplikacji serwisowej ? (ale bez przesylania wlasnego uchwytu). Przez FindWindow, albo jakos gdyby sie dalo :P

//edit
Wszystko to juz niewazne. Gdy odpalilem, okazalo sie ze FindWindow() nie zadziala w ServiceApp

0

Jako że teraz dłubie przy SApp powiem Ci tak, "powinno się dać". Jeśli zajrzysz o kod TServiceThread to zauważysz że ProcessRequest dopuszcza coś takiego jak CustomCośTam. W każdym razie jedno override powinno rozwiązać sprawę. Chociaż tak na dłuższą metę powiem Ci tak że najlepiej to stowrzyć swój własny wątek w OnStart.

Albo inaczej - jako że jestem pod presją % rzucę słowa klucze:

PostThreadMessage
override
Ctrl + Click na metodzie : )

b

0

Hmm, no byc moze, ale zdenerwowalem sie i zrobilem to na pliku tymczasowym, zamiast komunikatow :-)
A szukanie o tym troche niewspolmierne do korzysci jak dla mnie :P

0

E tam nie współmierne. Wręcz przeciwnie, wiedza procentuje po jakimś czasie.

b

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