Abfragen, ob Programm schon geöffnet wurde

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

Beitrag von FGK »

@Thomas

recht viel einfacher wirst du es leider nicht
hinbekommen. Und vor allem sollte die
Abfragerei ja auch 100% funktionieren, denn
ne halbe Sicherheit bringt überhaupt nichts.
Deine einfache Möglichkeit wäre in der Tasklist
nach deinem Programm zu suchen. Doch was
wäre wenn ich eine Instanz starte, diese mit dem
Pfad auf Existenz in der Taskliste suche, aber
bevor ich es ein zweitesmal gestartet habe in ein
andres Verzeichnis verschoben hab? Dann wird
die "Dublette" des Programms nicht gefunden,
weil ja der Pfad nun ein anderer ist.

Ich würde die vorgefertigten Lösungen von den Kollegen
nutzen auch wenns ein wenig steinig für dich sein
sollte sich da einzulesen. Aber ums ganz banal zu sagen,
was solls dich kümmern wenn die Routinen so laufen
wie du es brauchst?

Gruß FGK
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

bobobo hat geschrieben:ich hab aber linux :shock:
Meine ersten Schritte mit PB und Linux ... kein Plan ob das so stimmt :

Code: Alles auswählen

Import ""
	semget(key,count,flags)	
	semctl(semid,sem_num,kommando,arg)
EndImport
 
#IPC_CREAT	= 1000
#IPC_EXCL	= 2000
#IPC_RMID	= 0
#PARM		= 666

sid = semget('MYKEY',1,#IPC_CREAT|#IPC_EXCL|#PARM)

If sid = -1
	MessageRequester("Fehler","Programm laeuft bereits")
	End
EndIf 

OpenWindow(0, 0, 0, 300,300, "Test") 

Repeat:Until WaitWindowEvent() = #PB_Event_CloseWindow

semctl(sid,0,#IPC_RMID,0)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

und ich kanns nicht testen (ich hab da oben nämlich aus taktischen
gründen gelogen :oops:)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

*zensiert*

Naja, immerhin weiss ich jetzt das Microsofts Produkte
besser dokumentiert sind ...
LoD
Beiträge: 9
Registriert: 26.08.2008 19:30

Beitrag von LoD »

Ich habe heut angefangen mit PureBasic zu programmieren (davor hab ich mich mit BlitzBasic herumgeschlagen) und hab jetzt ein Problem mit bobobos Lösungsvorschlag.
Die beiden Prozeduren wollen nicht funktionieren, da mein PB 'WideCharToMultiByte_' und die anderen Befehle mit dem '_' am Ende nicht kennt.

Ich vermute dafür brauch ich irgendeine dll..? Oder funktioniert das in der Demo-Version einfach nicht?

Auf jeden Fall wäre ich über Hilfe sehr dankbar, auch wenn der Thread scho a weng älter ist.

Lg LoD
Little John

Beitrag von Little John »

LoD hat geschrieben:Oder funktioniert das in der Demo-Version einfach nicht?
So isses. Die API-Befehle ("_" am Ende) funktionieren nur in der Vollversion -- die sehr preiswert ist. ;)

Gruß, Little John
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag von saimen »

bei mir hat das Script von bobobo leider nicht funktioniert. Konnte mein programm zweimal starten.

Gibts noch eine Möglichkeit?
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Die PBOSL stellt die ProcessLib zur verfügung, womit man relativ einfach feststellen kann, ob ein Programm gerade in der laufenden Taskliste vorhanden ist (Taskmanager) ...

So wie FGK schon sagte : Besser in der Taskliste (Speicher) nachschauen, ob ein Programm gestartet wurde. Wenn ich das PRG einmal auf C: und einmal auf D: habe, krieg ichs dann auch zweimal gestartet ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten