- PR -

ウインドウが閉じられた時

1
投稿者投稿内容
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-22 10:29
こんにちは。ASP.NET初心者です。(VB)
お世話になっております。

今回、ウインドウが閉じられた時にイベントを発生させたいと思っています。
発生させたい内容はフォルダを削除するというものです。
調べたのですが…OnClosingメソッドというものが出てきました。
msdnにてOnClosingメソッドの使用例など見たのですが…
よくわかりませんでした。
教えていただけないでしょうか?
また、OnClosingメソッドでできますでしょうか?

使用例を参考にしながら作ったので間違いだらけだと思います。
Private Sub Page_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs)
Directory.Delete(Server.MapPath(".\\Aフォルダ\\"),true)
End Sub

よろしくお願いします。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-11-22 11:33
ASP.NETですよね。

> また、OnClosingメソッドでできますでしょうか?

できないはず。
少なくとも私は知らない。
Windowを閉じるって、IEの終了のことですか?
悪いことは言わないから、あきらめましょう。
Webのシステムでやることではありません。

ちなみに、JavaScriptででならまったく不可能ではないです。
ただ、どんな仕組みにしたところで、Webであろうと、WindowsFormであろうと、
ウィンドウを閉じるイベントを100%拾う、ということはありえません。
これにたよったインプリをすると破綻します。

_________________
たつごろー
codeseek
こみゅぷらす
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2004-11-22 12:23
ども、ぼのぼのと申します。
私も以前、同じ問題にぶちあたって、色々調べてみたのですが、結局、「Webでは無理」という結論に達しました(泣)。
代替案として、処理を「セッションタイムアウト発生時」に行うことにしました。
これなら、Global.asax.vbのSession_Endメソッドに処理を書き込んどけばOKです。
ただし、処理が行われるのはセッションが消える時なので、ブラウザが閉じられた後セッションタイムアウト設定時間経過後になるため、DBの排他解除とかだとちょっと問題あるのですが、フォルダ削除とかならこれで十分だと思います。

引用:
ただ、どんな仕組みにしたところで、Webであろうと、WindowsFormであろうと、
ウィンドウを閉じるイベントを100%拾う、ということはありえません。


WindowsFormの開発はやってないので、あんま詳しいことは知らないのですけど、WindowsFormなら拾えるのでは?いや、裏も取らずにこんな言うのは無責任ですね。すみませんm(_ _)m
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-11-22 12:47
> ウィンドウを閉じるイベントを100%拾う、ということはありえません。

ちょっと説明不足でした。
たとえば、電源を切られたら、そこで終わりです。
イベントは起きません。
そのイベントがおきないとデータベースへのアップデートがされない、
という仕組みにしてしまうと、期待した動作はしないでしょう。

_________________
たつごろー
codeseek
こみゅぷらす
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-22 15:28
>たとえば、電源を切られたら、そこで終わりです。
>イベントは起きません。
>そのイベントがおきないとデータベースへのアップデートがされない、
>という仕組みにしてしまうと、期待した動作はしないでしょう。

確かに電源を切られたら…そうですね。
ありがとうございます。

ウインドウが閉じられたらという考えを変更することにしました。
ウインドウがopenされた時に処理を書くことにしました。
しかし、ウインドウの「×」ボタンがどうしても邪魔になってしまいます。
困りました
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-22 15:51
>ウインドウが閉じられたらという考えを変更することにしました。
>ウインドウがopenされた時に処理を書くことにしました。
>しかし、ウインドウの「×」ボタンがどうしても邪魔になってしまいます。

「×」ボタンを押下時にしたい処理を考え方を変えて処理してみました。
うまくいきました。

ありがとうございました。
またよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)