[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .
Ctrl предыдущая следующая Ctrl Страницы
1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19

Форум «Новости» / Интеграция с TypingStatistics

ТоварищЪ_Берия Сообщение #243 4 ноября 2014 в 23:30
Маньяк
27
А как эту программу поставить на MAC может кто то уже делал ?
oyasumi Сообщение #244 4 ноября 2014 в 23:35
Супермен
45
ТоварищЪ_Берия писал(а):
А как эту программу поставить на MAC может кто то уже делал ?

Вроде так же, как и на Линукс. Никак.
Если только под виртуалкой не запускать опять же.
Reset82 Сообщение #245 5 ноября 2014 в 09:14
Маньяк
42
oil писал(а):
Вопрос в поддержки TS под линукс, это скорее вопрос открытости стандарта клавограммы TSF, нежели написания кода.


Не могу понять момента "закрытости" кода, если программа бесплатная.
Переборыч Сообщение #246 5 ноября 2014 в 11:49
Клавомеханик
55
Свобода не зависит от цены, а бесплатное может стать платным.
Автор TS, кстати, уже передавал желающим исходники, так что если у компетентного прогера появится желание воссоздать TS под другими ОС или интегрировать в свой кейлоггер совместимый формат клавограмм, то с Филом, думаю, можно договориться.
Reset82 Сообщение #247 5 ноября 2014 в 15:12
Маньяк
42
Переборыч писал(а):
Автор TS, кстати, уже передавал желающим исходники, так что если у компетентного прогера появится желание воссоздать TS под другими ОС или интегрировать в свой кейлоггер совместимый формат клавограмм, то с Филом, думаю, можно договориться.

а как стать счастливым получателем исходников то? )
Переборыч Сообщение #248 5 ноября 2014 в 18:58
Клавомеханик
55
Как бы сделал я на месте толкового потенциального инициатора. Если хотим организовать интегрированную с Клавогонками Linux-версию, значит надо заключить с Артёмом договор. Озвучиваем какими ресурсами располагаем, даём гарантии результата и интересуемся у него проблемами безопасности и перспективами сотрудничества. При должной расторопности может всё получиться, а может просто фантазии на тему "как стать счастливым..." :)

Если интеграция не требуется, то и win-исходники без надобности, - делаем аналог со своим способом защиты от подделок и предлагаем клавогонщикам альтернативный вариант.
voidmain Сообщение #249 5 ноября 2014 в 20:15
Маньяк
29
Переборыч, я бы может даже сначала написал что-то, а потом шел к Артему. Прикрутить формат tsf к готовому логгеру не составит труда.
agile Сообщение #250 7 ноября 2014 в 18:16
Супермен
37


Относительно недавно выяснилось, что TypingStatistics все-таки можно запустить в Linux при помощи Wine, чтобы не возникало никаких странных ошибок, а клавограммы исправно записывались.
То, как это можно сделать, мне сказал один хороший клавогонщик, почему-то пожелавший остаться неизвестным :)

Собственно, для полноценной работы с TypingStatistics в Linux нам потребуется:

  1. Среда Wine;
  2. Вспомогательный скрипт winetricks, для простой установки необходимых TypingStatistics библиотек (отсутствующих в стандартном префиксе Wine);
  3. Windows-версия любого браузера, или некое приложение, которое будет копировать события клавиатуры, посылаемые X-сервером, в окно Wine (про это позже)


Устанавливаем Wine, скачиваем последнюю версию шелловского скрипта winetricks. Запускаем последний, выбираем «Select the default wineprefix» → «Install a Windows DLL or component», устанавливаем пакеты riched20 и riched30:



или просто выполняем в консоли

./winetricks riched20 riched30


Скачиваем TypingStatistics по ссылке из первого поста этой темы, разархивируем, запускаем:

wget http://img.klavogonki.ru/upload/typestats/TypeStats-klavogonki-v6.zip

unzip TypeStats-klavogonki-v6.zip

wine TypeStats.exe


— теперь у нас есть рабочая TypingStatistics под Linux. Но просто так записываться клавограммы будут только для запущенных в той же среде приложений Windows, набор текста в любом приложении Linux не будет «услышан».

