CreateFileでファイルのロックがしたいです。
refstrでファイルを指定するのではなくて
C:\Users\User名\Desktop\○○.exe
みたいな感じで最初から指定してファイルをロックしたいのですが
この場合どういったソースを書けばいいですか?
ちなみに下記ソースは拾い物です
#include "kernel32.as"
#define INVALID_HANDLE_VALUE -1
#define GENERIC_READ 0x80000000
#define OPEN_EXISTING 3
#define FILE_ATTRIBUTE_NORMAL 0x00000080
#define NULL 0
title "ロックするファイルを選択してください"
dialog "*", 16
if (stat == 0) : end
fname = refstr
// ファイルハンドルを取得する
CreateFileA fname, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL
hFile = stat ; ファイルハンドル
if (hFile == INVALID_HANDLE_VALUE){
dialog "ファイルハンドル取得失敗" : end
}
// ファイルサイズを取得
FileSizeHigh = 0
GetFileSize hFile, varptr(FileSizeHigh)
FileSizeLow = stat
if (FileSizeLow == -1){
dialog "ファイルサイズ取得失敗"
gosub *close
end
}
// ファイルをロックする
LockFile hFile, 0, 0, FileSizeLow, FileSizeHigh
if (stat == 0){
dialog "ロックに失敗しました"
gosub *close
end
}
dialog "OKボタンを押すと開放します"
// ファイルのロックを解除する
UnLockFile hFile, 0, 0, FileSizeLow, FileSizeHigh
if (stat == 0){
dialog "ロックの解除に失敗しました"
gosub *close
end
}
gosub *close
stop
*close
// ファイルハンドルを閉じる
CloseHandle hFile
return