Da Purebasic immer die Datei für andere den Zugriffe sperrt habe ich nun eine (schmutzige) Methode gefunden diese zu umgehen.
Hoffe das Purebasic bald Dateien auch Shared öffnen kann.
Bugfix: Ergebnis von CreateFile(...)
Code: Alles auswählen
#FILE_SHARE_DELETE = 4 ; NT4
#FILE_SHARE_READWRITE = #FILE_SHARE_READ | #FILE_SHARE_WRITE
Procedure OpenSharedFile(ID, FileName.s, DesiredAccess = #GENERIC_READ, ShareMode = #FILE_SHARE_READWRITE, TempFile.s = "temp.tmp")
Protected hFile, addr, result
hFile = CreateFile_(FileName, DesiredAccess, ShareMode, 0, #OPEN_ALWAYS, #FILE_ATTRIBUTE_NORMAL, 0)
If hFile = #INVALID_HANDLE_VALUE
result = 0
Else
result = OpenFile(ID, TempFile)
If result
If ID = #PB_Any
addr = IsFile(result)
CloseHandle_(FileID(result))
Else
addr = IsFile(ID)
CloseHandle_(FileID(ID))
EndIf
PokeI(addr, hFile)
Else
CloseHandle_(hFile)
ProcedureReturn 0
EndIf
EndIf
ProcedureReturn result
EndProcedure
Michael