Можно решить эту проблему двумя способами:

  1. Решение типа «Решил проблему не решать™» — просто установить Windows-версию своего браузера/любого другого приложения для совместного использования с TS при помощи Wine;
  2. Написать приложение, которое будет «слушать» события X-сервера KeyPress и KeyRelease, и посылать их «фейковые» копии в окно Wine с запущенным TypingStatistics;


После успешного тестирования интеграции первым способом (к слову: по собственным наблюдениям, «отваливается» интеграция TS при использовании установок Wine, имитирующих работу Windows XP, гораздо реже, чем при полноценной эмуляции Windows 7 в VirtualBox), решил написать приложение-костыль на C++ для второго способа.

Получилось следующее:
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main( int argc, char *argv[] ){
    Display* display = XOpenDisplay( NULL );
    Window root = DefaultRootWindow( display );
    Window cur_focus, ts_win;
    int revert;

    XGetInputFocus( display, &cur_focus, &revert );
    XSelectInput( display, cur_focus, KeyPressMask|KeyReleaseMask|FocusChangeMask );
    
    printf( "TypingStatistics XID: %s\n", argv[ 1 ] );
    ts_win = ( Window ) strtol( argv[ 1 ], NULL, 0 );
    while( 1 ){
        XEvent event;
        XNextEvent( display, &event );
        if( event.type == FocusOut ){
            XSelectInput( display, cur_focus, 0 );
            XGetInputFocus( display, &cur_focus, &revert );
            printf( "Focus was set to %d\n", ( int ) cur_focus );
            XSelectInput( display, cur_focus, KeyPressMask|KeyReleaseMask|FocusChangeMask );
        }else if( ts_win != cur_focus ){
            if( event.type == KeyPress ){
                printf( "KeyPress at %d\n", ( int ) event.xkey.window );
                XSendEvent( display, ts_win, True, KeyPressMask, &event );
            }
            if( event.type == KeyRelease ){
                printf( "KeyRelease at %d\n", ( int ) event.xkey.window );
                XSendEvent( display, ts_win, True, KeyReleaseMask, &event );
            }
        }
    }
}


— для «общения» с X-сервером используется старенькая и слоупочная библиотека XLib, единственный аргумент для запуска — XID окна Wine с TypingStatistics, который можно получить, например, при помощи утилиты xdotool:

xdotool search --name Typing\ statistics


Но поскольку я не привык писать на C++, а XLib для меня вообще темный лес с буреломом и медведями — велосипед получился так себе:

  1. По неизвестной мне причине то и дело перестают «ловиться» соответствующие события (но помогает перевод фокуса с окна на окно);
  2. Он тормозит браузер (при наборе наблюдаются небольшие лаги для скоростей, близких к 500 зн/мин)
  3. Он падает с ошибкой BadWindow, если закрыть любое окно (не знаю, как правильно обрабатывать этот случай)

— приветствуется помощь со стороны пользователей Linux, хорошо знающих C++ (в идеале — имевших дело с библиотекой XCB, которая в разы быстре XLib, но очень плохо документирована) для приведения этого безобразного велосипеда в нормальный вид :)
ИльдарВолжский Сообщение #251 7 ноября 2014 в 19:04
Супермен
41
Здорово! Наконец-то кто-то разобрался. Спасибо, что так глубоко вник в проблему.
Capr Сообщение #252 7 ноября 2014 в 19:35
Профи
8
Так может хорошему клавогонщику, пожелавший остаться неизвестным, или любому другому знакомому с этой операционной системой смонтировать загрузочный диск Linux с предустановленными Wine, winetricks, TS и браузером? Выложить его на торренты. И закрыть вопрос окончательно. Тем, кто будет в дальнейшем интересоваться интеграцией, будем давать ссылку. Сам то я к Linux всегда был равнодушен, теперь мне уже поздновато начинать.
Reset82 Сообщение #253 7 ноября 2014 в 22:28
Маньяк
42
Попробовал данный способ, действительно оживает "Оперативная статистика".
Все остальное как и было... (
Главное не переключаться между окнами и можно наблюдать красивые разноцветные циферки... но этого к сожалению мало :(
agile Сообщение #254 8 ноября 2014 в 06:25
Супермен
37
ИльдарВолжский, моя заслуга в данном случае минимальна — автор идеи не я.

Capr, тогда проще уже установить Windows, где TS работает и безо всяких костылей :) У меня есть идея получше — можно написать установочный скрипт для PlayOnLinux, который проделает описанную выше процедуру автоматически. В ближайшее время, наверное, этим и займусь.

Reset82, «оперативная статистика» так-то и раньше работала :) Клавограмма записывается? Если да — какое-нибудь приложение (например, браузер) из-под Wine пробовали запускать вместе с TypingStatistics (или скомпилировать и запустить мой велосипед на C++)?
Reset82 Сообщение #255 8 ноября 2014 в 10:11
Маньяк
42
Браузер запускаю через ТС, как и написано в твоей инструкции, и библиотеки тоже доустановил. Клавограмма как краз отрисовывается через раз, и если переводить фокус на окно с клавограммой и вылетает эта ошибка.
agile Сообщение #256 8 ноября 2014 в 10:13
Супермен
37
Написал скрипт для PlayOnLinux, который создает нормальный префикс Wine с нужными библиотеками, скачивает TypingStatistics, поддерживающую интеграцию с Клавогонками, и создает для последней ярлык:

