Что нового

[Мышь, клавиатура] Не срабатывает фунция send() c кодом символа цифровой клавиатуры

yursevich

Новичок
Сообщения
6
Репутация
0
Всем привет.

Не могу разобраться нужно выделить все фалы в поле 7z для этого отправляю
Код:
send ("{NUMPADADD}")
все выделяет, но

не выделяет если отправляю код символа
Код:
send("{ASC 0x6B}")
или
Код:
Send("{ASC 107}")


Проверял код соответствует клавише NUM "+" _IsPressed возвращал "6B"

В чем ошибка?
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Ну вообще-то, когда ты делаешь
Код:
Send("{ASC 107}")
, то нажимаешь "k", Это если бы ты альт зажал и на цифровой натыкал 107.


Добавлено:
Сообщение автоматически объединено:

По моему тебе нужно Chr(0x6b) или Chr(107) итд итп...


Добавлено:
Сообщение автоматически объединено:

Как-то странно ) Проверял у себя, проверял - ни черта не пойму... Вроде и скан код тот передаю, и все вроде хорошо, но увы... Тоже не могу нажать. Вспомнил про keybd_event - изобразил - работает как часы. Черт его знает, что ему надо, без отладчика вообще печально, не поймешь, то в функцию попадает или не то... И как она там его потом обрабатывает. Ну вот вариант с keybd_event:

Код:
Func PressVK($vcode)
	DllCall("user32.dll","int","keybd_event","int",$vcode,"int",0,"long",0,"long",0) ; нажать
	DllCall("user32.dll","int","keybd_event","int",$vcode,"int",0,"long",2,"long",0) ; отпустить
EndFunc

PressVK(0x6b)
 
Автор
Y

yursevich

Новичок
Сообщения
6
Репутация
0
За вариант благодарен.

Но вопрос в другом - почему
Код:
send('{asc 0x6b}')
не вызывает NUM "+"

"Этот вопрос почти мешает спать.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Интересно, согласен. Даже смотря по этой таблице (http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx) и подставляя код в Chr() все работает абсолютно верно, кроме кодов кнопок на дополнительной клавиатуре.
 
Автор
Y

yursevich

Новичок
Сообщения
6
Репутация
0
Ну вот тут думаю и открывается весь секрет, на данном сайте http://gametuts.org/keyboardevent-keycode-list-ascii-codes-in-as3/ реализован скрип на flash , который показывает в чем различия между k=107 или 6b и NUMPADADD "+" =107 или 6b/
Разница в том что учитывается код ASCII символа и код Клавиши в ASCII,
т.е. в кодировке ASCII на латинице символ-K=75 клавиша-75
символ-k=107 клавиша-75
символ-NUMPADADD=43 клавиша-107
Данный скрипт учитывает регистр символа, в отличии от подобного скрипта в Autoit - IsPressedEx, где нажатие NUMPADADD возвращает-k.
Думаю вопрос на этом можно закрыть Всем спасибо за участие пойду спать :smile:
 
Верх