Gyazowin 2007/11/11

Current release of Gyazowin (Gyazo client for Windows) now available at Gyazo.com.

お知らせ (2009-11-12)

Gyazowin は公式クライアントになりました。
ダウンロードは Gyazo.com からどうぞ。ソースコードは github で公開しています。

以下は、公開当時の投稿です。


というわけで、Gyazo: 画像の楽々アップロード のWindows版クライアントができました。
(手元に XP と Vista しか環境がないので、それ以外の環境での動作が確認できていません。コメント欄に動作報告を頂けると幸いです。)

2007/11/14 更新: MSVCP80.DLL がない環境で起動できない問題を修正しました。( /MD → /MT しただけです)

画面上をマウスでドラッグして選択するだけで、スクリーンショットを簡単に Web 上にアップロードできます。アップロードされた画像は、即座にブラウザで表示され、 URL もクリップボードにコピーされているので、すぐにメッセンジャーやチャットに貼り付けることができます。 Gyazowin.exe に直接画像ファイルをドロップしてアップロードすることもできます。その他 Gyazo に関する詳しい説明は、公式ページをご覧ください。

Windows 以外にも、本家 Mac 版YAA さんが作られた Linux 版があります。スクリーンキャストによるデモは以下で。

Gyazo を知ったのがつい最近。画面のスクリーンショットをメッセや Twitter に貼りたいと思ったときにこれは便利! Windows にも欲しい!と思っても、残念ながら Windows だと Ruby も ImageMagick も入ってる、なんて環境はほとんどありません。指定した範囲のスクリーンショットを撮る便利なコマンドも用意されていません。うーん、ないなら作ってしまえ。折角作るんだったら、どこでも簡単に使えるようにしたいし、やっぱりスタンドアロンで動かせないと!・・・という感じで、そんなに時間は掛からないだろうと踏んで手をつけはじめたものの、結局色々書くことになりました。だいぶ手抜きしてるけど、スクリプトに比べるとやっぱり長いなぁ。

アップロードした画像が削除できないのは、(他の人にアドレスが推測されることはないとはいえ)やっぱり困るので、削除できる機構は早いところ欲しいですね。


投稿者:

tnj

すごい!って言ったり言われたりの毎日を過ごしたい Twitter: @tnj

「Gyazowin 2007/11/11」への22件のフィードバック

  1. Gyazo を始めたのは僕ではないので、 Gyazo の本来の思想とは違うかもしれませんが、少なくとも Gyazowin には、おそらく期待されるような凄さは何もありません。

    ただ、簡単です。なんの手間もないです。

  2. ピンバック: bookmark_2007-12-07
  3. id.txt は名前通りユーザID代わりで、本来は削除機能などに利用される予定らしいので、オリジナルと同様に初回アップロード時に自動生成するようにしています。
    readme.txt にも書いていますが、現在も http://gyazo.com/edit.cgi?id={id.txtの中身} にアクセスすることで自分のアップロードした画像の一覧が表示できるようになっています。

  4. 特に小難しいことを言うつもりはないのですが、ひとまず Creative Commons Attribution-Noncommercial 2.1 Japan License にて公開しています。(このサイトのフッタ表示と同等です)

  5. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    case WM_LBUTTONUP:
    の最後で,
    DestroyWindow(hWnd);
    PostQuitMessage(0);
    のようにPostQuitMessage(0);をDestroyWindow(hWnd);のすぐ後に書いたほうがいいと思います。DestroyWindowだけだと,WM_DESTROYが呼ばれずに,アプリケーションが終了しないことがあります(タスクマネージャを見ると残ってしまっているときがあります)。うちのXP環境でも再現しました。ご検討お願いしますー

  6. おお、ご報告ありがとうございます。反映させていただきます。
    なんとなくですが、
    case WM_CLOSE: DestroyWindow(hWnd); break;
    と定義して、 WM_CLOSE を PostMessage してやる方が Windows の作法的には良いのかも、とか思ったりしたんですがどうでしょう。

  7. tnjさん
    ちょっと調べてみたところ同じ問題で悩んでいる人もいました。
    http://www.daniweb.com/forums/thread43819.html
    DestroyWindow(hWnd); だけでは,アプリが終了しないという内容です。

    作法に関しては,上記ページのコメントでWM_CLOSEはデフォルトのイベントハンドラがWM_DESTROYを呼ぶので特に何もかかなくてよいと書かれていますね。たしかにC++で白紙アプリを作ったときもWM_CLOSEイベントハンドラは記述がありません。

    そうすると
    WM_CLOSEをpostmessageして,イベントハンドラは以下だけでよいということではないでしょうか。
    case WM_DESTROY:PostQuitMessage(0);break;
    Windowの閉じるボタンが押されるとWM_CLOSE -> WM_DESTROYの順番に呼ばれるので,それを模してやるとこれが一番よいかもしれませんね。

  8. 間違えて起動したときにESCキーでキャンセルしたいなあ…と思っているのですが、これって実装可能でしょうか?

  9. 透過ウィンドウを使ってる関係上、キーボードのイベントは取れないので、ちょっと簡単には実装できません。
    一応、右クリックでキャンセルにはなっているのですが、それではダメですか?

  10. ピンバック: makiのブログ
  11. ピンバック: NV’s Blog
  12. ピンバック: NV’s Blog

コメントを残す