Вверх ↑
Этот топик читают: Гость
Ответов: 45
Рейтинг: 0
#1: 2022-10-08 16:28:06 ЛС | профиль | цитата
Не могу понять в чем проблема, использую компонент "горячая клавиша - GHotKey"
при назначении главной клавиши хорошо работает компонент.

Но при использовании дополнительных клавиш, таких как (ALT CTRL SHIFT и WIN) возникает проблема их.
Точнее они не работают.

Может кто-то сталкивался с этим ?, с такой же проблемой..

Ниже схема проекта

https://forum.hiasm.com/getfile/39556
карма: 0
всё что мешает нам жить это человеческий фактор который не имеющий границы ..
0
Ответов: 2059
Рейтинг: 132
#2: 2022-10-08 16:37:12 ЛС | профиль | цитата
Пизди, пизди - я доверчивый!
карма: 6

-1
Голосовали:sla8a
Ответов: 495
Рейтинг: 163
#3: 2022-10-08 18:42:42 ЛС | профиль | цитата
eney33
Так у меня работает.jpg
карма: 4

0
Ответов: 249
Рейтинг: 4
#4: 2022-10-08 19:46:15 ЛС | профиль | цитата
тоже работает, WIN11

Редактировалось 1 раз(а), последний 2022-10-08 19:46:57
карма: 1

0
Ответов: 2265
Рейтинг: 676
#5: 2022-10-08 22:10:32 ЛС | профиль | цитата
Хватило бы написать как и предыдущие что работает и это было бы правдой, но давайте разберемся поподробней что и как у кого работает и не работает.
Начнем с тестовой схемы. С ее помощью нет возможности протестировать элемент
Ошибка подачи на doAlt, doCtrl, doShift и doWin строковых данных. Тут конечно вопросы к автору оставившим такие описания к точка, но элементу на данные точки нужно подавать числовые значения 0 или 1 (где 0 = None, а 1 = Down).
eney33, попробуйте протестировать этой схемой:

Add(MainForm,2953706,154,217)
{
Width=960
Height=318
Point(onKeyDown)
Point(Handle)
link(onKeyDown,8636598:doEvent1,[])
}
Add(GHotKey,13534820,413,364)
{
Point(doAlt)
Point(doCtrl)
Point(doShift)
Point(doWin)
Point(doKey)
Point(onError)
link(onEventHotKey,8436492:doWork1,[])
link(onStartHotKey,8436492:doWork2,[])
link(onStopHotKey,8436492:doWork3,[])
link(onError,8436492:doWork4,[])
}
Add(Button,3326702,154,301)
{
Left=10
Top=10
Width=150
Height=35
Caption="INSTALL HOT KEY"
link(onClick,3637527:doEvent1,[])
}
Add(Edit,13033738,511,203)
{
Left=256
Top=4
Width=120
Height=30
Color=-16777201
Font=[Tahoma,14,0,128,204]
WinStyle=1
Text="PRESS KEY"
ReadOnly=0
}
Add(CheckBox,6579981,154,378)
{
Left=240
Top=37
Width=38
Height=13
Font=[Tahoma,8,0,0,204]
Caption="ALT"
link(onCheck,13534820:doAlt,[])
}
Add(CheckBox,16715049,154,413)
{
Left=280
Top=37
Width=44
Height=13
Font=[Tahoma,8,0,0,204]
Caption="CTRL"
link(onCheck,13534820:doCtrl,[(205,419)(205,391)])
}
Add(CheckBox,127497,154,448)
{
Left=330
Top=37
Width=49
Height=13
Font=[Tahoma,8,0,0,204]
Caption="SHIFT"
link(onCheck,13534820:doShift,[(216,454)(216,398)])
}
Add(CheckBox,144353,154,483)
{
Left=385
Top=37
Width=44
Height=13
Font=[Tahoma,8,0,0,204]
Caption="WIN"
link(onCheck,13534820:doWin,[(236,489)(236,405)])
}
Add(Button,5491605,154,336)
{
Left=10
Top=45
Width=150
Height=35
Caption="CANCEL KEY"
link(onClick,13534820:doStopHotKey,[(203,342)(203,377)])
}
Add(ListBox,13926990,595,329)
{
Left=450
Top=5
Width=490
Height=270
AddType=1
}
Add(ChanelToIndex,8436492,455,364)
{
Count=4
link(onIndex,9291930:doGetString,[])
}
Add(StrList,9291930,504,322)
{
Strings=#5:Event|12:HotKey Start|11:HotKey Stop|5:Error|
Point(doGetString)
Point(onGetString)
link(onGetString,12966389:doStrCatDlm,[])
}
Add(Hub,8636598,301,238)
{
link(onEvent1,2386500:doGetString,[])
link(onEvent2,10006215:doText,[(323,251)(323,265)])
}
Add(MathParse,1366949,546,280)
{
DataCount=0
MathStr="%0 + 1"
Point(reCalc)
}
Add(StrCatDelim,12966389,553,329)
{
Delimiter=" "
link(onStrCatDlm,13926990:doAdd,[])
link(Str1,1366949:reCalc,[])
}
Add(Edit,10006215,343,259)
{
Left=170
Top=15
}
Add(Hub,3637527,315,301)
{
link(onEvent1,15786495:doData,[])
link(onEvent2,13534820:doStartHotKey,[(337,314)(337,370)])
}
Add(DoData,15786495,343,301)
{
link(onEventData,13534820:doKey,[(392,307)(392,412)])
link(Data,10006215:Text,[])
}
Add(StrList,2386500,343,196)
{
Strings=#9:0--------|0:|1: |9:3--------|0:|9:5--------|9:6--------|9:7--------|13:8-<BackSpase>|7:9-<Tab>|10:10--------|10:11--------|6:12-<5>|10:13-<Enter>|10:14--------|10:15--------|10:16-<Shift>|9:17-<Ctrl>|8:18-<Alt>|10:19-<Pause>|8:20-<Tab>|10:21--------|10:22--------|10:23--------|10:24--------|10:25--------|10:26--------|8:27-<Esc>|10:28--------|10:29--------|10:30--------|10:31--------|11:32-<Space> |9:33-<PgUp>|11:34-<PgDown>|8:35-<End>|9:36-<Home>|9:37-<Left>|7:38-<Up>|10:39-<Right>|9:40-<Down>|10:41--------|10:42--------|10:43--------|11:44-<Prtscr>|8:45-<Ins>|8:46-<Del>|10:47--------|4:48-0|4:49-1|4:50-2|4:51-3|4:52-4|4:53-5|4:54-6|4:55-7|4:56-8|4:57-9|10:58--------|10:59--------|10:60--------|10:61--------|10:62--------|10:63--------|10:64--------|4:65-A|4:66-B|4:67-C|4:68-D|4:69-E|4:70-F|4:71-G|4:72-H|4:73-I|4:74-J|4:75-K|4:76-L|4:77-M|4:78-N|4:79-O|4:80-P|4:81-Q|4:82-R|4:83-S|4:84-T|4:85-U|4:86-V|4:87-W|4:88-X|4:89-Y|4:90-Z|12:91-<Windows>|3:92-|3:93-|10:94--------|10:95--------|4:96-0|4:97-1|4:98-2|4:99-3|5:100-4|5:101-5|5:102-6|5:103-7|5:104-8|5:105-9|5:106-*|5:107-+|11:108--------|5:109--|5:110-.|5:111-/|8:112-<F1>|8:113-<F2>|8:114-<F3>|8:115-<F4>|8:116-<F5>|8:117-<F6>|8:118-<F7>|8:119-<F8>|8:120-<F9>|9:121-<F10>|9:122-<F11>|9:123-<F12>|11:124--------|11:125--------|11:126--------|11:127--------|11:128--------|11:129--------|11:130--------|11:131--------|11:132--------|11:133--------|11:134--------|11:135--------|11:136--------|11:137--------|11:138--------|11:139--------|11:140--------|11:141--------|11:142--------|11:143--------|4:144-|4:145-|11:146--------|11:147--------|11:148--------|11:149--------|11:150--------|11:151--------|11:152--------|11:153--------|11:154--------|11:155--------|11:156--------|11:157--------|11:158--------|11:159--------|12:160-<ShiftL>|12:161-<ShiftR>|11:162-<CtrlL>|11:163-<CtrlR>|10:164-<AltL>|10:165-<AltR>|11:166--------|11:167--------|11:168--------|11:169--------|11:170--------|11:171--------|11:172--------|11:173--------|11:174--------|11:175--------|11:176--------|11:177--------|11:178--------|11:179--------|11:180--------|11:181--------|11:182--------|11:183--------|11:184--------|11:185--------|5:186-;|5:187-=|5:188-,|5:189--|6:190-. |5:191-/|5:192-`|11:193--------|11:194--------|11:195--------|11:196--------|11:197--------|11:198--------|11:199--------|11:200--------|11:201--------|11:202--------|11:203--------|11:204--------|11:205--------|11:206--------|11:207--------|11:208--------|11:209--------|11:210--------|11:211--------|11:212--------|11:213--------|11:214--------|11:215--------|11:216--------|11:217--------|11:218--------|5:219-[|5:220-\|5:221-]|5:222-'|11:223--------|11:224--------|11:225--------|11:226--------|11:227--------|11:228--------|11:229--------|11:230--------|11:231--------|11:232--------|11:233--------|11:234--------|11:235--------|11:236--------|11:237--------|11:238--------|11:239--------|11:240--------|11:241--------|11:242--------|11:243--------|11:244--------|11:245--------|11:246--------|11:247--------|11:248--------|11:249--------|11:250--------|11:251--------|11:252--------|11:253--------|11:254--------|11:255--------|
Point(doGetString)
Point(onGetString)
link(onGetString,9017934:doSplit,[])
}
Add(StrPart,9017934,385,203)
{
Char="-"
link(onSplit,8356423:doReplace,[])
}
Add(Replace,8356423,427,203)
{
SubStr="<"
link(onReplace,15398441:doReplace,[])
}
Add(Replace,15398441,469,203)
{
SubStr=">"
link(onReplace,13033738:doText,[])
}

