Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 01:56

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: ннКрон - Запись и воспроизведение действий пользователя
СообщениеДобавлено: Ср май 09, 2007 22:45 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
По просьбе страждущих выкладываю простенький скрипт для крона - записывает в файл все нажатия кнопок и движения курсора, а потом может это все воспроизвести, по умолчанию точность 10 миллисекунд.
Код:
#( Запись!
WatchHotKey: "@r"
NoLog SingleInstance
: N>SBL  N>S S"  " S+ ;
: N>SBL+  N>SBL S+ ;

\ Кейлоггинг
VARIABLE start-time
CREATE LogKeyDN 255 ALLOT
: LogKeyDN! LogKeyDN + C! ; ( x code -- )
: LogKeyDN@ LogKeyDN + C@ ; ( code -- )

: log-code
>R
GetTickCount start-time @ - N>SBL
R> N>SBL+ crlf S+
S" script.log" FAPPEND
;

: LOG-ANYKEY-PRESSED
255 1 DO  I KEY-PRESSED?
   IF   \ Лог нажатия кнопки
      I LogKeyDN@ 0=
      IF   \ в прошлый проход эта кнопка была не нажата?
         I log-code -1 I LogKeyDN!
      THEN
   ELSE   \ Лог отпускания
      I LogKeyDN@
      IF   \ нажималась ли эта кнопка?
         I NEGATE log-code
         0 I LogKeyDN!
      THEN
   THEN
LOOP
;

\ ху-логгинг

: log-moving  >R >R
GetTickCount start-time @ - N>SBL
0 N>SBL+
R> N>SBL+ R> N>SBL+ crlf S+
S" script.log" FAPPEND
;

VARIABLE x-pos
VARIABLE y-pos

: LOG-MMoving
MOUSE-POS x-pos @ y-pos @ D<> IF MOUSE-POS 2DUP log-moving y-pos ! x-pos ! THEN
;

: Шпионить
BEGIN
10 PAUSE
LOG-ANYKEY-PRESSED
LOG-MMoving
VK_CONTROL KEY-PRESSED?
UNTIL
-17 log-code
-162 log-code
;

Action:
300 300 BEEP
LogKeyDN 255 ERASE x-pos 0! y-pos 0!
S" script.log" FDELETE
GetTickCount start-time !
Шпионить
300 300 BEEP
)#

<%
: FOR-FLINES   { xt \ Lf Lc -- }   ( a u xt -- )
    R/O OPEN-FILE-SHARED THROW TO Lf
    258 ALLOCATE THROW TO Lc
    BEGIN Lc 1+ 255 Lf READ-LINE THROW WHILE
    Lc C!
    Lc xt EXECUTE
    REPEAT
    DROP
    Lf CLOSE-FILE DROP
;

: KeyDN
CASE
   1 OF MOUSE-LBDN ENDOF
   2 OF MOUSE-RBDN ENDOF
   DUP DUP OF specKeyDN ENDOF
ENDCASE
;

: KeyUP
CASE
   1 OF MOUSE-LBUP ENDOF
   2 OF MOUSE-RBUP ENDOF
   DUP DUP OF specKeyUP ENDOF
ENDCASE
;

: Диверсия { \ x -- }
COUNT <TIB
get-number
GetTickCount start-time @ - - DUP 0< IF DROP 0 THEN PAUSE
get-number TO x
x IF
   x 0> IF x KeyDN THEN
   x 0< IF x NEGATE KeyUP THEN
    ELSE
        get-number get-number MOUSE-MOVE
    THEN
TIB>
;
%>

#( Воспроизведение@
WatchHotKey: "@p"
NoLog SingleInstance
Action:
300 300 BEEP
GetTickCount start-time !
S" script.log" ['] Диверсия FOR-FLINES
300 300 BEEP
)#

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc



За это сообщение автора VoidVolker поблагодарил: Sotnik
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB