Seite 1 von 2
Programm nur einmal starten
Verfasst: 04.08.2014 10:40
von kunstlust
Ich habe eine Verständnisfrage:
Ich möchte ein Tool zum telefonieren schreiben, da unsere Telefonanlage über eine REST-Schnittstelle verfügt, ist das ansteuern prinzipiell keine so große Problem, aber das PB Programm wird über Parameter aus einer andere Applikation zum wählen veranlasst, also wird die Nummer über ein CMD übergeben. Das PB Programm, soll aber im Hintergrund immer nach neuen Anrufer schauen, also nur einmal gestartet werden können. Ich meine, dass die über die Prozess ID gehen müsste, oder wir ist zu verhindern, dass ein Programm mehrfach gestartet wird?
Verfasst: 04.08.2014 10:49
von CodeCommander
Mutex nennt sich das. In RS's Winapi Lib gibt es n Code:
http://www.rsbasic.de/aktualisierung/wi ... 3%A4uft.pb
Re: Programm nur einmal starten
Verfasst: 04.08.2014 10:53
von kunstlust
Danke CodeCommander, das habe ich gesucht, darauf kann ich aufbauen!

Re: Programm nur einmal starten
Verfasst: 04.08.2014 12:37
von ts-soft
Re: Programm nur einmal starten
Verfasst: 04.08.2014 13:42
von NicTheQuick
Das hat nichts mit 'Mutex' zu tun, wenn es Prozessübergreifend sein soll. Mutexe braucht man für mehrere Threads innerhalb eines Prozesses.
Re: Programm nur einmal starten
Verfasst: 04.08.2014 15:06
von Derren
NicTheQuick hat geschrieben:Das hat nichts mit 'Mutex' zu tun, wenn es Prozessübergreifend sein soll. Mutexe braucht man für mehrere Threads innerhalb eines Prozesses.
Hm, sag das mal den Windowsprogrammierern...
MSDN: CreateMutex() hat geschrieben:Multiple processes can have handles of the same mutex object, enabling use of the object for
interprocess synchronization.
Re: Programm nur einmal starten
Verfasst: 04.08.2014 15:22
von ts-soft
Genau, dafür gibts auch benannte Mutex:
CreateMutex function
Creates or opens a named or unnamed mutex object.
Re: Programm nur einmal starten
Verfasst: 04.08.2014 15:29
von NicTheQuick
Ja klar. Ich habe aber von 'CreateMutex()' in PB gesprochen. Natürlich gibt es API-technisch auch welche, die über mehrere Prozesse hinweg funktionieren. Dafür müssen sie sich eben gemeinsamen Speicher teilen.
Re: Programm nur einmal starten
Verfasst: 04.08.2014 15:36
von Derren
NicTheQuick hat geschrieben:Ja klar. Ich habe aber von 'CreateMutex()' in PB gesprochen.
Wo ist das ersichtlich? CodeCommander hat einen Code gepostet der die Api-Variante benutzt und deine Aussage war allgemein gehalten...
NicTheQuick hat geschrieben:Dafür müssen sie sich eben gemeinsamen Speicher teilen.
Darum kümmert sich ja dann Windows.
Re: Programm nur einmal starten
Verfasst: 04.08.2014 15:42
von NicTheQuick
Derren hat geschrieben:Wo ist das ersichtlich? CodeCommander hat einen Code gepostet der die Api-Variante benutzt und deine Aussage war allgemein gehalten...
Ich denke einfach immer plattformübergreifend. :P Und ich habe direkt auf kunstlust antworten wollen.
Derren hat geschrieben:Darum kümmert sich ja dann Windows.
Klar.