PDA

Просмотр полной версии : Тест перехвата клавиш


XAMEHA
18.01.2012, 02:29
PHP:
(function($) {

$.KeyLib= function() {

this.version='0.0.0';

varkeyChar= {

8:'Blackspace',

9:"Tab",

13:"Enter",

16:"Shift",

17:"Ctrl",

18:"Alt",

19:"Pause|Break",

27:"Esc",

33:"Page Up",

34:"Page Down",

35:"End",

36:"Home",

37:"←",

38:"↑",

39:"→",

40:"↓",

45:"Insert",

46:"Delete",

91:"Left Window",

92:"Right Window",

93:"Select Key",

112:"F1",

113:"F2",

114:"F3",

115:"F4",

116:"F5",

117:"F6",

118:"F7",

119:"F8",

120:"F9",

121:"F10",

122:"F11",

123:"F12",

144:"Num Lock",

145:"Scroll Lock"

};

varkeycount= -1;

varkeyval= [];

varcountdown= {

'ok':0,

'error':0,

'all':0

};

varcountpress= {

'ok':0,

'error':0,

'all':0

};

functionTagOne(tag){

$(tag).on("keypress", function(e) {

++countpress.all;k ey[e.handleObj.type+countpress.all] =e;

if (((typeof(keyC har[e.keyCode]) ==='undefined'||e.originalEvent.keyCode===e.ori ginalEvent.charCode) ||

(typeof(e.charCode) ==='undefin ed')

||e.handle Obj.guid===2) && (e.charCode=e.which) && (

(e.which>16))) {

++keycount ;



keyval[keycount] = {

'type':'press',

'comb':false,

'chars':String.fromCharCode(e.charCode)

};

$("#t1").text($("#t1").text() +e.handleObj.type+' - '+keyval[keycount].chars+' - '+e.charCode+' - '+e.timeStamp+"\r\n");

++countpre ss.ok;

} else

++countpre ss.error;

});

$(tag).on("keydown", function(e) {

++countdown.all;ke y[e.handleObj.type+countdown.all] =e;

if (e.which===e.k eyCode&&typeof(keyChar[e.keyCode]) !=='undefined') {

++keycount ;

keyval[keycount] = {

'type':'down',

'comb':false,

'key':e.keyCode,

'chars':keyChar[e.keyCode]

};

$("#t1").text($("#t1").text() +e.handleObj.type+' - '+keyval[keycount].chars+' - '+e.timeStamp+"\r\n");

++countdow n.ok;

} else

++countdow n.error;

});

};

this.start= function (tag) {

tag=tag||'html';

TagOne(tag);

};

}})(jQuery);

M_script
18.01.2012, 12:37
Firefox 8.01

Каждое нажатие капс-лока записывается, как двойное:

keydown - Caps Lock - 20

keydown - Caps Lock - 20

Opera 11.60

Не записывает [p-z], "'[]{(&%$#!.-\

Когда нажимаю капс-лок несколько раз подряд, в лог пишется

Первое нажатие (включение капс-лока):

keydown - Caps Lock - 20

Второе:

keydown - Caps Lock - 20

keydown - Caps Lock - 20

Третье:

keydown - Caps Lock - 20

keydown - Caps Lock - 20

keydown - Caps Lock - 20

Четвертое:

keydown - Caps Lock - 20

keydown - Shift - 16

keydown - Caps Lock - 20

Пятое:

keydown - Caps Lock - 20

и т.д.

XAMEHA
18.01.2012, 16:29
M_script said:
Не записывает [p-z], "'[]{(&%$#!.-\


Исправлено, недосмотр при упрощении кода тестирования. //Исправлено - -Opera CKW v1


M_script said:
Firefox 8.01
Каждое нажатие капс-лока записывается, как двойное:
keydown - Caps Lock - 20
keydown - Caps Lock - 20
Opera 11.60
Когда нажимаю капс-лок несколько раз подряд, в лог пишется
...


Firefox 8.01, Opera 11.60 - *nix - не Подтверждено, какая OS? Caps Lock В данных версиях записывается нормально.

<Cyber-punk>
19.01.2012, 02:40
Под BT5 R1 15.0.874.106 Все прекрасно работает.

Огромное спасибо! Очень актуально!

XAMEHA
19.01.2012, 06:41
said:
Огромное спасибо! Очень актуально!


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

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

UDP:

Win XP SP3 под VirtualBox 4.1.6 Caps Lock v1 подтверждаю, к тому же данный инцидент прослеживается во всех браузерах.//Клавиша убрана.

M_script
19.01.2012, 07:57
XAMEHA said:
Firefox 8.01, Opera 11.60 - *nix - не Подтверждено, какая OS? Caps Lock В данных версиях записывается нормально.


Win XP SP3 под VirtualBox 4.1.6

shell_c0de
20.01.2012, 14:32
Хамена ты вкурсе что в jQuery 1.7+ выпилили метод live и вместо него теперь on ?

XAMEHA
20.01.2012, 16:17
1. Клавиша Caps Lock убрана за ненадобностью. Для перехват значений она не нужна - простое полноценное отображение в *win так просто не исправишь.

2. Live заменил на on.

XAMEHA
18.05.2013, 07:34
Спущено.