Hallo,
habe da mal zwei Fragen:
1. Ich möchte prüfen ob ein Programm bereits läuft - wie macht man das unter Linux und Windows ?
2. Wie kann ich ein laufendes Programm das mit Form.Hide in den Hintergrund geschickt wurde beenden ?
Gruß Frank
Prüfen ob ein Programm bereits läuft
-
- Beiträge: 6207
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Prüfen ob ein Programm bereits läuft
Vielleicht hilft dir dies weiter : http://wiki.freepascal.org/UniqueInstance/de
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: Prüfen ob ein Programm bereits läuft
Hallo Mathias,
Danke - somit ist die erste Frage geklärt.
Gruß Frank
Danke - somit ist die erste Frage geklärt.
Gruß Frank
-
- Beiträge: 46
- Registriert: Sa 20. Mär 2010, 23:00
- OS, Lazarus, FPC: Win10x64, RaspberryPi, MAC
- CPU-Target: so ziemlich alles
Re: Prüfen ob ein Programm bereits läuft
Moin,
zu 1) würde ich immer mit einem Semaphor machen
De Schorsch
zu 1) würde ich immer mit einem Semaphor machen
De Schorsch
der feind der erde ist der mensch
Re: Prüfen ob ein Programm bereits läuft
Händisch z.B. per Taskmanager. Per Code geht Application.Terminate (ich nutze hier SimpleIPC für die Kommunikation, auch für die Abfrage, ob eine Instanz schon läuft).DL3AD hat geschrieben:2. Wie kann ich ein laufendes Programm das mit Form.Hide in den Hintergrund geschickt wurde beenden ?
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: Prüfen ob ein Programm bereits läuft
... manchmal sind Dinge sooo einfach
Server und Client haben die selbe ID und schon funktioniert es dass nur eine Instanz läuft.
Gruß Frank
Server und Client haben die selbe ID und schon funktioniert es dass nur eine Instanz läuft.
Code: Alles auswählen
if IPCClient1.ServerRunning then Halt else IPCServer1.Active:= true;
Gruß Frank