#pragma once #include "RegistryConfig.h" #include #include namespace hook { class ProcessLauncher { public: ProcessLauncher() = default; ~ProcessLauncher(); ProcessLauncher(const ProcessLauncher&) = delete; ProcessLauncher& operator=(const ProcessLauncher&) = delete; bool Start(const HookConfig& config); void Stop(bool loggingEnabled); void Detach(bool loggingEnabled); bool IsRunning(); private: HANDLE process_ = nullptr; DWORD processId_ = 0; void CleanupExitedProcess(); }; }