Überprüfen Sie, ob eine Datei von einem anderen Prozess geöffnet ist
-
03-07-2019 - |
Frage
Wie kann ich überprüfen, ob eine Datei bereits von einem anderen Prozess von Powerscript verwendet wird?
Lösung
Der beste Weg, die ich gefunden ist, die WinAPI Createfile nennen eine bestimmte Datei im Exklusivmodus zu öffnen.
Zuerst erklären die folgende lokale externe Funktion (PB10)
FUNCTION Long CreateFile(ref string lpszName, long fdwAccess, long fdwShareMode, long lpsa, &
long fdwCreate, long fdwAttrsAndFlags, long hTemplateFile) LIBRARY "Kernel32.dll" &
ALIAS FOR "CreateFileA;Ansi"
FUNCTION boolean CloseHandle (long file_hand) LIBRARY "KERNEL32.DLL"
dann von Powerscript:
CONSTANT ulong GENERIC_ACCESS = 268435456 // &H10000000
CONSTANT ulong EXCLUSIVE_ACCESS = 0
CONSTANT ulong OPEN_EXISTING = 3
long ll_handle
String ls_file
ls_file = "c:\temp\myfile.xls"
ll_handle = CreateFile ( ls_file, GENERIC_ACCESS, EXCLUSIVE_ACCESS, 0, OPEN_EXISTING, 0, 0)
IF ll_handle < 1 THEN
MessageBox("", "Can't open, maybe missing or already opened ?!?")
ELSE
MessageBox("","File can be opened")
END IF
CloseHandle(ll_handle)
Andere Tipps
Sie könnten versuchen, es zu öffnen, und wenn es Fehler dann ist es wahrscheinlich bereits gesperrt.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow