Вверх ↑
Этот топик читают: Гость
Ответов: 9
Рейтинг: 0
#1: 2012-06-23 00:51:24 ЛС | профиль | цитата
Всем привет! Возник вопрос,как можно реализовать вставку пароля в поле другого окна при нажатии определенной клавиши?Вернее не вставку(так как иногда не получается вставить и приходиться писать в ручную),а имитация написания пароля,который будет заранее вставлен в программу.

Я тут маленько написал схему,но думаю что это полный бред.Помогите пожалуйста.
code_28291.txt
карма: 0

0
файлы: 1code_28291.txt [452B] [44]
Ответов: 1173
Рейтинг: 49
#2: 2012-06-23 01:37:02 ЛС | профиль | цитата
Вы имеете в виду нечто, вроде этого:

Add(KeyEvent,1551741,539,182)
{
Code=87
link(Code,6507032:Value,[])
}
Add(KeyHook,2690748,266,147)
{
link(onKeyUp,14999826:doCheckMask,[])
}
Add(KeyMask,14999826,336,154)
{
Key=81
link(onTrue,3833050:doFor,[])
}
Add(For,3833050,406,161)
{
End=3
link(onEvent,1329636:doGetString,[])
}
Add(StrList,1329636,476,119)
{
Strings=#2:87|2:69|2:82|2:87|
Point(doGetString)
Point(onGetString)
link(onGetString,6507032:doValue,[])
}
Add(Memory,6507032,546,126)
{
link(onData,1551741:doPress,[(590,132)(590,160)(527,160)(527,188)])
}

При нажатии на Q, вводит WEW.
карма: 0

0
Ответов: 9
Рейтинг: 0
#3: 2012-06-23 17:51:56 ЛС | профиль | цитата
Да,то что надо) Спасибо большое.Но у меня возник вопрос,при нажатии Q буква тоже пишется,а мне нужно,чтобы писался только пароль.Как это можно сделать,не подскажете?
карма: 0

0
Ответов: 1173
Рейтинг: 49
#4: 2012-06-23 18:11:20 ЛС | профиль | цитата
Tiberius писал(а):
при нажатии Q буква тоже пишется,а мне нужно,чтобы писался только пароль
Да это легко решить, я не пойму только, почему печатается не весь список:
code_28295.txt
Сейчас попробую пофиксить.
карма: 0

0
файлы: 1code_28295.txt [748B] [50]
Ответов: 8978
Рейтинг: 825
#5: 2012-06-23 18:19:01 ЛС | профиль | цитата
Ex_, в список добавте первую клавишу Backspace, она и удалит Q
карма: 19

0
Ответов: 1173
Рейтинг: 49
#6: 2012-06-23 18:19:58 ЛС | профиль | цитата
Почему-то печатаются только символы с нечётными номерами
карма: 0

0
Ответов: 9
Рейтинг: 0
#7: 2012-06-23 18:25:17 ЛС | профиль | цитата
Странно,сначала пишется "passwo",а при повторном нажатии "asswo"
карма: 0

0
Ответов: 1173
Рейтинг: 49
#8: 2012-06-23 18:39:10 ЛС | профиль | цитата
Какой-то неправильный мёд (c)
------------ Дoбавленo в 18.39:
Tiberius, держите:

Add(MainForm,2953706,21,105)
{
}
Add(KeyHook,8331334,98,105)
{
Point(doKillKey)
link(onKeyDown,1380994:doCheckMask,[])
}
Add(KeyMask,1380994,175,105)
{
Key=81
link(onTrue,16202438:doEvent1,[(226,118)(226,111)])
}
Add(Hub,16202438,245,105)
{
link(onEvent1,8331334:doKillKey,[(271,111)(271,99)(86,99)(86,111)])
link(onEvent2,14621617:doFor,[])
}
Add(StrList,2122226,371,70)
{
Strings=#2:81|2:82|2:83|2:84|2:85|
Point(doGetString)
Point(onGetString)
link(onGetString,14828136:doValue,[])
}
Add(Memo,11194692,21,49)
{
Left=30
Top=5
Width=240
Height=195
}
Add(For,14621617,301,112)
{
End=7
link(onEvent,2122226:doGetString,[])
}
Add(KeyEvent,11695604,560,77)
{
link(Code,14828136:Value,[(573,65)(475,65)(475,121)(440,121)])
}
Add(Memory,14828136,434,77)
{
Default=Integer(0)
link(onData,1547603:doData,[])
}
Add(DoData,1547603,497,77)
{
link(onEventData,11695604:doPress,[])
}
карма: 0

0
Ответов: 9
Рейтинг: 0
#9: 2012-06-23 18:39:19 ЛС | профиль | цитата
Красиво сказано
карма: 0

0
Ответов: 1173
Рейтинг: 49
#10: 2012-06-23 18:40:18 ЛС | профиль | цитата
Tiberius, смотрите пост выше. Дело в том, что на doPress нельзя подавать непустые данные, путается он там, что-ли
карма: 0

0
Ответов: 9
Рейтинг: 0
#11: 2012-06-23 18:44:26 ЛС | профиль | цитата
Ну,спасибо за проделанную работу,все работает как я хотел.
Я рад,что на этом форуме все такие дружелюбные)Ко мне можно обращаться на ТЫ)

карма: 0

0
Ответов: 1173
Рейтинг: 49
#12: 2012-06-23 18:45:33 ЛС | профиль | цитата
Вот вариант с Backspace'ом (как советовал Леонид):
code_28297.txt
Не забудьте кинуть hook.dll в папку с программой или заменить KeyHook на конструкцию Timer + Keyboard + If_else.
карма: 0

0
файлы: 1code_28297.txt [813B] [55]
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)