- PR -

[ASP.NET2.0]固まったウィンドウの処理について

1
投稿者投稿内容
まめ
会議室デビュー日: 2006/03/02
投稿数: 8
投稿日時: 2009-02-10 00:35
カテゴリ違いかもしれませんが、お許しください。初心者なので。

IE6のjavascriptもしくはvbScriptでWindow.Openしたあと Openされたウインドウが固まってしまった場合に そのウィンドウを閉じる方法はありますか?

かたまるとOpenしたウィンドウを保存してた変数ヘのアクセスはことごとくエラ
ーとなります。
(ex) w = window.open('http://hoge.html'); したのなら
 alert(w.status); とか

またその固まったウィンドウのハンドルやProcessIDとスレッドIDはわかりますので Win32APIを使用してアタッチ(AttachThreadInput()だったような)してWM_CLOSEやWM_DESTROYをSendMessage()しても落ちません。

Spy++にてその固まっているウィンドウのメッセージログをとってみたところしっかりと色々なウィンドウメッセージをやり取りしているのはわかっています。WM_CLOSEもしっかり送受信はしています。

何かよい方法はございますでしょうか?

よろしくお願いします

環境は ASP.NET2.0SP1 , IE6, ASP.NET開発サーバ, WindowsXp SP2です。

_________________
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-10 02:45
固まるにはいろいろ原因があるので「閉じる方法」は一概にはなんとも言えませんが
(プロセス落として、呼び出し元も落としてしまうとか。)
×ボタン押して、windowsから応答なし扱いを受ける場合は、プロセス落とすぐらいしか私には思い浮かびません。

その前に、固まってしまう原因を確認したほうがよいかと思います。
(jsで無限ループしているとか、同期XMLHTTPで待たされ続けてるとか、環境依存の場合もありえます。)


別のアプローチですが、
引用:

w = window.open('http://hoge.html'); したのなら
alert(w.status); とか


に関してはtry catchやnull、undefinedチェックなどエラー処理でも対処しておくべきでしょう。


囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2009-02-10 06:38
ASP.NET なら Web アプリケーションだと思いますので、
引用:

またその固まったウィンドウのハンドルやProcessIDとスレッドIDはわかりますので Win32APIを使用してアタッチ(AttachThreadInput()だったような)してWM_CLOSEやWM_DESTROYを SendMessage()しても落ちません。


この手の事はできないですよね。どうやってるんでしょう?
Web アプリケーションの宿命として、「クライアントの不具合や不都合は放っておけ」ってのが落ち着きどころかと。
まめ
会議室デビュー日: 2006/03/02
投稿数: 8
投稿日時: 2009-02-10 23:42
みなさま、ありがとうございます。
とりあえず、固まらないようにする方法を見つけて実装できたので、
この質問自体はクローズさせてください。

ありがとうございました。
1

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