diff --git a/src/modules/FileLocksmith/FileLocksmithExt/PowerToysModule.cpp b/src/modules/FileLocksmith/FileLocksmithExt/PowerToysModule.cpp index d0ee80b872..5a46049e2f 100644 --- a/src/modules/FileLocksmith/FileLocksmithExt/PowerToysModule.cpp +++ b/src/modules/FileLocksmith/FileLocksmithExt/PowerToysModule.cpp @@ -19,6 +19,26 @@ class FileLocksmithModule : public PowertoyModuleIface { +private: + // Update registration based on enabled state + void UpdateRegistration(bool enabled) + { + if (enabled) + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + FileLocksmithRuntimeRegistration::EnsureRegistered(); + Logger::info(L"File Locksmith context menu registered"); +#endif + } + else + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + FileLocksmithRuntimeRegistration::Unregister(); + Logger::info(L"File Locksmith context menu unregistered"); +#endif + } + } + public: FileLocksmithModule() { @@ -88,21 +108,16 @@ public: package::RegisterSparsePackage(path, packageUri); } } -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - FileLocksmithRuntimeRegistration::EnsureRegistered(); -#endif m_enabled = true; + UpdateRegistration(m_enabled); } virtual void disable() override { Logger::info(L"File Locksmith disabled"); -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - FileLocksmithRuntimeRegistration::Unregister(); - Logger::info(L"File Locksmith context menu unregistered (Win10)"); -#endif m_enabled = false; + UpdateRegistration(m_enabled); } virtual bool is_enabled() override @@ -135,6 +150,7 @@ private: { m_enabled = FileLocksmithSettingsInstance().GetEnabled(); m_extended_only = FileLocksmithSettingsInstance().GetShowInExtendedContextMenu(); + UpdateRegistration(m_enabled); Trace::EnableFileLocksmith(m_enabled); } diff --git a/src/modules/NewPlus/NewShellExtensionContextMenu/powertoys_module.cpp b/src/modules/NewPlus/NewShellExtensionContextMenu/powertoys_module.cpp index ad94431953..b63b755d86 100644 --- a/src/modules/NewPlus/NewShellExtensionContextMenu/powertoys_module.cpp +++ b/src/modules/NewPlus/NewShellExtensionContextMenu/powertoys_module.cpp @@ -21,6 +21,26 @@ // Note: Settings are managed via Settings and UI Settings class NewModule : public PowertoyModuleIface { +private: + // Update registration based on enabled state + void UpdateRegistration(bool enabled) + { + if (enabled) + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + NewPlusRuntimeRegistration::EnsureRegisteredWin10(); + Logger::info(L"New+ context menu registered"); +#endif + } + else + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + NewPlusRuntimeRegistration::Unregister(); + Logger::info(L"New+ context menu unregistered"); +#endif + } + } + public: NewModule() { @@ -98,14 +118,9 @@ public: { newplus::utilities::register_msix_package(); } - else - { -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - NewPlusRuntimeRegistration::EnsureRegisteredWin10(); -#endif - } powertoy_new_enabled = true; + UpdateRegistration(powertoy_new_enabled); } virtual void disable() override @@ -150,19 +165,14 @@ private: { Trace::EventToggleOnOff(false); } - if (!package::IsWin11OrGreater()) - { -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - NewPlusRuntimeRegistration::Unregister(); - Logger::info(L"New+ context menu unregistered (Win10)"); -#endif - } powertoy_new_enabled = false; + UpdateRegistration(powertoy_new_enabled); } void init_settings() { powertoy_new_enabled = NewSettingsInstance().GetEnabled(); + UpdateRegistration(powertoy_new_enabled); } }; diff --git a/src/modules/imageresizer/dll/dllmain.cpp b/src/modules/imageresizer/dll/dllmain.cpp index 697550df9d..c616e77e42 100644 --- a/src/modules/imageresizer/dll/dllmain.cpp +++ b/src/modules/imageresizer/dll/dllmain.cpp @@ -43,11 +43,32 @@ private: //contains the non localized key of the powertoy std::wstring app_key; + // Update registration based on enabled state + void UpdateRegistration(bool enabled) + { + if (enabled) + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + ImageResizerRuntimeRegistration::EnsureRegistered(); + Logger::info(L"ImageResizer context menu registered"); +#endif + } + else + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + ImageResizerRuntimeRegistration::Unregister(); + Logger::info(L"ImageResizer context menu unregistered"); +#endif + } + } + + public: // Constructor ImageResizerModule() { m_enabled = CSettingsInstance().GetEnabled(); + UpdateRegistration(m_enabled); app_name = GET_RESOURCE_STRING(IDS_IMAGERESIZER); app_key = ImageResizerConstants::ModuleKey; LoggerHelpers::init_logger(app_key, L"ModuleInterface", LogSettings::imageResizerLoggerName); @@ -112,10 +133,7 @@ public: package::RegisterSparsePackage(path, packageUri); } } -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - ImageResizerRuntimeRegistration::EnsureRegistered(); -#endif - + UpdateRegistration(m_enabled); Trace::EnableImageResizer(m_enabled); } @@ -123,11 +141,8 @@ public: virtual void disable() { m_enabled = false; + UpdateRegistration(m_enabled); Trace::EnableImageResizer(m_enabled); -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - ImageResizerRuntimeRegistration::Unregister(); - Logger::info(L"ImageResizer context menu unregistered (Win10)"); -#endif } // Returns if the powertoys is enabled diff --git a/src/modules/powerrename/dll/dllmain.cpp b/src/modules/powerrename/dll/dllmain.cpp index a4f906fe66..698797f932 100644 --- a/src/modules/powerrename/dll/dllmain.cpp +++ b/src/modules/powerrename/dll/dllmain.cpp @@ -168,6 +168,25 @@ private: //contains the non localized key of the powertoy std::wstring app_key; + // Update registration based on enabled state + void UpdateRegistration(bool enabled) + { + if (enabled) + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + PowerRenameRuntimeRegistration::EnsureRegistered(); + Logger::info(L"PowerRename context menu registered"); +#endif + } + else + { +#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) + PowerRenameRuntimeRegistration::Unregister(); + Logger::info(L"PowerRename context menu unregistered"); +#endif + } + } + public: // Return the localized display name of the powertoy virtual PCWSTR get_name() override @@ -202,9 +221,7 @@ public: package::RegisterSparsePackage(path, packageUri); } } -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - PowerRenameRuntimeRegistration::EnsureRegistered(); -#endif + UpdateRegistration(m_enabled); } // Disable the powertoy @@ -212,10 +229,7 @@ public: { m_enabled = false; Logger::info(L"PowerRename disabled"); -#if defined(ENABLE_REGISTRATION) || defined(NDEBUG) - PowerRenameRuntimeRegistration::Unregister(); - Logger::info(L"PowerRename context menu unregistered (Win10)"); -#endif + UpdateRegistration(m_enabled); } // Returns if the powertoy is enabled @@ -315,6 +329,7 @@ public: void init_settings() { m_enabled = CSettingsInstance().GetEnabled(); + UpdateRegistration(m_enabled); Trace::EnablePowerRename(m_enabled); }