お仕事のほうで、こんな依頼がありました。
代替案考えておこうかなぁ。
「イントラのポータルサイトに毎日社員全員がアクセスして欲しい。ただ、PC起動時(スタートアップ)にブラウザを起動してポータルを見せようとすると、社員の出社時間帯にアクセスが集中してサーバに負荷がかかる。ので、とある時間帯にアプリケーションがIEのキャッシュを調べ、ポータルにアクセスしていないようだったらメッセージをポップしてポータルの閲覧を促したい」というものです。
____ / \ / ─ ─ \ ないない / (●) (●) \ | (__人__) | \ ` ⌒´ ,/ r、 r、/ ヘ ヽヾ 三 |:l1 ヽ \>ヽ/ |` } | | ヘ lノ `'ソ | | /´ / |. | \. ィ | | | | |そんな依頼メールを読んでモニタにウーロン茶噴き付けそうになりましたが、お仕事なので一応キャッシュのハンドリングを調べてみました。すると[HOWTO] Visual C# .NET で WebBrowser コントロールをホストするアプリケーションからキャッシュをクリアする方法というのを発見しました。ソースも載っているのですが、読むと FindFirstUrlCacheEntry という Win32API を使えば、キャッシュファイルの情報を INTERNET_CACHE_ENTRY_INFOA 構造体でもらえるらしいです。なるほど。
IntPtr lpszSourceUrlName; // で URLなんかを参照して FILETIME LastAccessTime; // でラストアクセスタイムが引けると。FindFirstUrlCacheEntryを使ったアプリケーションの用途をぐぐってみると大抵キャッシュのクリアなのですが、こんな使い方で実装することになるとは。それにしても、エンドユーザにはこんな常駐アプリ作ったやつ誰だー!なんてすげぇ嫌われそうだなぁ。バグなんか作りこんじゃったら「ポータル見てるって言うのにうざったいメッセージがあがるんだけど」なんて問合せがありそうですね。どうみてもマルウェアです本当にありがとうございました。
代替案考えておこうかなぁ。



