HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1206
さかファイル使用中にできますか2解決


さか

リンク

2023/12/6(Wed) 20:34:49|NO.100758

作成したアプリが使用中のファイルを実行中に変更されたくないので「〜によってファイルは開かれているため、操作を完了できません。ファイルを閉じてから再実行してください。」の表示が出るようにしてファイルに変更・削除を禁止にしたいのですが可能でしょうか。



この記事に返信する


にょろりん

リンク

2023/12/7(Thu) 23:15:06|NO.100772

win32apiのCreateFileを使ってロックでどうでしょう?
引数3つ目、dwShareModeの値を0にします。
終了時には必ずCloseHandleするように。


#uselib "KERNEL32.DLL" #func global CreateFile "CreateFileA" sptr,sptr,sptr,sptr,sptr,sptr,sptr #func global CloseHandle "CloseHandle" sptr #define global GENERIC_READ 0x80000000 #define GENERIC_WRITE 0x40000000 #define OPEN_EXISTING 0x00000003 dim fhandle //ファイルハンドル button gosub "LockFile", *Button1 button gosub "UnlockFile", *Button2 onexit *CLOSE stop // 実行ファイルがあるフォルダの1.txtをロック //3つ目(dwShareMode)を0にする *Button1 lpFileName = dir_exe +"\\1.txt" CreateFile lpFileName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0 fhandle = stat mes "ロックしたよ" return *Button2 CloseHandle fhandle mes "ロック解除したよ" return *CLOSE CloseHandle fhandle
end



さか

リンク

2023/12/13(Wed) 08:39:07|NO.100839

ありがとうございます!



ONION software Copyright 1997-2025(c) All rights reserved.