SWFファイルから画像を抽出する – Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/5136
の機能を組み込んで、諜報員の艦娘を秘書艦に合わせます。
途中で立ち上げると、うまく切り替わらないので、あからじめ諜報員を立ち上げて置くか、艦これのほうで秘書艦を変えてみてください。このあたりは、のちのち修正しましょう。秘書官を立ち上げたときに、前の艦娘を表示したほうがよさそうだし。
バイナリのほうは 艦これ 諜報員 – Moonmile Solutions Blog からダウンロードしてください。
■Fiddler のフック時に HttpClinet は使えない。
考えてみれば、当たり前なのですが、Fiddler でフックしている中で HttpClient などを呼び出すと、元の Fiddler にフックしてしまうために再入が発生します。FiddlerCore の中身は static のものが多いらしく、なんか url などが途中で消えてしまったうまく動きませんでした。
なので、どうせならば、Task を使って遅延させれば OK。
void UpdateKanmusu(string url , int shipId)
{
// TODO: WebClient も Fiddler にフックされるので再入を防ぐために非同期にすること。
// swf をダウンロード
Task.Factory.StartNew(async() =>
{
var cl = new HttpClient();
var data = await cl.GetByteArrayAsync(new Uri(url));
// swf から画像を取り出す
var reader = new SwfReader(data);
var swf = new SwfCompilationUnit(reader);
var lst = swf.Tags.FindAll(x =>
x.TagType == TagType.DefineBitsJPEG3 &&
((DefineBitsTag)x).CharacterId == 13);
var tag = lst[0] as DefineBitsTag;
Bitmap bmp = tag.ToBitmap();
// 描画
UpdateForm(bmp);
});
}
実は、Fiddler でフック中で重たい処理をすると、ブラウザのほうのレスポンスが悪くなります。なので、処理をしないメッセージであればできるだけ早く解放してやるのがベターです。
そんな訳でサンプルソースは http://sdrv.ms/18ZCDbe から。

ティファニー リング 時計ジェイコブス http://www.kxqic.com/