ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 30.12.2009, 19:34
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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..
 

  #2  
Старый 30.12.2009, 19:39
Ponchik
Постоянный
Регистрация: 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..
 

  #3  
Старый 30.12.2009, 19:49
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

в твоем случае нужно коды переводить данные из обычного кода в виртуальный.
для этого есть функция 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..
 

  #4  
Старый 30.12.2009, 20:02
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Во. Замутил с поддержкой регистра букв.
из 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;
 

  #5  
Старый 30.12.2009, 20:13
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию

да на регистр пох, он неуспевает печатать =\ буквы местами меняет/съедает, ппц...
Чем ещё можно клавиши быстро нажимать? Токо чоб не хавало и не меняло местами =\
 

  #6  
Старый 30.12.2009, 20:22
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

делай паузу небольшую между каждым нажатием
 

  #7  
Старый 30.12.2009, 20:36
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию

да без паузы там вобще катастрофа, у мя стоит пауза 15мс но оно так медлено печатает а буквы всёравно ест зараза
 

  #8  
Старый 30.12.2009, 20:52
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме:
487460

Репутация: 45
По умолчанию

в мастдае все строится на событийной модели.... обработка нажатий клавиш одна из ярких представителей, ... много программеров так и не перешло на мастдай от доса потому как не ПРИНЯЛИ событийную модель, ваше приложение должно вызывать функции по получению каких либо событий иначе программирование будет в стиле ЯЛЯ-ДОС!


... это не НАШИ правила!
 

  #9  
Старый 31.12.2009, 17:09
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

Ponchik, а какова задача? Подозреваю, что там лучше сообщениями сделать
 

  #10  
Старый 01.01.2010, 13:54
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Знаю что [:|||:], но все же:

Какой компонент выбрать для работы с mySQL?
Как в RichEdit добавить такую строку: 7436: овыпора (Чтобы 1 часть была 1 цветом, а другая другим...)
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