現在全世界で利用者が自分を入れて3人しか確認できていませんが、自分が使うので実装する!って事で、Gyazo to TumblrことGyamblr#くんをMetro領域のキャプチャに対応させました。(→DLは配布記事で)
今日は、その辺についてアイディアをメモっておきます。基本アイディアはgyazowin+で同じく悩んでた@tyoroで、ダベってて形になったって感じです。
ぶっちゃけ、力技ですが実装の楽さと実用性の落としどころはこんなもんでしょう。他のGyazoクローン作者の参考にでもなればと思います.
問題点
”Windows8の新しいUI”ことMetroUI領域(正式名称わからん)と従来のデスクトップ領域の関係性は、Metro上でWin7のVMが走っているような感じなので、従来のWindowsフォームアプリとして作成してあるGyamblr#からはMetro領域への干渉が構造的に出来ず、スクリーンショットが撮れませんでした.
かといってMetro側のWindowsストアアプリは、Immersive(没入)型というスマートフォンのような1画面完結でお互いのアプリケーションに干渉しない仕組みなので、起動直前の状態のスクショ撮ったり、バックグラウンドでキャプチャもなかなか難しそうです。
解決策
OSのスクリーンショット機能はMetro関係なく使えるようなので、起動前にPrintScreenキーで画面全体撮ってもらい、Gyazo起動時にクリップボードにBitmapがあればそのスクショをトリミングする形式にしました。
20行足すぐらいで出来たので現実的でしょう。
頑張るなら、プロセス切り替えとPrintScreenキー偽装、タイマー操作などで必死にやれば何とかなるかもしれませんが、そこまでやるのは不毛でしょう。
理想と現実
Gyazoなら、作る側も利用側も手軽にやろうぜ精神なのでこんなのでも許されますけど、真面目なフリーソフトとか作ってる人、Windows8対応で発狂する人でるんじゃなかろうか。
Windowsストアアプリの求めた理想は素敵ですけど、やっぱレガシーな部分が足を引っ張るよなぁと、しみじみ。わかっていたことですけどね。(笑)