Programm nur einmal starten

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
kunstlust
Beiträge: 259
Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kontaktdaten:

Programm nur einmal starten

Beitrag 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?
Benutzeravatar
CodeCommander
Beiträge: 213
Registriert: 02.03.2014 16:06

Beitrag von CodeCommander »

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 ~
Benutzeravatar
kunstlust
Beiträge: 259
Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kontaktdaten:

Re: Programm nur einmal starten

Beitrag von kunstlust »

Danke CodeCommander, das habe ich gesucht, darauf kann ich aufbauen! :bounce:
Benutzeravatar
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

Beitrag von ts-soft »

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.
Bild
Benutzeravatar
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

Beitrag 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.
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: Programm nur einmal starten

Beitrag 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.
Signatur und so
Benutzeravatar
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

Beitrag von ts-soft »

Genau, dafür gibts auch benannte Mutex:

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.
Bild
Benutzeravatar
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

Beitrag 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.
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: Programm nur einmal starten

Beitrag 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.
Signatur und so
Benutzeravatar
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

Beitrag 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.
Antworten