Closed SailReal closed 6 years ago
@SailReal On my end, IE + Keepass and a few other configurations now work as expected. I achieved it by enumerating all visible windows on the desktop and sending WM_CLOSE to all of them when exiting (and closing all processes belonging to those windows if they don't respond to that). This is not foolproof as there could be processes with invisible windows or processes with no windows at all, but I think this is the best we can do for now.
To avoid having such processes with invisible windows spawn on the next iteration of the desktop, we could randomize the desktop class name each time we open it so it doesn't get reused.
Also, there is a lot of debug print stuff and a message box in the code which I will remove before merging once everything works properly.
CAUTION: running the application on the default desktop now terminates all processes living on this desktop, i.e. windows is pretty much unusable afterwards - if you need to run ich on the default desktop comment out the ::PostMessage(..., WM_CLOSE, ...)
and ::TerminateProces(...)
calls ;)
Sounds pretty awesome and thanks for the hint with the default desktop๐
Playing around, I discovered these things:
WaitForMultipleObjects
-function?After switching back to the default desktop, all applications were finished ๐
@SailReal
@SailReal I added a new option to the config which disables closing of the secure desktop when all apps are closed. This can, for now (until we find a better solution), be used for problematic applications like IE in your case. With this I hope we can finally close this PR... ๐
Awesome ๐ and thx for your help!!! If you approve the review I will merge the PR
I'm going to remove the debug print stuff tomorrow and then approve it :)
Without additional app:
With keepass as additional app: