Seite 2 von 2

Verfasst: 04.02.2008 20:55
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

Verfasst: 04.02.2008 20:59
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)

Verfasst: 05.02.2008 10:54
von bobobo
und ich kanns nicht testen (ich hab da oben nämlich aus taktischen
gründen gelogen :oops:)

Verfasst: 05.02.2008 11:47
von edel
*zensiert*

Naja, immerhin weiss ich jetzt das Microsofts Produkte
besser dokumentiert sind ...

Verfasst: 26.08.2008 20:17
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

Verfasst: 26.08.2008 20:55
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

Verfasst: 12.11.2008 19:47
von saimen
bei mir hat das Script von bobobo leider nicht funktioniert. Konnte mein programm zweimal starten.

Gibts noch eine Möglichkeit?

Verfasst: 13.11.2008 00:21
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 ;)