Nope, hooks do not work that way. Global system hook DLL installed with SetWindowsHookEx is being automatically loaded by OS in address space of any process running in the system as soon as it perform some target activity (create and activate windows in case of WH_CBT hook used by AB and similar OSD hooking tools). You cannot selectively prevent hooks library from being loaded in context of some process neither with EnableHooking switch nor with something else (unless the process itself is purposely protected against loading hooks from outside). And what EnableHooking=0 actually does is disabling actual API hooks injection and API calls interception in context of target process, but hooks library anyway always get loaded and stay in passive state there. Also, after uninstalling system hooks (i.e. closing RTSS in our case) system-wide hook libraries cannot be unloaded immediately by design of OS as it is documented by Microsoft. But the injected library does get eventually freed by OS later. And by the way, creating profiles for ApplicationFrameHost with EnableHooking=0 makes no sense because it is a system application and it is already set to 0 for all processes residing in your Windows folder (template for such processes is stored in .\ProfileTemplates\System). So quite opposite, if you wanted ApplicationFrameHost to be really hooked, you'd need to create a profile for it with EnableHooking set to 1 (and BTW that will be really hooked that way in 6.7.0, because it is required to work with UWP).