[Delphi] Komunikacja między aplikacjami.

0

Witam. Mam pytanie. Czy można i jak jeśli można zrobić takie cuś, żeby np. jedną aplikacją sterować drugą?

0

Poszukaj pod hasłem IPC (interprocess communication).

0

Mógłbyś jakiegoś linka dać? Nic nie znalazłem ;/

0

Jaja se robisz co nie. Bo jak ja z ciekawości wpisałem w googlach http://www.google.pl/search?aq=f&hl=pl&q=%2Bdelphi+%22interprocess+communication%22&btnG=Szukaj&lr=

To znalazłem 3 darmowe komponenety, Broadcast, Pipe i simpleIPC które mogą być przydatne.
Google nie gryzie.

0

A jakiś link do tego simpleIPC?
szukałem, ale nic nie znalazłem.

0

Jakbyś szukał, to nawet na Wikipedii byś znalazł: http://pl.wikipedia.org/wiki/IPC .

0

Chodziło mi o link do komponentu...

0

Wiem, udzieliłem Ci odpowiedzi na wcześniejsze "Mógłbyś jakiegoś linka dać?". IPC to cały zbiór mechanizmów a nie jedna technologia, więc po prostu zajrzyj tam, gdzie wskazałem.

0

No zajrzałem, ale prosiłbym o jakiś link do tego komponentu :)

0

Znaczy nie do końca wyciągnąłeś wnioski z tego, co czytasz.

Najprostsze sterowanie na przykładzie kolejki komunikatów:

  • aplikacja sterująca - akcja na przycisk:
var
  lOkno: THandle;
  lResult: Integer;
begin
  lOkno := FindWindow('TForm2', nil);
  if (lOkno <> 0) then begin
    lResult := SendMessage(lOkno, WM_USER, 1234, 5678);
    Caption := Format('%d', [lResult]);
  end;
end;
  • aplikacja sterowana - całość kodu (ważne, że klasa okna to TForm2)
unit Unit1;

interface

uses
  Windows, Messages, Forms, SysUtils;

type
  TForm2 = class(TForm)
  public
    procedure Akcja(var avMessage: TMessage); message WM_USER;
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Akcja(var avMessage: TMessage);
begin
  Caption := Format('%d, %d', [avMessage.WParam, avMessage.LParam]);
  avMessage.Result := avMessage.LParam - avMessage.WParam;
end;

end.

.. i tyle. Jedna aplikacja przesyła dwie liczby, druga odpowiada, zwracając ich różnicę. Odpalasz obie i klikasz przycisk. To najprostszy sposób komunikacji 1 do 1 (rozwiązywanie kwestii, gdy masz kilka okien o klasie TForm2 pozostawiam Tobie).

Nauka nie polega na czytaniu, ale na czytaniu i poszerzaniu wiedzy. Dałem Ci arta o IPC. Powinieneś go przeczytać, dowiedziałbyś się, że istnieje takie coś jak mutex i można to wykorzystać do tego i tego. Potem zajrzałbyś do tutorialka/google/helpa pod to hasło i poznał główne funkcje a często i całe przykłady. Na tym polega nauka..

0

Dzięki :)

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