I just wanna propose you to change the method of plugin definition from getting the plugin name from listview to real DLL name. When I'm working with hard projects my CPU has often overloaded, and NVDA cannot process the listview with the following log message:
ERROR - eventHandler.executeEvent (11:57:52.933) - MainThread (12688):
error executing event: gainFocus on <NVDAObjects.IAccessible.sysListView32.ListItem object at 0x074A0EF0> with extra args of {}
Traceback (most recent call last):
File "eventHandler.pyc", line 155, in executeEvent
File "eventHandler.pyc", line 92, in __init__
File "eventHandler.pyc", line 100, in next
File "NVDAObjects\__init__.pyc", line 1102, in event_gainFocus
File "NVDAObjects\behaviors.pyc", line 611, in reportFocus
File "NVDAObjects\__init__.pyc", line 988, in reportFocus
File "speech\__init__.pyc", line 469, in speakObject
File "speech\__init__.pyc", line 506, in getObjectSpeech
File "speech\__init__.pyc", line 377, in getObjectPropertiesSpeech
File "baseObject.pyc", line 42, in __get__
File "baseObject.pyc", line 145, in _getPropertyViaCache
File "NVDAObjects\IAccessible\sysListView32.pyc", line 435, in _get_name
File "NVDAObjects\IAccessible\sysListView32.pyc", line 359, in _getColumnLocation
File "baseObject.pyc", line 42, in __get__
File "baseObject.pyc", line 145, in _getPropertyViaCache
File "NVDAObjects\IAccessible\sysListView32.pyc", line 222, in _get__columnOrderArray
File "winKernel.pyc", line 212, in virtualAllocEx
OSError: [WinError 8] Недостаточно ресурсов памяти для обработки этой команды.
When this error has ocurred SIBIAC doesn't defines the plugin and doesn't activates there.
A few time past I had reported this bug to NVAccess but it is still didn't fixed. Perhaps I'd reported this in 2015th year. Seems this error cannot be fixed basically.
Unfortunately i don't know Python but a few time ago me and my friend have written the clicker in PureBasic. There we are used the WinAPI hooks for creating and destroying the windows in process. When new window has been created we get the process name of created window and load the appropriated file with the same name as process name who has created this window. It is works better because the DLL name not changeable instead of name from SysListWiev32 when i can rename it there.
Thanks in advance!