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

ありがとうございます!



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.100758への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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