艦これ 諜報員 ver.0.5

SWFファイルから画像を抽出する – Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/5136

の機能を組み込んで、諜報員の艦娘を秘書艦に合わせます。

image

途中で立ち上げると、うまく切り替わらないので、あからじめ諜報員を立ち上げて置くか、艦これのほうで秘書艦を変えてみてください。このあたりは、のちのち修正しましょう。秘書官を立ち上げたときに、前の艦娘を表示したほうがよさそうだし。

バイナリのほうは 艦これ 諜報員 – 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 から。

カテゴリー: C#, 艦これ パーマリンク

艦これ 諜報員 ver.0.5 への1件のコメント

  1. 時計ジェイコブス のコメント:

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

コメントは停止中です。