سؤال

وكيف يمكنني معرفة ما إذا كان يتم استخدام ملف بالفعل من قبل عملية أخرى من Powerscript؟

هل كانت مفيدة؟

المحلول

وأفضل طريقة التي وجدت لاستدعاء WINAPI CreateFile لفتح ملف معين في وضع خاص.

أولا، أن يعلن ما يلي الخارجي وظيفة محلية (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"

وبعد ذلك من 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)

نصائح أخرى

هل يمكن أن محاولة فتحه وإذا كان أخطاء ثم ربما تأمينه بالفعل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top