Orion9

|
Posted: Sun Jul 27, 2025 19:20 Post subject: |
|
|
Loopback
Решил добить я это дело, так как вылет ТС всё-таки раздражает, и, кажется, понял в чём проблема.
Код для теста и воспроизведения проблемы:
 Hidden text Code: | ControlSetHint /F /D:50 /B:5 17 "F7Hint"
Func F7Hint()
If IsPressed (0x10) Then Return GetState("paths")
Sleep(50)
Return "F7 hint text" & auCRLF & GetState("paths")
EndFunc
ControlSetMouseAction /L /B:5 17 F7MouseAction
ControlSetMouseAction /L /K:C /B:5 17 F7MouseAction
Func F7MouseAction()
ShowPopupMenu /D /F "CreateF7Menu"
EndFunc
Func CreateF7Menu()
Local txt
Static p = GetState("paths")
txt = txt & 'MENUITEM "Menu 1", 10000' & auCRLF
txt = txt & 'MENUITEM "Menu 2", 10000' & auCRLF
txt = txt & 'MENUITEM "Menu 3", 10000' & auCRLF
txt = txt & 'MENUITEM SEPARATOR' & auCRLF
txt = txt & 'MENUITEM "Settings...", 10000' & auCRLF
Return txt
EndFunc |
В общем, ТС на самом деле не валился, а просто выходил по cm_Exit, то есть получалось, что время от времени ControlSetMouseAction не срабатывала и нажималась обычная кнопка выхода, хотя этого не должно происходить. В примере выше функция F7MouseAction тоже иногда не срабатывает, что приводит не к вызову меню, а запуску стандартного диалога для создания нового каталога. Но будьте готовы, что баг проявляется довольно редко - может потребоваться 10-15 кликов, и то нет гарантии, что поймаете ) Нужно стараться кликнуть прямо перед самым появлением подсказки. У меня он, конечно, проявлялся намного чаще, пока не заменил получение данных от Plugin("FileDateTime") на Date('yyyyMMdd', FileGetTime(A_Wdx)). |
|