valinet / sws

sws (Simple Window Switcher) is an Alt-Tab replacement for Windows
GNU General Public License v2.0
66 stars 9 forks source link

ep_setup.exe crashes #6

Closed gvanem closed 1 year ago

gvanem commented 1 year ago

Not sure what's about this project is all about. I built it myself OK. Except for 330 warnings! But not knowing what to do with the generated x64/Release/SimpleWindowSwitcher.dll, I downloaded ep_setup.exe and ran it. Then boom:

explorer!CNotificationCenterButton::Release+0x9:
00007ff6`72aab8a9 f00fc19998000000 lock xadd dword ptr [rcx+98h],ebx ds:ffffffff`fffff008=????????

And callstack:

explorer!CNotificationCenterButton::Release+0x9
dxgi!ZZDWM+0x545d
explorer!CTrayButton::Initialize+0x77
explorer!TrayUI::_CreateWindows+0x10f
explorer!TrayUI::OnCreate+0x142
explorer!CTray::_OnCreate+0xeb
explorer!CTray::v_WndProc+0x107
explorer!CImpWndProc::s_WndProc+0x78
USER32!UserCallWinProcCheckWow+0x2f8
USER32!DispatchClientMessage+0x9c
USER32!__fnINLPCREATESTRUCT+0x87
ntdll!KiUserCallbackDispatcherContinue
win32u!NtUserCreateWindowEx+0x14
USER32!VerNtUserCreateWindowEx+0x20f
USER32!CreateWindowInternal+0x1a4
USER32!CreateWindowExW+0x82
dxgi!ZZDWM+0x7345
explorer!CTray::_CreateTrayWindow+0xe7
explorer!CTray::_SyncThreadProc+0x2d3
shcore!_WrapperThreadProc+0x1a0

Uninstalled ASAP with IO-bit Uninstaller. So I'm still not sure how to use this SimpleWindowSwitcher.dll.

valinet commented 1 year ago

What?

Except for 330 warnings!

What do warnings when compiling have to do with anything?

So I'm still not sure how to use this SimpleWindowSwitcher.dll.

This project contains the code related to the Simple Window Switcher functionality from ExplorerPatcher. It could also be used standalone theoretically in any project, provided that it gets injected before explorer.exe registers its alt-tab hotkeys. The source code is self explanatory, you can see how EP launches it to make sense how to use it in your own project.

The call stack is mostly meaningless if you do not capture it with symbols loaded for the particular build of ExplorerPatcher that you are running.