Конференция "Прочее" » Когда сделать скриншот? бла-бла, наверное, пока
 
  • ВладОшин © (05.09.16 17:26) [0]
    Не придумал как умнее спросить.
    Суть -
    Есть главная программа, в которой работает оператор, моя (в смысле, что есть исходники)
    Есть программа заказчика, в которую юзер переключается временами и в которой юзер вводит поля, далее щелкает проверить/изменить, программа выдаёт что-то.

    Проблема - заказчик говорит, что такие-то данные не проверялись/заполнялись
    Оператор говорит, что заполнял и их программа выдала что-то там, о чем он и записал в Главной программе. По логам видно, что действительно, писал, переключался, где-то там нажимал кнопки, вернулся, писал в Главной дальше.

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

    Вариант навскидку -
    Переключение из Главной программы стартует процесс скриншоттинга, складываем в лог запись имени файла, сам файл ложим на хранилище или БД
    Возникает ситуация, смотрим по логу когда это было, поднимаем файл (блоб из БД) - показываем заказчику вот скрин c ответом вашей программы.

    Проблема с подходом - ПО заказчика многовкладочное, требуется делать несколько скринов, точнее 2. На вкладке данных и на вкладке ответа/результата.
    При этом сколько юзер будет забивать данные по времени - неизвестно. От 2-3 сек до 10, в зависимости от квалификации кнопкодавления. Страницу результата смотрит .. ну сколько.. ну, пол.сек. Делать скрины со скоростью 0,5 сек - за 10 сек выходит 20 скринов.
    Операторов до 100 человек.Получается .. огромные объемы. Заказчик еще опомнится может через пару - тройку-четверо суток, хранить надо, получается , неделю.

    Как бы поймать то время, что вот один скрин, а вот другой.
    Со вторым еще понятно - он последний после возврата в Главную программу. Хотя тоже не факт.. Юзер может предварительно опять выбрать окно ввода данных..

    Вариант, перекрыть кнопки.. сам оператор пусть нажимает принтскрин. Вот данные, вот ответ. Принтскрин перехватываем, пишем сразу в файл.
    Но оператор может забыть нажать. И так минут 40 проработать.

    в общем, пока не понимаю как сделать.
    Административное решение проблемы рассматривается. Но именно руководство попросило подумать над техническим вариантом, с минимальной переучкой оператора.
  • ВладОшин © (05.09.16 17:39) [1]
    А если создать окно посреди экрана, красное, мигающее, StayOnTop, без фокуса, "Сделай скриншот!"
    и как кнопка что бы выглядело

    И показывать его как только юзер ушел из Главной программы (переключился)
    (или активно окно программы заказчика)

    ну, наверное, как забудет тут.. не должен забыть нажать, по идее
  • iop © (05.09.16 18:14) [2]
    дурная затея.

    убьешь ты кучу времени на скриншоты, а дальше:

    заказчик говорит : ничего не делалось!
    оператор говорит : всё там делалось!
    ты                     : вот мои скриншотике!

    заказчик : засунь их куда-нибудь обратно, ибо я вижу что ничего не делалось!
  • iop © (05.09.16 18:15) [3]
    .... и покажет тебе свои скриншотики на которых действительно "ничего не делалось"
  • sniknik © (05.09.16 18:26) [4]
    > там по канве пишется или еще как, у программы практически нет окон получается.
    так ява окна делает, может и не она одна, но сталкивался только с ней, что на форме никаких компонент, а вроде чисто рисунок.

    попробуй "разобрать" на исходники...
    https://habrahabr.ru/post/176825/
    не знаю чем поможет, но может хоть на мысль наведет, что и где перекрыть, если исходники будут.
  • DayGaykin © (05.09.16 18:51) [5]
    Согласен с [2]. Но кому сейчас легко?)

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

    Например: вкладки сверху - можно примерно понять когда переключится. С помощью анализа цветов можно понять какая вкладка.

    Можно делать скриншот при нажатии любой кнопки пока открыта первая вкладка, а в итоге взять последний.

    Было бы более ясно, если бы можно было бы увидеть программу.
  • L_G © (05.09.16 23:32) [6]
    а если скриншот не сразу сохранять, а сравнивать с хранящимся в памяти предыдущим (тупо попиксельно), и только если количество изменившихся пикселей больше заданного порога (типа открыли другую вкладку/окно) - сохранять _предыдущий_
  • Eraser © (06.09.16 06:40) [7]

    > ВладОшин ©   (05.09.16 17:26) 


    > складываем в лог запись имени файла, сам файл ложим на хранилище
    > или БД
    > Возникает ситуация, смотрим по логу когда это было, поднимаем
    > файл (блоб из БД) - показываем заказчику вот скрин c ответом
    > вашей программы.

    зачем в базу или хранилище? складывать локально у юзера (по желанию можно зашифровать вшитым же ключом, просто для вида). не думаю, что кто-то там решит мухлевать/править/взламывать.
    хранить в зависимости от накопившегося объема, вычислить эмпирическим путем. в зависимости от интенсивности работы там будет максимум несколько сот МБ в неделю, а если еще в 8 бит жать, то и в месяц. пробовать надо. естественно жать надо в png, особенно если известно, что на раб. столах нет котиков.
  • ВладОшин © (06.09.16 10:07) [8]
    спасибо всем участникам. Все идеи прочитал, осмыслил
    Но... Отбой получен )
    Договорились что пишем (в плохом качестве) видео всей работы, договорились на 2 дня хранение. В чб качестве, не напрягает 3 видео файла хранить. Позже - умерла так умерла.


    > sniknik ©

    Не, там QT
    Из тех окон что есть, обзываются с префиксом Qt
    он, типа, кросс платформа, как и ява, т.е. сам все контрлы рисует тоже.

    iop ©  
    не в том дело. Заказчик, по идее может поднять логи, убедится в этом сам - его программа же, может лог какой прикрутить для таких случаев. Но там, похоже они заказали программу на фрилансе, потом заказали у нас людей.
    Идеальный бизнес - у тебя нет сотрудников кроме директора и главбуха ) Им на такое некогда смотреть, им дай результат или покажи, что его нет.
  • iop © (06.09.16 11:14) [9]
    если все стороны заинтересованы то тогда это действительно другое дело.

    но в этом случае тоже не надо тратить время на скриншотинг.
    оператор сам пишет видео или сам делает скриншоты и все им верят.

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

    заказчик скажет: ну окей, я вижу, скриншотики красивые, вы молодец.
    Но у меня на моем конце все равно нет каких-то данных, поэтому потратьте еще своего времени на поиски чего-то там еще.
 
Конференция "Прочее" » Когда сделать скриншот? бла-бла, наверное, пока
Есть новые Нет новых   [134431   +14][b:0][p:0.001]