ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

30.12.2009, 19:34
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 Ponchik функция принимает не аски код символа, а код виртуальной кнопки.
В MSDN посмотри Virtual-Key Codes и там есть соответствие кнопок.
e - $45
Чтобы делать большими буквами то нужно shift чтобы был виртуально нажат.
keybd_event(VK_SHIFT, 0, 0, 0); // нажмем шифт
keybd_event($45, 0, 0, 0);// выведем
keybd_event($45, 0, 0, 0);// 2 больших буквы E
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); // уберем шифт
keybd_event($45, 0, 0, 0); // выведем маленькую e
Последний раз редактировалось slesh; 30.12.2009 в 19:40..
|
|
|

30.12.2009, 19:39
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
Сообщение от slesh
2 Ponchik функция принимает не аски код символа, а код виртуальной кнопки.
В MSDN посмотри Virtual-Key Codes и там есть соответствие кнопок.
E - 45
не не, я вот так делаю
Код:
for i:=1 to Length(edt1.Text) do
begin
keybd_event(Ord(edt1.Text[i]), 0, 0, 0);
end;
и если в edt1.Text 1 буква, он её печатает нормально, а вот если несколько, нихрена не печатает или какой-то бред печатает, щас он ваще мне Ctrl+Tab как-то зажал О_о
Он зажимает клавиши, пробовал KEYEVENTF_KEYUP куда-то впихнуть, неполучается, незнаю куда
Хотя может и действительно другие коды надо, щас попробую
=======
Млять, чёто оно мне зажало, я жму на клаве 4 - открывается медиа плеер >_<
Ну лан, на нумпад клаве пишу
И вот тута коды
http://delphi.about.com/od/objectpascalide/l/blvkc.htm
4C это L я пишу
keybd_event(4C, 0, 0, 0);
оно говорит
Как мне ему 4C сказать?
========
БЛЕАТЬ!
Жму на клаве "X" он мне "Центр мобильности Windows открывает"
FFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
Всё, нащёл, он мне кнопку Win зажал, гадина
/me горе кодер >_<
Последний раз редактировалось Ponchik; 30.12.2009 в 19:49..
|
|
|

30.12.2009, 19:49
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
в твоем случае нужно коды переводить данные из обычного кода в виртуальный.
для этого есть функция VkKeyScan. Но при её юзанье ты потеряеш регистр букв. т.е. все будет маленькими или большими, взависимости от шифта.
В твоем случае это так:
keybd_event(VkKeyScan(edit1.Text[x]), 0, 0, 0);
VkKeyScan возвращает в младшей части - код.
А в старшей - инфу о кнопках
If the function succeeds, the low-order byte of the return value contains the virtual-key code and the high-order byte contains the shift state, which can be a combination of the following flag bits.
If the function finds no key that translates to the passed character code, both the low-order and high-order bytes contain –1.
Bit Meaning
1 Either SHIFT key is pressed.
2 Either CTRL key is pressed.
4 Either ALT key is pressed.
8 The Hankaku key is pressed
16 Reserved (defined by the keyboard layout driver).
32 Reserved (defined by the keyboard layout driver).
-------------------
d делфи числа в шестнадчатиричной системе пишутся через $ типа
$A1
Последний раз редактировалось slesh; 30.12.2009 в 19:53..
|
|
|

30.12.2009, 20:02
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Во. Замутил с поддержкой регистра букв.
из Edit2 берет текст и вставляет в Edit1
Код:
var
x : integer;
code : word;
begin
edit1.SetFocus;
for x := 1 to length(edit2.Text) do
begin
code := VkKeyScan(edit2.Text[x]);
if code and $100 <> 0 then keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(code, 0, 0, 0);
if code and $100 <> 0 then keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
end;
|
|
|

30.12.2009, 20:13
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
да на регистр пох, он неуспевает печатать =\ буквы местами меняет/съедает, ппц...
Чем ещё можно клавиши быстро нажимать? Токо чоб не хавало и не меняло местами =\
|
|
|

30.12.2009, 20:22
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
делай паузу небольшую между каждым нажатием
|
|
|

30.12.2009, 20:36
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
да без паузы там вобще катастрофа, у мя стоит пауза 15мс но оно так медлено печатает а буквы всёравно ест зараза
|
|
|

30.12.2009, 20:52
|
|
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме: 487460
Репутация:
45
|
|
в мастдае все строится на событийной модели.... обработка нажатий клавиш одна из ярких представителей, ... много программеров так и не перешло на мастдай от доса потому как не ПРИНЯЛИ событийную модель, ваше приложение должно вызывать функции по получению каких либо событий иначе программирование будет в стиле ЯЛЯ-ДОС!
... это не НАШИ правила!
|
|
|

31.12.2009, 17:09
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
Ponchik, а какова задача? Подозреваю, что там лучше сообщениями сделать
|
|
|

01.01.2010, 13:54
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Знаю что [:|||:], но все же:
Какой компонент выбрать для работы с mySQL?
Как в RichEdit добавить такую строку: 7436: овыпора (Чтобы 1 часть была 1 цветом, а другая другим...)
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|