https://dl.dropboxusercontent.com/u/1423211...ngStatistics.sh

#!/bin/bash
# Date : (2014-11-08 13-07)
# Last revision : (2014-11-08 13-07)
# Wine version used : 1.6.2
# Distribution used to test : Debian 8.0 Jessie
# Author : Filippov Daniil filippovdaniil AT gmail.com

[ -z "$PLAYONLINUX" ] && exit 0
source "$PLAYONLINUX/lib/sources"

PREFIX="TypingStatistics"
WORKING_WINE_VERSION="1.6.2"
TS_EXE="TypeStats.exe"
TS_ARCHIVE="TypeStats-klavogonki-v6.zip"
TS_ARCHIVE_MD5="2e97a6b23e2ecc0ccd143503b8e493a4"
TS_ARCHIVE_URL="http://img.klavogonki.ru/upload/typestats/$TS_ARCHIVE"

TITLE="Typing statistics"
SHORTCUT_NAME="Typing statistics"

POL_SetupWindow_Init
POL_Debug_Init
POL_SetupWindow_presentation "$TITLE" "Igor Filimonov (Fil)" "http://fil.urikor.net/" "Daniil Filippov" "$PREFIX"

POL_Wine_SelectPrefix "$PREFIX"
POL_Wine_PrefixCreate "$WORKING_WINE_VERSION"

POL_Call POL_Install_riched20
POL_Call POL_Install_riched30

POL_System_TmpCreate "tmp_ts"
cd "$POL_System_TmpDir"
POL_Download "$TS_ARCHIVE_URL" "$TS_ARCHIVE_MD5"
POL_System_unzip "$TS_ARCHIVE"
mkdir "$WINEPREFIX/drive_c/$PROGRAMFILES/TypingStatistics/"
mv "$TS_EXE" "$WINEPREFIX/drive_c/$PROGRAMFILES/TypingStatistics/"
POL_Shortcut "$TS_EXE" "$SHORTCUT_NAME"
POL_System_TmpDelete

POL_SetupWindow_Close
exit 0


Устанавливается следующим образом:

  1. Запускаем PlayOnLinux, выбираем «Утилиты» → «Выполнить локальный сценарий»:
  2. Жмем «Далее» → «Просмотр» → выбираем скачанный скрипт TypingStatistics.sh → «Далее»
  3. На этом этапе PlayOnLinux ругнется, что, дескать, этот скрипт не проходил процедуру проверки, и если что-то пойдет не так, то вы сами себе злобный буратино. Жмем «Далее», просматриваем исходный код скрипта, устанавливаем галочку «Я согласен» и жмем «Далее»:
  4. После окончания установки, в списке приложений PlayOnLinux должен появиться ярлык для запуска Typing statistics:



