Verfasst: 04.02.2008 20:08
hmm .. folgendes checkt auch ein Laufen unter einem anderen UserAccount
(dafür reicht so 'n semaphore nicht ganz)
(hannich irjendwo in enne delphiforum jefunden und 'ne eck anjepaas)
(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