public void GetSettingsFromRegistry() { //SMTP EMail = (string)FFunc.GetRegKey("EMail"); Password = (string)FFunc.GetRegKey("Password"); IMAPServerIP = (string)FFunc.GetRegKey("IMAPServerIp"); SMTPServerIP = (string)FFunc.GetRegKey("SmtpServerIp"); WebServiceIP = (string)FFunc.GetRegKey("WebService"); SMTPLogLevel = (string)FFunc.GetRegKey("SMTPLogLevel"); //DMS object obj = FFunc.GetRegKey("DMSEnable"); //處理一開始GetRegKey return null DMS_Enable = (obj == null) ? false : Convert.ToBoolean(obj); obj = FFunc.GetRegKey("DMS_TriggerAt"); DMS_TriggerAt = (obj == null) ? new DateTime(2018, 12, 25, 12, 0, 0) : Convert.ToDateTime(obj); obj = FFunc.GetRegKey("DMS_LastUpdate"); DMS_LastUpdate = (obj == null) ? new DateTime(2018, 1, 1, 12, 0, 0) : Convert.ToDateTime(obj); if (File.Exists(_DMSConfigFilePath)) { DMS_Setting = JsonConvert.DeserializeObject <DMSSetting>(File.ReadAllText(_DMSConfigFilePath)); } //Advanced LogLevel = (FConstants.FreyaLogLevel)Convert.ToInt16(FFunc.GetRegKey("LogLevel")); FeatureByte = (FConstants.FeatureByte)Convert.ToInt32(FFunc.GetRegKey("FeatureByte")); obj = FFunc.GetRegKey("SMTPLogWriterEnable"); //處理一開始GetRegKey return null SMTPLogWriterEnable = (obj == null) ? false : Convert.ToBoolean(obj); }
private bool InitializeFreyaEnvironment() { /// ///[確認Service存在並啟動] string serviceStatus = GetServiceStatus(); if (serviceStatus.Equals("NotExist")) { if (FFunc.Heimdallr("install") == false) { ExitFreya(); return(false); } } else { string FreyaDirectory = (string)FFunc.GetRegKey("FreyaDirectory"); if (FreyaDirectory == null || !FreyaDirectory.Equals(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase)) { if (FFunc.Heimdallr("reinstall") == false) { ExitFreya(); return(false); } } } //StartService(); RegSetting.GetSettingsFromRegistry(); /// /// [Registry] /// 確認 Email/WebService/SMTPServer有值,若無,則跳出Option視窗要求填寫 while (RegSetting.EMail == null || RegSetting.Password == null || RegSetting.SMTPServerIP == null || RegSetting.WebServiceIP == null) { if (!RegSetting.hasRight(FConstants.FeatureByte.Hide)) { FormSetting f = new FormSetting(); f.radioClient = radioClient; f.TopMost = true; f.TopLevel = true; f.ShowDialog(this); //如果按下Cancel,直接結束程式 if (f.DialogResult == System.Windows.Forms.DialogResult.Cancel) { this.Close(); ExitFreya(); return(false); } else if (f.DialogResult == System.Windows.Forms.DialogResult.OK) { radioClient.Send(JsonConvert.SerializeObject(new FMsg { Type = "CMD", Data = "StartProxy" })); logger.WriteLine("[FreyaUI] Send options to service."); RegSetting.GetSettingsFromRegistry(); } } else { break; } } RegSetting.GetSettingsFromRegistry(); getStatus(); alwaysActiveToolStripMenuItem.Checked = RegSetting.hasRight(FConstants.FeatureByte.AlwaysRun) ? true : false; return(true); }
protected override int GetNewPort() { return((int)FFunc.GetRegKey("ServicePort1")); }
/// <summary> /// Load event handler. /// </summary> private void Form1_Load(object sender, EventArgs e) { //Initialize IPC Server, try 3 times for (int i = 0; i < 3; i++) { int serverPort = FFunc.FreePortHelper.GetFreePort(23000); s.UIPort = serverPort; try { radioServer = new IpcServer(); radioServer.Start(serverPort); //this.radioServer.ReceivedRequest += (sender, args) => { }; radioServer.ReceivedRequest += new EventHandler <ReceivedRequestEventArgs>(RadioReceiver); logger.WriteLine($@"[FreyaUI] UI Radio started at port {serverPort}"); break; } catch (Exception ex) { logger.WriteLine(string.Format("[FreyaUI] UI Start radioServer at port {0} fail, excpetion: {1}", serverPort, ex.Message)); } } // For HiJacking SuperNotes WebService Communication /* * radioServer1 = new IpcServer(); * radioServer1.Start(8080); * radioServer1.ReceivedRequest += (ssender, sargs) => * { * UpdateMSGtoUI(sargs.Request); * }; */ int servicePort = (FFunc.GetRegKey("ServicePort1") == null) ? 10000 : (int)FFunc.GetRegKey("ServicePort1"); radioClient = new IpcClientFreyaUI(); radioClient.Initialize(servicePort); //**check service exist, running --> if not --> install and run if (!InitializeFreyaEnvironment()) { return; } //** Get Status from Service getStatus(); //** Timer for Miner IdleTimer = new System.Timers.Timer(); IdleTimer.Elapsed += new ElapsedEventHandler(CheckIdleTime); IdleTimer.Interval = 1000; IdleTimer.Start(); //** Timer for Service state update UpdateServiceStatus(null); StatusTimer = new System.Threading.Timer(new TimerCallback(UpdateServiceStatus), null, 5000, 5000); //** Timer for IMAP Quota update IMAPTimer = new System.Threading.Timer(new TimerCallback(UpdateIMAPQuota), null, 1000, 900000); //** DMS scheduler if (RegSetting.DMS_Enable) { var dateNow = DateTime.Now; var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, RegSetting.DMS_TriggerAt.Hour, RegSetting.DMS_TriggerAt.Minute, 0); updateDMSAt(getNextDate(date)); } //** UI Check if (RegSetting.hasRight(FConstants.FeatureByte.Hide) && !RegSetting.hasRight(FConstants.FeatureByte.Odin)) { label_IMAPQuota.Visible = false; pictureBox_DMS.Visible = false; pictureBox_Miner.Visible = false; } else { label_IMAPQuota.Image = (Image)Resources.QuotaUnAvailable; toolTip.SetToolTip(label_IMAPQuota, "Freya is trying to get MailBox quota..."); if (!IconLock_DMS) { pictureBox_DMS.Image = RegSetting.DMS_Enable ? (Image)Resources.dms_enable : (Image)Resources.dms_disable; toolTip.SetToolTip(pictureBox_DMS, RegSetting.DMS_Enable ? "Auto DMS is enable, Freya will fill out DMS daily for you." : "Auto DMS disabled."); } } label1.Text = ""; label2.Text = ""; label3.Text = ""; label4.Text = ""; alwaysActiveToolStripMenuItem.Checked = RegSetting.hasRight(FConstants.FeatureByte.AlwaysRun) ? true : false; enableToolStripMenuItem.Enabled = s.MinerEnable ? false : true; disableToolStripMenuItem.Enabled = s.MinerEnable ? true : false; //** Get arguments, restore windows state string[] args = Environment.GetCommandLineArgs(); if (args.Length == 2) //第一個是.exe路徑 { if (args[1].Equals("minimized")) { this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; this.notifyIcon1.Visible = true; startMinimized = true; } //this.Location //this.Size } }
public static void AddRight(FConstants.FeatureByte target) { FConstants.FeatureByte fb = (FConstants.FeatureByte)Convert.ToInt32(FFunc.GetRegKey("FeatureByte")); fb = (fb | target); //增加 FFunc.SetRegKey("FeatureByte", Convert.ToInt32(fb)); }
public static void DelRight(FConstants.FeatureByte target) { FConstants.FeatureByte fb = (FConstants.FeatureByte)Convert.ToInt32(FFunc.GetRegKey("FeatureByte")); fb = (fb & (FConstants.FeatureByte.ALL ^ target)); //刪除 FFunc.SetRegKey("FeatureByte", Convert.ToInt32(fb)); }
public static bool HasRight(FConstants.FeatureByte target) { FConstants.FeatureByte fb = (FConstants.FeatureByte)Convert.ToInt32(FFunc.GetRegKey("FeatureByte")); return((fb & target) == target); }
private void comboBox_LogLevel_ParentChanged(object sender, EventArgs e) { var loglevel = FFunc.GetRegKey("LogLevel"); comboBox_LogLevel.SelectedItem = (loglevel == null) ? FConstants.FreyaLogLevel.Normal : (FConstants.FreyaLogLevel)loglevel; }