문제

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