A month ago, I found windows.immersiveshell.serviceprovider.dll in Process Explorer, and wondered if this had to do with the Charms bar. I looked it up, and found an article that describes steps to use SysInternals' Process Explorer to terminate the thread that is running code within this "Immersive Experience" library. In closing, the author states that using Process Explorer is not automatic (it entails user interaction), and that s/he hopes someone finds an effective way to disable the immersive start menu.
I found another article suggesting that the Registry affords this functionality. I tested it, finding that it indeed does. The relevant registry keys are:
[HKCU\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUi] DisableTLCorner=1 DisableCharmsHint=1
I also think that following the advice I found of right-clicking the taskbar to arrive at Properties and selecting the Navigation tab may have helped me locate a control to add another registry entry that has reduced the annoyance factor of the Windows 8 UI. The relevant registry key was:
[HKCU\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUi] DisableTRCorner=1
A command script for making all these changes at the same time follows:
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUi /v DisableTRCorner /d 1 /f REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUi /v DisableTLCorner /d 1 /f REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUi /v DisableCharmsHint /d 1 /f
Nevertheless, I thought I'd see if I could implement something similar to the "Kill Thread" function in SysInternals' process explorer. The result can be found here on my Github:
https://github.com/strictlymike/charmkiller
It is based on the following two articles:
- Enumerating All Modules For a Process [MSDN]; and,
- How to get the module name associated with a thread [Rohitab]
The end result was a program that is capable of locating and terminating the thread that handles Immersive Experience events such as the charms menu. Alas, that thread also handles things like wireless network configuration and the start menu which I commonly use to invoke programs whose locations I do not know, such as the Windows SDK prompt. So, I would recommend trying the registry maneuvers first, restarting explorer to evaluate. Regardless, the source code for the project I created could still be useful in the general sense for terminating specific threads in arbitrary processes. Not sure I can think of an example, but nonetheless, it's out there, just in case ;-)
No comments:
Post a Comment