時間があったのでサンプル作ってみました。
こんな感じにしたかったのかな?
http://www.geocities.co.jp/SiliconValley/8652/download/flock.lzh
ファイルを開けないことを前提にしているので、
暗号化は行なっていません。
これをスタートアップにでも入れておけば
誰もデータを改ざんできないのではないでしょうか。
すいませんがLZH形式ではありませんでしたと、
解凍エラーが。。。
> http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200401/04010047.txt
> http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200401/04010038.txt
> http://www.mtakahashi.com/cgi.cgi?10531
> http://kerochan.no-ip.com/vcsdk/bbs/view.php?id=3792
> http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+12025
とりあえず、解決したなら全部に報告して下さい。
もしかしたら zip になってたかもしれません
というか、解決したならサンプルもいらないかな?
# .lzh を .zip に変えると解凍できると思います
とりあえずサンプルを使用して、何とかやってみます。
これは普通にコンパイラしてDOSで動くのですか?
よかったら仕様等もお願いできますか?
すいませんがもう少しおつきあいお願いいたします。
zipで解凍できました。
追加ですが、このプログラムを組み込む場合iniファイルの書き換えが
必要となると思うのですが(ユーザーが入力したファイル名・pass)
iniファイルをプログラム中に書き換えるのは簡単に出来るのでしょうか?
>これは普通にコンパイラしてDOSで動くのですか?
これはあくまで Windows アプリケーションなので、
コンソールでは動作しないと思います。
# というか、コンソールだとプログラムが動いているのが丸見えです。
## ConsoleWindow を表示しないようにする設定があった気がしますが。
>iniファイルをプログラム中に書き換えるのは簡単に出来るのでしょうか?
この辺は MSDN や Google で検索してください。
>よかったら仕様等もお願いできますか?
仕事の片手間で作ったものなので、適当です。
プログラムを終了させず、排他指定で開きっ放しになっているだけです。
とりあえず、FileLock 関数と FileUnLock 関数で
ファイルを排他指定で開いています。(ファイルに関する処理はここくらいです)
その他の関数等は MSDN に記載されていると思います。
# あとは自分で調べるなりしてください。
# 特別なことはしていないと思います。
最後に、ロックは電源を落とすと自動的にとけますか?
なぜ試さない?
訂正。
自分がやったらとけたので、立ち上がったらまた動かないのかなぁと。
あなたは、自分が作ったソフトがどのような挙動をするのか理解していますか?
ファイルがロックされるのは、あなたのソフトがそのファイルを排他指定で開いている
からです。あなたのソフトがそのファイルを開いている間しかロックされていません。
ならば、あなたのソフトが起動していないときはロックされているはずもありません。
パソコンの電源を落とせば、当然あなたのソフトは終了し、ロックは解けるでしょう。
パソコンを再起動したときは、あなたのソフトは勝手に起動してはくれません。つま
り、ロックはかかっていません。
パソコンの電源を落とし、再起動したあともロックをかけ続けたいのなら、パソコンが
起動したときにあなたのソフトを自動的に起動し、終了前にロックしていたファイルを
自動的に再ロックするようにしなければなりません。
…やり方くらい自分で調べてくださいね。
それとも、パソコンの電源が落ちても終了しないようなソフトをお望みですか?(笑
>…やり方くらい自分で調べてくださいね。
答えがこのスレッドのどこかにあります。
探せますか?
私ではなくU-Tさんが作成した物ですし。。。
やはり関数を使用してでは排他的でしか無理なのですね。
>私ではなくU-Tさんが作成した物ですし。。。
先ほどの書き込みをした際に、それを書こうかどうか迷ったんです。
「失礼、あなたのプログラムじゃありませんでしたね(笑」って。
しかし、さすがにサンプルを自分なりに書き換えてみてるだろうと思い、書かないでお
きました(書かないのは U-t さんに失礼かとも思いましたが)。
まさかそういうレスがつくとは思わなかった。
>関数を使用してでは排他的でしか無理なのですね
関数ひとつで何でもできるとお思いですか?
プログラムは関数のみでできているわけではありません。
#横槍を入れるべきではありませんでした
#続きは忍耐強い方にお任せします