Kommunikation zwischen Prozessen

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
sven1
Beiträge: 3
Registriert: So 22. Apr 2012, 20:31

Kommunikation zwischen Prozessen

Beitrag von sven1 »

Hey,

ich bin neu hier im Forum und wende mich gleich mit einer Frage an euch! Ich verwende ein Programm names "Log Monitor". Dieses überwacht ein Verzeichnis in Realzeit und sobald eine neue Datei in diesem Verzeichnis angelegt wird, startet dieses Programm eine Lazarus-Anwendung. Dabei wird der Name der Datei in einer Variable der Form %File="..." gespeichert und soll auch an meine Lazarus-Anwendung übergeben werden.

Deswegen nun die Frage: Wie komm ich in meiner Lazarus Anwendung an genau diese Variable ran???

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Kommunikation zwischen Prozessen

Beitrag von theo »

Meinst du als Kommandozeilenparameter?

http://wiki.freepascal.org/Command_line ... _variables

sven1
Beiträge: 3
Registriert: So 22. Apr 2012, 20:31

Re: Kommunikation zwischen Prozessen

Beitrag von sven1 »

Ich beschäftige mich leider noch nicht so lang mit solchen Dingen! Das Programm welches das Verzeichnis überwacht und den File-Namen der neu erstellten Datei an meine Lazarus Anwendung weitergeben soll, ist folgendes:

http://www.aplusfreeware.com/categories ... nitor.html

Ich weiß, dass dieses Programm den Namen in einer Variable %File="..." als Parameter speichert und an das externe Programm (also meine selbst erstellte Anwendung) weitergibt. Mein Problem ist der Zugriff darauf, beim Start meiner Anwendung. Was macht denn ein Kommandozeilenparameter?

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Kommunikation zwischen Prozessen

Beitrag von theo »

sven1 hat geschrieben:Was macht denn ein Kommandozeilenparameter?


Selber nicht viel.
Es ist einfach ein Parameter, der dem zu startenden Programm mitgegeben wird.

z.B.

Startet Firefox mit der Seite www.mozilla.com

Firefox liest nun den Parameter www.mozilla.com über sowas wie ParamStr ein. Siehe Beispiel im Link oben.

sven1
Beiträge: 3
Registriert: So 22. Apr 2012, 20:31

Re: Kommunikation zwischen Prozessen

Beitrag von sven1 »

Perfekt!!! Es hat funktioniert! Danke für die schnelle und kompetente Hilfe :)

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Kommunikation zwischen Prozessen

Beitrag von mschnell »

sven1 hat geschrieben:Dieses überwacht ein Verzeichnis in Realzeit und sobald eine neue Datei in diesem Verzeichnis angelegt wird...

In Linux gibt es eine "Datei", die aus einem Lese-Zugriff zurückkommt, sobald sich in einem bestimmten Verzeichnis etwas ändert. So geht das ohne aktives Pollen. Ob es das in Windows auch gibt, weiß ich nicht, vermute ich aber.

-Michael

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Kommunikation zwischen Prozessen

Beitrag von Maik81ftl »

Dies wird es wohl auch unter "Windoof geben, aber wohl erst ab Win Vista
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Kommunikation zwischen Prozessen

Beitrag von Antrepolit »

Maik81ftl hat geschrieben:Dies wird es wohl auch unter "Windoof geben, aber wohl erst ab Win Vista

Methoden zum Überwachen von Verzeichnissen gibt es seit Windows XP. Stichwort ReadDirectoryChanges.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365465%28v=vs.85%29.aspx
Grüße, Antrepolit

care only if your os is really burning

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Kommunikation zwischen Prozessen

Beitrag von pluto »

Ich weiß nicht mehr genau wie die Klasse hieß, verwendet habe ich sie auch noch nicht, bin eher durch Zufall über diese Möglichkeit gestolpert:
In Lazarus besser gesagt in FPC gibt es dafür schon eine Möglichkeit, Änderungen in einem Verzeichnis zu überwachen. Ich werde mal eben schauen, ob ich den Namen der Klasse wieder finde und sehen ob sie Plattform unabhängig ist. Sowas gab es ja auch schon in Windows 95....

Änderungen von Verzeichnissen zu überwachen....
MFG
Michael Springwald

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Kommunikation zwischen Prozessen

Beitrag von creed steiger »

Das hier:
http://www.cromis.net/blog/downloads/directory-watch/

kannst du nehmen um das externe Programm zu vermeiden und alles intern zu lösen.

Sollte ohne oder mit kleinen Anpassungen verwendbar sein (natürlich Windows only).

Für Linux sowas:
http://www.friends-of-fpc.org/research/ ... g/inotify/

Antworten