CloudShot — скриншоттер для DropBox

    image
    Долго думал как назвать этот пост в итоге назвал как пришлось.

    О чем же я хочу рассказать


    Сей пост о программе.

    Очень маленькой программе, которую я написал в первую очередь для себя.
    О маленьком скриншотере, умеющем интегрировать с Dropbox.
    Но я не хочу ничего пиарить, скриншоттеров полно, полно скриншоттеров намного лучше моего.
    Цель этого поста, разобрать ошибки.


    Об идее


    Программист должен решать проблемы не только общественные, но и свои.

    На работе мы постоянно пользуемся замечательной программой для снятия скриншотов gyazo.
    Наша версия gyazo заливает скриншоты на внутренний сервер компании и далее я уже никак не могу ими управлять.
    Мне же хотелось иметь возможность управлять временем жизни скриншотов и при этом так же просто шарить их по url как это умеет gyazo, а т.к. я активно использую dropbox с ним и решено было дружить.

    Ошибка номер 1: Невнимательность


    Cкриншоттер будет заливать скрины прямо на сервер дропбокса.

    Удобно, т.к. я могу установить его на комп, на котором не установлен dropbox client, при этом все скрины будут попадать в нужную папку в dropbox'е.
    Скачал DropNet и через день был готов первый вариант скриншоттера. Точная копия Gyazo, но интегрированая в Dropbox.
    Все бы ничего, если бы не вот это ограничение dropbox'а.
    image
    Программа прекрасно работала с AppKey для разработчиков, но не прошла аппрува =(

    Ошибка номер 2: Усложнение


    Я понял, что проблему с dropbox надо решать с другого конца.

    Тогда я убрал форму авторизации и сделал в настройках поле для ввода userId пользователя.
    Пользователь должен был скопировать публичный линк и вставить его в это поле.
    Я выдирал из линка userId и мог формировать public link.
    Решение корявое, сложное и отталкивающее пользователей своей кривизной.

    Ошибка номер 3: Зависимость от стереотипов


    image
    Хочу скриншотить регион, окно или весь экран.

    Изучив разные сриншотеры, решил сделать как везде, три хоткея и окошко-хелпер с кнопками для каждого вида скриншота.

    Решение дурацкое. Нужно лишний раз подумать какой тип скриншота тебе нужен и выбрать один из вариантов.

    Еще одна ошибка


    Хочу уметь делать скриншоты меню и тултипов.

    Большинство скриншотеров работают по такому принципу:
    1. жмем хоткей
    2. выбираем что сфотографировать
    3. фотографируем

    Проблема в том, что на этапе номер 2 у нас отваливает возможность отскриншотить меню и тултип, т.к. они пропадут из-за потери фокуса =(

    Я решил ввести задержку в секундах, до того момента как произойдет снимок экрана. Т.е. пользователь должен нажать что-то типа кнопки «Отложенный скриншот» и за короткое время привести рабочую область в нужное ему состояние.
    Решение неверное. А вдруг пользователь не успеет? А вдруг сделает все очень быстро и ем придется ждать пока программа сделает скриншот? Да, это всего-лишь несколько секунд, но ведь будет раздражать если надо сфоткать подряд несколько тултипов.

    Ошибка N: нетерпеливость


    Хочу чтобы публичный скриншот автоматом открывался в браузере

    Ошибка заключалась в том, что после сохранения я сразу открывал url вбраузере и пользователь лицезрел Ошибку 404, т.к. dropbox client еще не успевал закачать файл на сервер.

    Я уже устал писать об ошибках


    Хочу рассказать о найденных решениях.

    • Интеграция с Dropbox только на компьютерах с установленным dropbox client. По сути я записываю файл на диск в MyDropbox/Public/ и жду когда он загрузится на сервер
    • Не надо требовать UserId от пользователя. Его можно получить через WinAPI, вызвав copy public link в контекстном меню публичного файла
    • Нет окна-хелпера с тремя кнопками. Один хоткей. Можно сфотографировать область экрана, растянув регион, или сфотографировать окно, кликнув в него.
    • Скриншот делается при нажатии хоткея. Все меню и тултипы, присутствовавшие в этот момент на экране, фотографируются. Далее вам нужно выбрать требуемую область экрана или кликнуть в нужное окно.
    • После сохранения срикншота на диск, жду его загрузки на сервер и только потом открываю в браузере.


    В программе есть еще несколько удобностей, типа просмотра списка недавно сделанных скриншотов и возможность поменять базовые настройки.

    Тем кто дочитал


    Проект решил делать открытым, т.ч. все могут узреть мои косяки в коде =)
    Ссылка на страничку проекта на codeplex
    На данный момент распространяется в виде ClickOnce приложения, но могу сделать и инсталлер.

    P.S.
    Большое спасибо моим коллегам за интересные идеи и помощь в тестировании.
    Наверняка в CloudShot есть ошибки, не пинайте за них сильно, а лучше отпишите и я их по мере возможности исправлю ;)
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 30

      +1
      И всё равно интересно кто чем пользуется. Под linux я ничего лучше, чем Shutter (и его интеграция с Unity) + автосохранение в Dropbox/Public + закладка на этот самый Public в наутилусе пока не нашел. Есть варианты побыстрее при том же удобстве?
        0
        >Скриншот делается при нажатии хоткея
        Возможно, стоило изучить возможности снятия скриншотов в других операционных системах в самом начале… Потому что в MasOS эта возможность реализована уже давно. Разные хотки — разные варианты: окно программы, экран целиком, область экрана. При выделении области экрана, мышь как бы замирает, оставляя невидимый курсор на месте менюшки, позволяя одновременно выделить нужную область и сохранить тултип/меню.
          0
          К сожалению не было возможности посмотреть скриншоттеры для MacOS X, но идея с несколькими хоткеями мне все же не очень нравится.
            0
            cmd+shift+{3,4}
            если нажать тройку, то будет весь экран, а если четверку, то даст выделить. В режиме выделения можно щелкнуть пробел, и тогда включается навигация по окнам.
            Не сказать, конечно, что это интуитивно понятно, но зато очень функционально и удобно, особенно когда приходится много скриншотить.
          0
          Автору респект за открытый код.
            0
            Отлично! После того, как в gyazo появилось куча рекламы, стал искать аналоги (тысячи их). Когда набрёл на кроссбраузерный jshot, понял что хранить скриншоты нужно предпочтительно в dropbox (ведь не все сервисы внушают доверие: урл вдруг может стать недоступен, или страница засрётся порно-баннерами, или вдруг приватные картинки нелепым образом станут публичными). Но jshot оказался не самым удобным и в чём-то неповоротливым. Уже перепробовал кучу всего, пока не наткнулся на это приложение. И только после установки случайно нашёл этот пост на хабре, хотя был почему-то уверен в иноземном происхождении программы )) Приложение то что надо — не обременённое лишней, ИМХО, функциональностью, и главное позволяет совершить рутинную операцию практически в два действия (т.е. как пресловутый gyazo, только лучше). Хотелось бы ещё иметь настройки степени сжатия jpeg. А так супер, спасибо большое, буду пользоваться.
              0
              Спасибо, рад что вам понравилось =)
              Сейчас есть парочка идей, которые хочется добавить в CloudShot.
              На счет сжатия jpeg, обязательно добавлю в какой-нибудь из следующих версий =)
              0
              В общем я не читал работу над ошибками, но установил, пользуюсь, очень понравилось)
              То что надо!
                0
                Рад что вам понравилось =) Скоро будет апдейт.
                  0
                  Спасибо за программу! Давно привык делать скрин после нажатия на иконку в трее, было круто это добавить
                    0
                    так есть же, даблклик по иконке в трее =)
                    еще есть одна фишка про которую мало кто знает
                    «Print screen + напечатайте что-нибудь а потом уже растяните рамку для скриншотинга»
                    0
                    Да, и кнопка Donate сразу после размещения начнет приносить плоды
                  0
                  Удобная штука.
                  Один раз выкинуло ошибку «Сбой при выполнении операции с буфером обмена» (w7 x64) — повторить не смог, пока все тихо.
                  Еще было бы неплохо, если бы значок в трее показывал процесс загрузки, ну и чтобы при этом игнорировались нажатия хоткеев, имхо.
                    0
                    Еще было бы удобно, если бы окошко с хелперами все-же появлялось, но для «рисования» — чтобы можно было обвести область на скриншоте, подчеркнуть, стрелкой показать и т.п.
                      0
                      Сейчас реализована возможность делать текстовые подписи к скриншотам. в версии 1.2 это уже есть, просто набирайте текст перед тем как растягивать рамку.
                      На счет редактирования еще думаю, поинт в том, что работа с программой не должна быть сложнее чем сейчас. Скриншот в один клик. Надо гармонично встроить редактирование в этот процесс, есть идеи но до них пока не дошли руки.
                      Так же хочу сделать возможность заливать скриншоты не только в дропбокс. Правда еще не придумал куда =)
                        0
                        Я до этого использовал джетскриншот, у них редактирование реализовано вот таким образом:
                        dl.dropbox.com/u/18635874/CloudShot/shot_03022012_182710.jpeg
                        — рядом с выделенной областью появляется тулбар, в котором можно выбрать нужную фигуру и т.п. Достаточно удобно и интуитивно понятно. Думаю, если оттуда выкинуть все лишнее, то самое оно будет.
                          0
                          А какие редактирующие функции вы считаете нужными?
                          Я думал над этим и мне кажется, что для 90% пользователей хватит текстовых подписей (что-то типа www.webzo.org/tutorials/flash/images/button-tooltip-3.png) и возможность зачеркнуть на скриншоте какую-то инфу, например персональные данные.
                            0
                            Да — зачеркнуть, подписать. Но еще, мне кажется, обвести какую-то область, т.е. выделить ее. Как, например на этом скриншоте:
                            my.jetscreenshot.com/6795/20120204-lomr-178kb
                            Подчеркивание строки в тексте:
                            my.jetscreenshot.com/6795/20120204-j5ph-36kb
                            (тут, возможно, лучше даже не подчеркивание, а выделение как-бы маркером, как на бумаге, т.к. эта черта не очень заметна если скриншот достаточно крупный)
                            Кстати, вес файла в ссылке — дополнительное удобство думаю.
                            Ну и стрелками лично я охотно пользовался. Текстовые подписи такого плана, как вы показали я, если честно, никогда не использовал, т.к. в джетскриншоте такого нет, но на вид выглядит не очень удобно. Проше стрелку и текст в любом месте скриншота.
                            Насчет «одного клика» я вчера думал — это действительно удобно и, своего рода, конкурентное преимущество, действительно нужно постараться сохранить эту простоту — если мне просто нужно снять скрин — жмяк, клац — готово. Но тулбар для редактирования добавляет еще одно движение. В общем я ничего лучше, чем другой хоткей не придумал. Т.е. — просто нужен скрин — принтскрин. Нужно будет редактировать — альт+принтскрин. Или, может быть, продолжительность нажатия можно как-то обработать.
                            Если, таким образом, общая простота использования сохраняется, то дополнительные функции в редакторе не помешают, и общее впечатление не испортят, имхо.
                              0
                              подчеркивание маркером мне нравится, хорошая идея, спасибо )
                              другой хоткей не нужен =)
                              PrintScreen + растянуть рамку = скриншот
                              PrintScreen + набрать текст + растянуть рамку = скриншот с подписью внизу
                              PrintScreen + alt -> появляется доп тулбар редактирования, редактируете потом растягиваете рамку = скриншот

                              такие вот мысли =)
                                0
                                Да, так действительно будет удобнее.
                                Если редактирование будет до выделения области, то, имхо, затемнение нужно сделать более прозрачным, т.к. если картинка на экране не очень контрастная, то приходится вглядываться и редактировать будет не очень удобно.
                                Оно само будет обновляться, или нужно где-то отслеживать?
                                  0
                                  Должен обновиться сам, но на всякий случай я Вам отпишу =)
                                    0
                                    Окей, спасибо.
                      0
                      С буфером известная проблема, стараюсь ее решить.
                      На счет индикации — делаю, в новой версии будет тултип (отключаемый в настройках) о том, что ссылка скопирована. Иконку тоже хочу анимаировать. Игнорировать нажатия хоткеев при загрузке не уверен что надо, т.к. дропбокс иногда оч медленно загружает а вам бывает нужно несколько скриншотов подряд сделать например.
                      0
                      Только сейчас наткнулся на программу.
                      Это практически то, что я искал. Отлично сделано, спасибо!
                      Единственный вопрос: а звук как то можно убавить или выключить?
                        0
                        Спасибо за программу! нужно еще есделать минимальный редактор(стрелочку дорисовать или текст дописать) и замены не будет
                          0
                          Спасибо =) Я планирую сделать редактор скриншотов, но пока руки никак не доходят =) Надеюсь, что соберусь в ближайшее время
                          0
                          возвращаюсь с habrahabr.ru/post/154993/#comment_5287181

                          Версия последняя.
                          Переключил на локалную папку, пытался отловить рисовалку. Не удалось :)

                          Вернулся на дробокс, и ошибка:
                          image

                          Скриншот сделан не клаудшотом :)
                            0
                            пришлите плз лог ошибки, в Menu — > About -> Error Log
                            Буду исправлять объязательно
                              0
                              image :)
                                0
                                Ок, я понял. Буду смотреть в чем проблема

                          Only users with full accounts can post comments. Log in, please.