#pragma once #include "IBaseClash.h" #include #include "CTool.h" #include "CProcess.h" #include "Logger.h" class CLashConfig : public IBaseClash { public: CLashConfig(); ~CLashConfig(void); // ͨ¹ý IBaseClash ¼Ì³Ð virtual BOOL MakeClash() override; virtual BOOL InitClash() override; // ͨ¹ý IBaseClash ¼Ì³Ð virtual BOOL StartClash() override; virtual BOOL StopClash() override; private: YAML::Node buildShadowsocks(); YAML::Node buildtrojan(); YAML::Node buildv2ray(); std::vector buildv2rayHost(); YAML::Node builTunConfig(); YAML::Node buildDnsConfig(); std::vector buildProxyGroups(); std::vector buildRules(); std::vector buildruleproviders(); private: void ThreadFun_process_Config(LPARAM lParam); void ThreadFun_ProcessMonitor_Config(LPARAM lParam); /*winrt::fire_and_forget _StartClash(); winrt::Windows::Foundation::IAsyncAction ProcessMonitor();*/ private: int m_socks_port; int m_http_port; int m_c_port; bool m_is_qut; CProcess* m_process; AsynTaskHandle m_Asyntask; AsynTaskHandle m_AsyntaskProcessMonitor; Logger* m_log; std::vector m_rules; wil::unique_handle _hEvent; };