以前の日記の続き。
とりあえず、2chスレに投下した感じ目に見えた誤動作はしていなかった模様。
が、ツールを起動したままWindowsをシャットダウンした場合、Windowsからの終了メッセージを無視して居座り続ける事が発覚……orz
どうにか対処したいものの、やり方がわからず途方にくれる。
仕方が無いので、RSSの取得でタイムアウトが起こった場合に、別サーバにRSSを取りにいく機能を追加した。
こっちは、元のRSS用URIの配列化と、タイムアウト時に配列の参照添え字のカウントアップを入れる位だったのであっさりと実装完了。(ただし、テストはめんどくさい)
次に、めぼしいところにログを入れる。
あまり重厚に作るつもりも無いので、IO::StreamWriterをたくさん書いただけ。
ショボイが、必要十分だとおもうのでこっちも完了。
次、VirtualPC上での動作チェックで、Windows2000だと、システムエラーで落ちる。
何度試しても、.NetFrameworkを入れなおしても改善しない。
悩みながら、似た事例はないかと検索に精を出す。
しかして3時間後、VC2008ランタイムの入れ忘れだと言うことに気がついた……/(^o^)\
残るは、シャットダウン時の問題。
結局、先の検索の途中で対処法が載っていた。
フォームのFormClosingイベント内で、Windows::Forms::CloseReason::UserClosingの値を見て、ユーザーからの終了か、Windowsからの終了かを判断すればよかったらしい。
フォームのクローズは作ってあったよなぁ、とおもいつつ該当箇所を見たところ、なにやら微妙にイベント名が違う。
対処法の載っていたページによると、このイベントは .NetFramework 2.0からは使われなくなったらしい。
俺、なんでそんなモン使ってたんだろう、普通に組んでれば使うはず無いんだが……
ともあれ、これで問題は一通り解決。
しかし、.NetFrameworkは生産性高いなぁ。
これWindowAPIでフルスクラッチで組んだら相当めんどくさいような気がする。
それをツール作るのが2回目の俺が数日で作れちゃうんだもんなぁ。
完成品のらいつべバルーンをみんな利用してくれ。
コメントを残す