Eine Anwendung nur 1 mal starten lassen.

Übersicht BlitzBasic DLLs und Userlibs

Neue Antwort erstellen

Xenon

Betreff: Eine Anwendung nur 1 mal starten lassen.

BeitragMi, Aug 25, 2004 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich hab rausgefunden wie man prüfen kann ob die Anwendung bereits läuft, allerdins nur auf BB Ebene, dh. wenn ein anderes BB Programm der selben Version (B+ bzw. B3D) schon läuft wird hier auch ausgegeben, dass das Programm schon läuft!

Allerdings könnte es nützlich sein.

Xenon

Hier der Userlibcode der Kernel32.decls:
Code: [AUSKLAPPEN]
CreateMutex%(MutexAttributes%, InitialOwner%, name$):"CreateMutexA"
ReleaseMutex%(handle%):"ReleaseMutex"

GetLastError%():"GetLastError"


Hier der B+ Beispielcode:
Code: [AUSKLAPPEN]
Const ERROR_ALREADY_EXISTS = 183

hMutex = CreateMutex(0, True, "BlitzMax_Window_Class")

If hMutex <> 0 Then
   If GetLastError() = ERROR_ALREADY_EXISTS Then
      RuntimeError "Diese Anwendung läuft bereits!"
   End If
End If

ReleaseMutex(hMutex)

window = CreateWindow("Titel", 0, 0, 200, 200, 0, 3)

Repeat
Until WaitEvent() = $803
End


Hier der B3D Beispielcode:
Code: [AUSKLAPPEN]
Const ERROR_ALREADY_EXISTS        =     183

hMutex = CreateMutex(0, True, "Blitz Runtime Class")

If hMutex <> 0 Then
   If GetLastError() = ERROR_ALREADY_EXISTS Then
      RuntimeError "Diese Anwendung läuft bereits!"
   End If
End If

ReleaseMutex(hMutex)

Print "Hallöle!"
WaitKey
End

Jan_

Ehemaliger Admin

BeitragMi, Aug 25, 2004 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Skate, du bist der Gott, der Win API!

*Respekt*
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group