ALTaleX531 / TranslucentFlyouts

Translucent effect for most of the win32 flyouts
GNU Lesser General Public License v3.0
779 stars 24 forks source link

Animation feature causes an internal error in uiautomationcore.dll #116

Closed Satanarious closed 3 months ago

Satanarious commented 4 months ago

Explorer crashes regardless of whether it is being shown or not, i.e. The explore might be in use by the user or it might not even be open. Using the context menu somehow crashes it.

OS: Win10 v19045.4123 Dump Files: Explorer.EXE-minidump-2024-03-13-17-02-50.dmp explorer.exe-minidump-2024-03-13-17-06-16.dmp

ALTaleX531 commented 4 months ago

image This seems like a tricky stuff because the exception is not thrown by TF but by UIAutomationCore.dll. As far as I know UIAutomationCore is only called if something like a narrator is turned on or something like that, which I think will take a while to look into.

Satanarious commented 4 months ago

Also, I use ExplorerBlurMica and TaskbarX if that matters somehow.

ALTaleX531 commented 4 months ago

So can you run the test again with TaskbarX stopped?

Satanarious commented 4 months ago

I cannot seem to reproduce the error now. Just right-clicking a few times and hovering over items in the menu would crash the explorer. I stopped TaskbarX and restarted it. But now it seems fine somehow.

ALTaleX531 commented 4 months ago

I believe this is an internal issue with UIAutomationCore.dll as the issue has been mentioned by many people. When it tries to read any UI element, if a window is created at that point, then there is a high probability that it will crash. This is because with EnableFluentAnimation enabled TF needs to create an additional window to display the animation, which is exactly the situation described above. And TaskbarX indirectly calls the function in UIAutomationCore.dll through MSAA. The solution for now is to disable the animation, so that basically there will be no crash.

Satanarious commented 4 months ago

Sometimes explorer.exe doesn't even create a minidump and just crashes when I use the context menu

Satanarious commented 3 months ago

I got you few dump files, if it helps. You already know the uiautomationcore.dll error, but there is an oleacc.dll error now. I got the uiautomationcore.dll error at first and kept getting the oleacc.dll error multiple times after that.

oleacc.dll_causing_error.dmp uiautomationcore.dll_causing_error.dmp

TF v3.1.0

ALTaleX531 commented 3 months ago

They are actually the same error, as they all show uiautomationcore.dll near the call stack, except that the oleacc.dll error comes from uiautomationcore.dll passing it a null pointer. These dump files are the same error described in the dump file you uploaded earlier. Do you get this problem even if you disable EnableFluentAnimation? I'm curious if you also get this problem if you add the Menu to the DisabledList, I suspect it has something to do with global hook.

Satanarious commented 3 months ago

Disabling EnableFluentAnimation does work. What Menu are you talking about? Enabling EnableFluentAnimation and still using TaskbarX while it has been added to the disabledList and restarting doesn't solve the problem.

Edit: I'm also using Rainmeter, if that matters. Edit: I added Rainmeter to disabledList, still explorer crashing.

ALTaleX531 commented 3 months ago

Oh, I thought explorer was still crashing even though you had EnableFluentAnimation disabled, never mind. As I explained before, the animation feature causes an internal error in uiautomationcore.dll, which happens on both Windows 10 and 11, and if any of the programs use the functionality of uiautomationcore.dll, that will crash explorer. If you are still using TaskbarX, then it will crash explorer unless the animation feature is disabled. By the way, DisabledList only works for programs that use classic context menus, tooltips etc.

I will try to fix this issue, but this is more like something Microsoft should do.

Satanarious commented 3 months ago

Got it

ALTaleX531 commented 3 months ago

Good news, I have managed to find a way to mitigate this issue, please wait for the next update.

ALTaleX531 commented 3 months ago

Fixed.