Теперь нужно установить в тот же префикс Wine какое-нибудь приложение для работы с TypingStatistics. Установим браузер FireFox:

  1. Скачиваем windows-версию браузера отсюда: https://www.mozilla.org/en-US/firefox/all/
  2. В главном окне PlayOnLinux жмем «Установка» → «Установить программу, отсутствующую в списке» → «Далее» → «Редактировать или обновить существующее приложение» → «Далее»
  3. Выбираем «Typing statistics» → «Далее» → «Далее» → «Далее», после чего выбираем скачанный ранее установочный файл FireFox и запускаем стандартную процедуру установки по нажатию «Далее»
  4. На финальном этапе установки FireFox снимаем галочку «Запустить Firefox», жмем «Готово»
  5. После небольшой задержки, в окне PlayOnLinux отбразится список приложений, для которых можно создать ярлыки:

    Выбираем firefox.exe, жмем «Далее», вводим имя для нового ярлыка, жмем «Далее», отказываемся от создания еще одного ярлыка по нажатию на «Отменить»


Теперь можно запустить FireFox и TypingStatistics и пользоваться интеграцией с Клавогонками на Linux.
agile Сообщение #257 8 ноября 2014 в 10:18
Супермен
37
Reset82 писал(а):
Браузер запускаю через ТС, как и написано в твоей инструкции, и библиотеки тоже доустановил. Клавограмма как краз отрисовывается через раз, и если переводить фокус на окно с клавограммой и вылетает эта ошибка.

По идее, с установкой библиотек MS RichEdit эта ошибка должна была пропасть. Попробуйте вышеописанный способ для PlayOnLinux — с ним то же самое?
Capr Сообщение #258 8 ноября 2014 в 11:38
Профи
8
Раз что-то получается то просится открытие отдельной темы "Интеграция с TypingStatistics на Linux" и перенос туда всех постов с вопросами по этому поводу. Чтобы страна знала своих героев. А заодно и тех, кто не выкладывал TS (и наверно не оплачивал Премиум) потому что у него видите ли Линукс.
Reset82 Сообщение #259 8 ноября 2014 в 20:51
Маньяк
42
А заодно и тех, кто не выкладывал TS (и наверно не оплачивал Премиум) потому что у него видите ли Линукс.

Capr, ТС нужна для самоанализа. Думаю вряд ли кто будет ее использовать через кучу костылей + вайн. У меня вообще только на тестовой вайн стоит.
Capr Сообщение #260 8 ноября 2014 в 21:25
Профи
8
Reset82 писал(а):
А заодно и тех, кто не выкладывал TS (и наверно не оплачивал Премиум) потому что у него видите ли Линукс.

Capr, ТС нужна для самоанализа. Думаю вряд ли кто будет ее использовать через кучу костылей + вайн. У меня вообще только на тестовой вайн стоит.

То есть проверить - работает ли схема agile больше никто не хочет?
Он же более чем понятную инструкцию написал. Есть ли ошибка при скорости более 500?
Reset82, ничего личного. Это попытка потроллить Линуксоидов как класс.
Reset82 Сообщение #261 8 ноября 2014 в 21:31
Маньяк
42
Есть ли ошибка при скорости более 500?

Ошибки нет, просто глюки в определении скорости, она может неправильно определяться, скорее всего из-за того что работает не напрямую. Это большой минус для приложения такого класса, по-этому нужна программа именно под линукс
Capr Сообщение #262 8 ноября 2014 в 22:44
Профи
8
Reset82 писал(а):
Есть ли ошибка при скорости более 500?

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

Ну я так понимаю, что один из главных доводов Линуксоидов - полный контроль за программным и аппаратным обеспечением. Наверно можно дать побольше приоритета не напрямую работающим программам чтобы минимизировать ошибку. И все таки сделать тест подобный тому, который я только что сделал на "правильной" ОС.
То есть выставил скорость повтора поменьше (чтобы скорость повтора была реальной - около 420 знаков), запустил TS, нажал клавишу 1 и записал клавограмму из которой видно, что в течение некого времени скорость повтора стабильна - ошибки нет. Аритмия всего 1,46 % - видимо за счет первоначального разгона.
Можно такую же проверку повторить для найденного решения. Насколько велики "лаги для скоростей, близких к 500 зн/мин"?

Чтобы писать в форуме, нужно зарегистрироваться.

Ctrl предыдущая следующая Ctrl Страницы
1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19

Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена