Hallo Theo,
also gut. Warum nicht?
Ich suche also eine Möglichkeit um einer Lazarus-Anwendung über eine andere Lazarusanwendung eine Message zu schicken, in der ich ihr über einen einfachen Integer mitteile, was sie tun soll. Beide Anwendungen sind Eigenentwicklungen und verfügen über eine GUI.
Bisherige Ansätze waren FindWindow und PostMessage aus der Win32-API.
Wie sollte ich das am besten mit Lazarus plattformunabhängig lösen auch wenn die Anwendungen nur unter Windows laufen sollen?
Ein paar zielführende Stichworte würden mir genügen...
Grüße,
Uwe
FindWindow - Unterschied zu Delphi
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: FindWindow - Unterschied zu Delphi
IPC Lazarus bei Google zB.
IPC in der Forumsuche
oder ganz einfach die Sourcen rund um Lazarus und das Lazarus-ccr (am besten aus dem SVN)
IPC in der Forumsuche
oder ganz einfach die Sourcen rund um Lazarus und das Lazarus-ccr (am besten aus dem SVN)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: FindWindow - Unterschied zu Delphi
Uwe_9988 hat geschrieben:Ein paar zielführende Stichworte würden mir genügen...
Plattformübergreifend: Tab "System" -> TSimpleIPCClient/Server.
Re: FindWindow - Unterschied zu Delphi
Danke an alle!
Ein erster Ansatz funktioniert schonmal. Die Abfrage ob die Anwendung schon läuft...
Werde mal testen ob das so unter Linux läuft.
Grüße,
Uwe
Ein erster Ansatz funktioniert schonmal. Die Abfrage ob die Anwendung schon läuft...
Code: Alles auswählen
program FindWindowTest; // ohne FindWindow ;-)
//...
uses
//...
simpleipc;
//...
var
Srv : TSimpleIPCServer;
Clt : TSimpleIPCClient;
begin
{$I FindWindowTest.lrs}
// Programm nur einmal starten
Application.Initialize;
Clt := TSimpleIPCClient.Create(nil);
try
Clt.ServerID := 'OneAndOnly4535435';
if Clt.ServerRunning then
Application.Terminate;
finally
Clt.Free;
end;
if not Application.Terminated then
begin
Srv := TSimpleIPCServer.Create(nil);
try
Srv.ServerID := 'OneAndOnly4535435';
Srv.Global := True;
Srv.StartServer;
Application.CreateForm(TForm1, Form1);
Application.Run;
finally
Srv.Free;
end;
end;
end.
Werde mal testen ob das so unter Linux läuft.
Grüße,
Uwe