(dafür reicht so 'n semaphore nicht ganz)
(hannich irjendwo in enne delphiforum jefunden und 'ne eck anjepaas)
Code: Alles auswählen
;folgende 2 Prozeduren entstammen dem Forum
;http://www.purebasic.fr/german/viewtopic.php?t=3928&start=0&postdays=0&postorder=asc&highlight=guid+erzeugen
Procedure.s Uni2Ansi(*Unicode.l)
size.l = WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, #Null, #Null, #Null, #Null)
ansi.s=Space(size)
WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, @ansi, size, #Null, #Null)
ProcedureReturn ansi
EndProcedure
Procedure.s GUIDcreate()
g.GUID
If CoCreateGuid_(@g) = #S_OK
unicodeGUID$ = Space(78)
GUIDLen = StringFromGUID2_(g, @unicodeGUID$, Len(unicodeGUID$))
ansiGUID$ = Left(Uni2Ansi(@unicodeGUID$), GUIDLen-1)
EndIf
ProcedureReturn ansiGUID$
EndProcedure
MMFName.s = Guidcreate() ;guiderzeugen
MMFHandle.l
LastError.w
;initialization
MMFHandle = OpenFileMapping_(#FILE_MAP_ALL_ACCESS, #False, MMFName);
LastError = GetLastError_()
If MMFHandle <> 0
MessageRequester("ohoo","Diese Anwendung wird bereits ausgeführt.",0)
EndIf
If (MMFHandle = 0) And (LastError = #ERROR_ACCESS_DENIED)
MessageRequester("ohooo","Diese Anwendung wird bereits unter einem anderem Benutzerkonto ausgeführt.")
EndIf
If (MMFHandle = 0) And (LastError = #ERROR_FILE_NOT_FOUND)
MMFHandle= CreateFileMapping_($FFFFFFFF, #NUL, #PAGE_READWRITE, 0, 1, MMFName)
MessageRequester("ahaaa","isch füül misch so jooot")
End
EndIf
If MMFHandle <> 0
CloseHandle_(MMFHandle)
EndIf