Вверх ↑
Этот топик читают: Гость
Ответов: 23
Рейтинг: 3
#1: 2012-06-19 17:15:33 ЛС | профиль | цитата
Прошу помощи, я недавно переехал в другую страну, у меня клавиатура с англо-русской раскладкой, я бы хотел склепать себе программку которая по сочетанию двух клавиш выводила нужный мне символ, такие как è, ì, à, ò, ù. Но проблема одна, как послать нужный символ в "каретку" в браузере например, ну в общем в текстовое поле? Может есть компонент а я его не видал?

Заранее спасибо за помощь!
карма: 0

0
Ответов: 1173
Рейтинг: 49
#2: 2012-06-19 17:23:06 ЛС | профиль | цитата
Как вариант -- использовать ClipboardHook (вкладка Контролы).
------------ Дoбавленo в 17.23:
А чтобы не отменять функциональности копи/паста, можно сначала запоминать то, что в буфере находится, а под конец устанавливать обратно.
карма: 0

1
Голосовали:SneyMax
Ответов: 23
Рейтинг: 3
#3: 2012-06-19 17:25:07 ЛС | профиль | цитата
Ex_, гениально, так пожалуй и сделаю, а с сочетанием какой компонент лучше испоьзовать? и потребуется ли носить hook.dll?
карма: 0

0
Ответов: 1821
Рейтинг: 168
#4: 2012-06-19 17:27:56 ЛС | профиль | цитата
SneyMax писал(а):
потребуется ли носить hook.dll?
SneyMax, если не будете использовать KeyHook - то нет.
карма: 5

0
Ответов: 1173
Рейтинг: 49
#5: 2012-06-19 17:31:04 ЛС | профиль | цитата
SneyMax, используйте Timer + KeyMask или GHotKey.
------------ Дoбавленo в 17.31:
Можно ещё "склеивать" *.exe и hook.dll специальными программами, но это чревато неадекватной реакцией антивируса.
карма: 0

0
Ответов: 23
Рейтинг: 3
#6: 2012-06-19 17:36:37 ЛС | профиль | цитата
Ex_Timer + KeyMask или GHotKey, а как именно соединить эти компоненты между собой?
карма: 0

0
Ответов: 1173
Рейтинг: 49
#7: 2012-06-19 17:54:02 ЛС | профиль | цитата
Ex_ писал(а):
Timer + KeyMask
Как-то так:
code_28249.txt
------------ Дoбавленo в 17.54:
Ex_ писал(а):
GHotKey
Вот пример из справки:

Add(MainForm,2953706,462,98)
{
Width=309
Height=128
Point(onKeyDown)
Point(Handle)
}
Add(GHotKey,3377074,224,161)
{
@Hint=#19:Ctrl + Alt + PageUp|
Alt=1
Ctrl=1
Key=33
Point(onError)
link(onEventHotKey,3832100:doEvent1,[])
link(onStartHotKey,9090942:doOn,[(292,174)(292,223)])
link(onStopHotKey,9090942:doOff,[(300,181)(300,216)])
link(onError,7236095:doWork1,[(275,188)])
AddHint(41,-31,105,13,@Hint)
}
Add(Button,9126013,161,161)
{
Left=20
Top=15
Width=75
TabOrder=-1
Caption="PageUp"
link(onClick,3377074:doStartHotKey,[])
}
Add(Message,14809125,371,168)
{
Message="PageUp"
}
Add(LED,9090942,322,203)
{
Left=110
Top=25
ColorBlick=255
}
Add(Button,818039,161,196)
{
Left=20
Top=45
Width=75
TabOrder=-1
Caption="Stop"
link(onClick,3377074:doStopHotKey,[(209,202)(209,174)])
}
Add(GHotKey,12256241,224,245)
{
@Hint=#21:Ctrl + Alt + PageDown|
Alt=1
Ctrl=1
Key=34
Point(onError)
link(onEventHotKey,13493760:doEvent1,[])
link(onStartHotKey,12260958:doOn,[(289,258)(289,307)])
link(onStopHotKey,12260958:doOff,[(296,265)(296,300)])
link(onError,7236095:doWork2,[])
AddHint(-146,73,119,13,@Hint)
}
Add(Button,13331777,161,245)
{
Left=165
Top=15
Width=75
TabOrder=-1
Caption="PageDown"
link(onClick,12256241:doStartHotKey,[])
}
Add(Button,5450373,161,280)
{
Left=165
Top=45
Width=75
TabOrder=-1
Caption="Stop"
link(onClick,12256241:doStopHotKey,[(209,286)(209,258)])
}
Add(LED,12260958,322,287)
{
Left=255
Top=25
ColorBlick=255
}
Add(Message,5300528,371,252)
{
Message="PageDown"
}
Add(Hub,3832100,336,161)
{
link(onEvent1,5378494:doWork2,[])
link(onEvent2,14809125:doMessage,[])
}
Add(Hub,13493760,336,245)
{
link(onEvent1,5378494:doWork3,[(431,251)])
link(onEvent2,5300528:doMessage,[])
}
Add(WinTools,15884268,462,147)
{
link(Handle,2953706:Handle,[])
}
Add(HubEx,5378494,427,161)
{
link(onEvent,15884268:doActive,[])
}
Add(StrList,797889,322,329)
{
Strings=#0:|49:Ошибка создания класса обработчика горячих клавиш|47:Ошибка создания окна обработчика горячих клавиш|66:Ошибка назначения горячей клавиши, или такая клавиша уже назначена|
Point(doGetString)
Point(onGetString)
link(onGetString,6950670:doMessage,[])
}
Add(HubEx,7236095,271,266)
{
Angle=1
link(onEvent,797889:doGetString,[(275,377)])
}
Add(Message,6950670,371,336)
{
}
Если будут ошибки, обнови компонент по SVN.
карма: 0

0
файлы: 1code_28249.txt [469B] [63]
Ответов: 23
Рейтинг: 3
#8: 2012-06-19 17:56:04 ЛС | профиль | цитата
Ex_, спасибо большое, плюсанул бы, но у меня нулевая репутация =(
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#9: 2012-06-19 18:03:07 ЛС | профиль | цитата
Ex_, объясни необходимость применения лишних (с моей точки зрения ) трёх компонент (особенно Timer)
code_28250.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_28250.txt [495B] [65]
Ответов: 1173
Рейтинг: 49
#10: 2012-06-19 18:08:49 ЛС | профиль | цитата
Tad, нужен перехват вне окна.
карма: 0

0
Ответов: 8961
Рейтинг: 824
#11: 2012-06-19 19:13:47 ЛС | профиль | цитата
SneyMax, мне нужно было перехватывать последовательности нажатия 4-х клавиш (в принципе можно от одной до сотни последних ) вот, может пригодится (на выходе номера клавиш по отпусканию):code_28251.txt
карма: 19

0
файлы: 1code_28251.txt [3.8KB] [109]
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)