карма: 11

0
Ответов: 263
Рейтинг: 18
#6: 2022-10-09 13:08:53 ЛС | профиль | цитата
sla8a писал(а):
попробуйте протестировать этой схемой

Работает как надо. Win10x64
карма: 3

0
Ответов: 45
Рейтинг: 0
#7: 2022-10-09 17:16:44 ЛС | профиль | цитата
Как написали более опытние конструкторы. Нужно было поставить вместо None - 0 и Down - 1
Схема начала работать корректно.
Благодарность

У меня также Win11
карма: 0
всё что мешает нам жить это человеческий фактор который не имеющий границы ..
0
Ответов: 2265
Рейтинг: 676
#8: 2022-10-09 18:54:56 ЛС | профиль | цитата
eney33, ещё обратите внимание что в вашей схеме горячие клавиши назначаются при каждом нажатии любой клавиши. И когда вы к примеру уже назначили Ctrl+W и пытаетесь получить событие. Нажимаете Ctrl и в этот момент ваша схема сново назначает горячие клавиши и это будет Ctrl+Ctrl (честно не знаю как реагирует на такую комбинацию система, но как минимум ошибки на это нет). И при нажатой клавише Ctrl, вы нажимаете W в надежде получить событие, но эта комбинация не зарегистрирована на момент нажатия клавиши W (вы уже назначили Ctrl+Ctrl) , а назначится только после нажатия. В общем логика вашей схемы затрудняет тестирование.

Редактировалось 1 раз(а), последний 2022-10-09 18:56:23
карма: 11

0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)