フリーズなどで強制終了を余儀なくされた時に、編集中のテキストを保存したいのですが、
少し探してみたところ、どこにもありませんでした。
これは可能なのでしょうか・・
類似したものでもいいので、教えてください。
VB6です
いくらなんでも無理でしょう。
だいいちフリーズしたかどうかどうやって検知するのでしょう。
プログラムマネージャーが出て来た時にはもう遅いわけですから。
フリーズしないプログラムを書くことが一番ですが、自分のプログラムが原因でなくても
フリーズが起こる場合も有りますね、私はこんなことをして逃げています。
テキストエディターならまず普通に入力している時はフリーズしないでしょうから、
何か特殊な事(たとえばFTPサーバーに直接書き込むとか)をする前にテンポラリーファイルに
テキストの内容を書き込みます。書き込む場所は、App.Pathが良いでしょう。
アプリケーションの終了時、テンポラリーファイルを消します、正常終了です。
次にアプリを立ち上げた時先ずテンポラリーファイルを見て、テンポラリーファイルが
残っていれば、前回が異常終了とみなし、メッセージボックスで前のデータ−を読み込むかどうか聞きます。
これで殆どの場合助かります。
一応FormのイベントでQueryUnloadってのがあります。
使い方は下記参照。
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Select Case UnloadMode
Case vbFormControlMenu '×ボタンをクリックした
Case vbFormCode 'コード内でUnloadステートメントが実行された
Case vbAppWindows '現在のWindowsセッションが終了
Case vbAppTaskManager 'タスクマネージャによって終了される
Case vbFormMDIForm 'MDIフォームが閉じられたため、MDI子フォームが閉じられる
Case vbFormOwner 'オーナーが閉じられているため、フォームが閉じられている
End Select
End Sub
フリーズ後で動作するかは分かりませんが、タスクマネージャによって終了されたときにイベントが発生するので、ここでファイルに書き込めばいいかと思います。
それかタイマーで一定間隔ごとに書き込むとか・・・。
やはり無理ですかね・・・
とりあえず、タイマーで妥協してみます。
ありがとうございました
ツイート | ![]() |