Prüfen ob ein Programm bereits läuft

Für Fragen von Einsteigern und Programmieranfängern...

Prüfen ob ein Programm bereits läuft

Beitragvon DL3AD » 17. Feb 2018, 15:45 Prüfen ob ein Programm bereits läuft

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
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon Mathias » 17. Feb 2018, 16:33 Re: Prüfen ob ein Programm bereits läuft

Vielleicht hilft dir dies weiter : http://wiki.freepascal.org/UniqueInstance/de
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4274
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon DL3AD » 17. Feb 2018, 18:28 Re: Prüfen ob ein Programm bereits läuft

Hallo Mathias,

Danke - somit ist die erste Frage geklärt.

Gruß Frank
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon schorsch » 17. Feb 2018, 22:18 Re: Prüfen ob ein Programm bereits läuft

Moin,
zu 1) würde ich immer mit einem Semaphor machen ;-)
De Schorsch
der feind der erde ist der mensch
schorsch
 
Beiträge: 46
Registriert: 20. Mär 2010, 23:00
OS, Lazarus, FPC: Win10x64, RaspberryPi, MAC | 
CPU-Target: so ziemlich alles
Nach oben

Beitragvon Michl » 17. Feb 2018, 22:32 Re: Prüfen ob ein Programm bereits läuft

DL3AD hat geschrieben:2. Wie kann ich ein laufendes Programm das mit Form.Hide in den Hintergrund geschickt wurde beenden ?
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).
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2260
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon DL3AD » 18. Feb 2018, 10:48 Re: Prüfen ob ein Programm bereits läuft

... manchmal sind Dinge sooo einfach :mrgreen:
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
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste

porpoises-institution
accuracy-worried