[ОТВЕТИТЬ]
25.08.2009 07:05
OlegON
 
Delphi
Убился, кто подскажет, какой у подчеркивания код?
Как с помощью этой функции ввести этот символ?

Код:
procedure PressKey(C:Byte);
begin
keybd_event(C,0,0,0);
keybd_event(C,0,KEYEVENTF_KEYUP,0);
end;

keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY,0);
Presskey(VK_SUBTRACT);
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP or KEYEVENTF_EXTENDEDKEY,0);
25.08.2009 07:06
OlegON
 
"Не работает" значит, что появляться этот символ в строке ввода не появляется... :( Т.е. руками вводится, другие символы в ней этой функцией вводятся, а этот - нет. KEYEVENTF_EXTENDEDKEY появилась позже, когда уже ломал голову, что не так. Например, "А" (большая, т.е. с шифтом) нажимается. Код ASCII клавиши знаю, речь о виртуальном коде...
25.08.2009 08:42
kadr
 
Цитата:
OlegON "Не работает" значит, что появляться этот символ в строке ввода не появляется... :( Т.е. руками вводится, другие символы в ней этой функцией вводятся, а этот - нет. KEYEVENTF_EXTENDEDKEY появилась позже, когда уже ломал голову, что не так. Например, "А" (большая, т.е. с шифтом) нажимается. Код ASCII клавиши знаю, речь о виртуальном коде...
какой у неё код?
а то есть утверждение
Цитата:
Функция keybd_event() принимает значения до 244
25.08.2009 09:02
OlegON
 
Вот это и было сутью вопроса :) ord('_') пробовал - ничего не появляется.
25.08.2009 09:22
OlegON
 
Спасибо :) У меня приблизительно такая и есть :) Только какой из них подчеркивание? :)
25.08.2009 09:24
Mtirt
 
Никакой. Я внимательно посмотрела.
25.08.2009 09:26
student
 
Цитата:
OlegON Спасибо :) У меня приблизительно такая и есть :) Только какой из них подчеркивание? :)
последовательно в одной процедуре

Call keybd_event(&H10, 0, 0, 0)
Call keybd_event(&HBD, 0, 0, 0)
Call keybd_event(&H10, 0, &H2, 0)

и получишь то что надо ... - просто нажимаешь шифт и клавишу потом отпускаешь шифт
25.08.2009 20:04
OlegON
 
Цитата:
student Call keybd_event(&HBD, 0, 0, 0)
Рулез! 189 код это! Где нашел? Для интересующихся, VK_SUBTRACT, это на кейпаде минус! Естественно, что на шифт он плювал...
25.08.2009 20:14
student
 
не понял что значит
Цитата:
OlegON Естественно, что на шифт он плювал...
я проверял все работает...
25.08.2009 20:28
student
 
Цитата:
OlegON Рулез! 189 код это! Где нашел?
нашел через

Declare Function ToAscii Lib "user32" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpbKeyState As Byte, ByVal lpwTransKey As String, ByVal fuState As Long) As Long

Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
25.08.2009 21:50
OlegON
 
Извини, если что-то непонятно написал, "Спасибо" за подсказку уже нажал, у меня тоже теперь все работает.
Суть: &HBD=189, ты оказался прав. А я на чем спотыкался - "нажимал" минус на цифровой клавиатуре. А тому минусу шифт безразличен...
26.08.2009 09:54
student
 
Цитата:
OlegON Извини, если что-то непонятно написал, "Спасибо" за подсказку уже нажал, у меня тоже теперь все работает.
Суть: &HBD=189, ты оказался прав. А я на чем спотыкался - "нажимал" минус на цифровой клавиатуре. А тому минусу шифт безразличен...
:) дело не в "спасибо", просто непонятно было - все должно работать на УРА!
Опции темы


Часовой пояс GMT +3, время: 18:48.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.