Programm nur einmal starten
Programm nur einmal starten
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?
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?
- CodeCommander
- Beiträge: 213
- Registriert: 02.03.2014 16:06
Mutex nennt sich das. In RS's Winapi Lib gibt es n Code: http://www.rsbasic.de/aktualisierung/wi ... 3%A4uft.pb
Zuletzt geändert von CodeCommander am 18.01.2015 14:27, insgesamt 1-mal geändert.
~ DELETE ~
Re: Programm nur einmal starten
Danke CodeCommander, das habe ich gesucht, darauf kann ich aufbauen! 
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Programm nur einmal starten
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- NicTheQuick
- Ein Admin
- Beiträge: 8837
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Programm nur einmal starten
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
Hm, sag das mal den Windowsprogrammierern...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.
MSDN: CreateMutex() hat geschrieben:Multiple processes can have handles of the same mutex object, enabling use of the object for interprocess synchronization.
Signatur und so
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Programm nur einmal starten
Genau, dafür gibts auch benannte Mutex:
CreateMutex function
Creates or opens a named or unnamed mutex object.
CreateMutex function
Creates or opens a named or unnamed mutex object.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- NicTheQuick
- Ein Admin
- Beiträge: 8837
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Programm nur einmal starten
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
Wo ist das ersichtlich? CodeCommander hat einen Code gepostet der die Api-Variante benutzt und deine Aussage war allgemein gehalten...NicTheQuick hat geschrieben:Ja klar. Ich habe aber von 'CreateMutex()' in PB gesprochen.
Darum kümmert sich ja dann Windows.NicTheQuick hat geschrieben:Dafür müssen sie sich eben gemeinsamen Speicher teilen.
Signatur und so
- NicTheQuick
- Ein Admin
- Beiträge: 8837
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Programm nur einmal starten
Ich denke einfach immer plattformübergreifend. :P Und ich habe direkt auf kunstlust antworten wollen.Derren hat geschrieben:Wo ist das ersichtlich? CodeCommander hat einen Code gepostet der die Api-Variante benutzt und deine Aussage war allgemein gehalten...
Klar.Derren hat geschrieben:Darum kümmert sich ja dann Windows.