Troche jestem w tym zielony wiec pytanko:
Czy mozna wyslac komunikat do okna, ktore jest w sieci lokalnej ?
poczytaj sobie o RPC (Remote Procedure Call) w delphi http://www.google.com/search?client=opera&rls=pl&q=delphi+rpc&sourceid=opera&ie=utf-8&oe=utf-8
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 ?
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
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
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
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
E tam nie współmierne. Wręcz przeciwnie, wiedza procentuje po jakimś czasie.
b