
私は長い間、この投稿に名前を付ける方法を考えました。その結果、必要に応じて名前を付けました。
私が話したいこと
この投稿はプログラムに関するものです。
主に自分用に作成した非常に小さなプログラム。
Dropboxと統合できる小さなスクリーンショットについて。
しかし、私は何も宣伝したくありません、スクリーンショットはいっぱいです、スクリーンショットは私のものよりもはるかに優れています。
この投稿の目的は、エラーを解析することです。
アイデアについて
プログラマーは、公共の問題だけでなく自分の問題も解決しなければなりません。
職場では、gyazoのスクリーンショットを撮るために絶えず素晴らしいプログラムを使用しています。
私たちのバージョンのgyazoはスクリーンショットを会社の内部サーバーにアップロードしますが、スクリーンショットを管理できなくなります。
私はスクリーンショットの寿命を制御し、同時にgyazoができるようにURLでそれらをいじりたいと思っていました 私は積極的に彼と一緒にdropboxを使用しており、友人になることが決定されました。
エラー番号1:不注意
スクリーンショット作成者は、スクリーンショットを直接Dropboxサーバーにアップロードします。
便利だから Dropboxクライアントがインストールされていないコンピューターにインストールできますが、すべてのスクリーンショットはDropboxの目的のフォルダーに分類されます。
DropNetをダウンロードし、1日後にスクリーンショットの最初のバージョンの準備が整いました。 Gyazoの正確なコピーですが、Dropboxに統合されています。
このドロップボックスの制限がなければ、すべてがうまくいくでしょう。

このプログラムは、開発者向けのAppKeyと完全に連携しましたが、アプリ=(
間違いその2:合併症
dropboxの問題はもう一方の端から解決しなければならないことに気付きました。
次に、承認フォームを削除し、ユーザーのuserIdを入力するための設定にフィールドを作成しました。
ユーザーはパブリックリンクをコピーして、このフィールドに貼り付ける必要がありました。
リンクからuserIdを削除し、パブリックリンクを形成できました。
解決策は不器用で複雑で、その曲率でユーザーをはじきます。
間違いその3:ステレオタイプへの依存

地域、ウィンドウ、または全画面のスクリーンショットを撮りたいです。
さまざまなスクリーンショットを勉強したので、他のあらゆる場所、3つのホットキー、および各タイプのスクリーンショット用のボタンを備えたヘルパーウィンドウを作成することにしました。
決定は愚かです。 必要なスクリーンショットのタイプをもう一度考え、オプションのいずれかを選択する必要があります。
もう一つの間違い
メニューとツールチップのスクリーンショットを撮りたいです。
ほとんどのスクリーンショットはこの原則に基づいて機能します。
- ホットキーをクリック
- 撮影するものを選ぶ
- 写真を撮る
問題は、ステージ2では、メニューとツールチップのスクリーンショットを撮る機会があることです。 フォーカスが失われるため、それらは消えます=(
スクリーンショットが取られるまで数秒で遅延を入力することにしました 。 つまり ユーザーは「スクリーンショットの遅延」ボタンなどをクリックして、短時間でワークスペースを目的の状態にする必要があります。
決定は間違っています。 ユーザーに時間がない場合はどうなりますか? 彼がすべてを非常に迅速に行い、プログラムがスクリーンショットを撮るまで待たなければならない場合はどうなりますか? はい、ほんの数秒ですが、数枚の写真を連続して撮影する必要がある場合は迷惑になります。
間違いN:焦り
パブリックスクリーンショットをブラウザで自動的に開くようにしたい
エラーは、保存後、すぐにブラウザーでURLを開くと、ユーザーにエラー404が表示されたためです。 dropboxクライアントには、ファイルをサーバーにアップロードする時間がありません。
エラーを書くのにうんざりしている
見つかった解決策についてお話したいと思います。
- Dropbox統合は、Dropboxクライアントがインストールされているコンピューターでのみ実行できます。 実際、MyDropbox / Public /のディスクにファイルを書き込み、サーバーにロードされるのを待ちます
- ユーザーにUserIdを要求する必要はありません。 パブリックファイルのコンテキストメニューでパブリックリンクのコピーを呼び出すことにより、WinAPIを介して取得できます。
- 3つのボタンがあるヘルパーウィンドウはありません。 1つのホットキー。 領域を拡大して画面領域の写真を撮るか、クリックしてウィンドウの写真を撮ることができます。
- ホットキーを押すとスクリーンショットが撮られます。 この時点で画面に表示されていたすべてのメニューとツールチップが撮影されます。 次に、画面の目的の領域を選択するか、目的のウィンドウをクリックする必要があります。
- スクリーンショットをディスクに保存した後、サーバーにダウンロードされるのを待ってから、ブラウザで開きます。
このプログラムには、最近撮影したスクリーンショットのリストを表示したり、基本設定を変更する機能など、いくつかの機能があります。
読んだ人へ
このプロジェクトは、オープンにすることを決定しました。 誰もがコードで私のショールを見ることができます=)
codeplexのプロジェクトページへのリンク
現在、 ClickOnceアプリケーションとして配布されていますが、インストーラーを作成することもできます。
PS
興味深いアイデアとテストの手助けをしてくれた同僚に感謝します。
間違いなくCloudShotにはエラーがありますが、それらのエラーはあまり気にせず、それらを書き留めてください。可能な限り修正します;)