/// <summary> /// 主题模式切换 /// </summary> /// <param name="sender"></param> /// <param name="value"></param> private void SwitchDarkMode_ValueChanged(object sender, bool value) { var tabBackColor = Color.Transparent; var foreColor = Color.Transparent; if (value) { tabBackColor = Color.FromArgb(24, 24, 24); foreColor = Color.FromArgb(192, 192, 192); UIStyles.SetStyle(UIStyle.Black); tabHome.BackColor = tabBackColor; tabSetting.BackColor = tabBackColor; navTab.MenuStyle = UIMenuStyle.Black; btnStart.SetStyle(UIStyle.Black); tabHome.ImageIndex = 1; tabSetting.ImageIndex = 3; } else { tabBackColor = Color.FromArgb(242, 242, 244); foreColor = Color.FromArgb(48, 48, 48); UIStyles.SetStyle(UIStyle.Gray); tabHome.BackColor = tabBackColor; tabSetting.BackColor = tabBackColor; navTab.MenuStyle = UIMenuStyle.White; btnStart.SetStyle(UIStyle.Gray); tabHome.ImageIndex = 0; tabSetting.ImageIndex = 2; navTab.TabSelectedColor = tabBackColor; navTab.TabSelectedForeColor = Color.FromArgb(140, 140, 140); navTab.TabSelectedHighColor = Color.FromArgb(140, 140, 140); navTab.TabBackColor = Color.FromArgb(222, 222, 222); } tbxAddress.FillColor = tabBackColor; tbxPort.FillColor = tabBackColor; tbxAddress.ForeColor = foreColor; tbxPort.ForeColor = foreColor; comboPx.FillColor = tabBackColor; comboMbps.FillColor = tabBackColor; comboMaxFPS.FillColor = tabBackColor; comboPx.ForeColor = foreColor; comboMbps.ForeColor = foreColor; comboMaxFPS.ForeColor = foreColor; BackColor = Color.FromArgb(140, 140, 140); btnClose.Style = UIStyle.Gray; btnClose.ForeColor = Color.FromArgb(250, 240, 230); btnMini.Style = UIStyle.Gray; btnMini.ForeColor = Color.FromArgb(250, 240, 230); _Setting.DarkMode = switchDarkMode.Active; }
public void InitPdone() { setting = GetUserData(); Application.ApplicationExit += (sender, e) => { SetUserData(setting); }; this.FormClosed += (sender, e) => { if (AdbProcessInfo != null) { //退出前关闭adb AdbProcessInfo.Arguments = "kill-server"; Process.Start(AdbProcessInfo); LogHelper.Info("kill adb server"); } Application.Exit(); }; #region 设置标题 Assembly asm = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location); ledTitle.Text = $"Free Control v{fvi.ProductVersion}"; ledTitle.CharCount = 19; ledTitle.MouseDown += (sender, e) => DragWindow(); this.Icon = Properties.Resources.pcm; #endregion #region 设置主题颜色 UIStyles.SetStyle(UIStyle.Gray); //设置默认导航条颜色 navTab.TabSelectedForeColor = Color.FromArgb(140, 140, 140); navTab.TabSelectedHighColor = Color.FromArgb(140, 140, 140); //设置默认导航条图标 tabHome.ImageIndex = 0; tabSetting.ImageIndex = 2; #endregion #region 设置深色模式 switchDarkMode.ValueChanged += (object sender, bool value) => { var tabBackColor = Color.Transparent; if (value) { tabBackColor = Color.FromArgb(24, 24, 24); UIStyles.SetStyle(UIStyle.Black); tabHome.BackColor = tabBackColor; tabSetting.BackColor = tabBackColor; navTab.MenuStyle = UIMenuStyle.Black; btnStart.SetStyle(UIStyle.Black); tabHome.ImageIndex = 1; tabSetting.ImageIndex = 3; } else { tabBackColor = Color.FromArgb(242, 242, 244); UIStyles.SetStyle(UIStyle.Gray); tabHome.BackColor = tabBackColor; tabSetting.BackColor = tabBackColor; navTab.MenuStyle = UIMenuStyle.White; btnStart.SetStyle(UIStyle.Gray); tabHome.ImageIndex = 0; tabSetting.ImageIndex = 2; navTab.TabSelectedForeColor = Color.FromArgb(140, 140, 140); navTab.TabSelectedHighColor = Color.FromArgb(140, 140, 140); } }; #endregion #region 切换tab事件 navTab.SelectedIndexChanged += (object sender, EventArgs e) => { }; navTab.SelectTab(0); #endregion #region 设置默认值 rbtnPx.SelectedIndex = setting.PXIndex; rbtnMbps.SelectedIndex = setting.BitRateIndex; rbtnMaxFPS.SelectedIndex = setting.MaxFPSIndex; switchDarkMode.Active = setting.DarkMode; tbxAddress.Text = setting.IPAddress; tbxPort.Text = setting.Port; tbxAddress.Enabled = !setting.UseWireless; tbxPort.Enabled = !setting.UseWireless; #region 框默认值 cbxUseWireless.Checked = setting.UseWireless; cbxUseLog.Checked = setting.UseLog; LogHelper.enable = setting.UseLog; cbxCloseScreen.Checked = setting.CloseScreen; cbxKeepAwake.Checked = setting.KeepAwake; cbxAllFPS.Checked = setting.AllFPS; cbxHideBorder.Checked = setting.HideBorder; cbxFullScreen.Checked = setting.FullScreen; cbxTopMost.Checked = setting.TopMost; #endregion #region 参数设置事件 rbtnPx.ValueChanged += RbtnPx_ValueChanged; rbtnMbps.ValueChanged += RbtnMbps_ValueChanged; rbtnMaxFPS.ValueChanged += RbtnMaxFPS_ValueChanged; cbxUseWireless.ValueChanged += CbxUseWireless_ValueChanged; cbxUseLog.ValueChanged += CbxUseLog_ValueChanged;; switchDarkMode.ValueChanged += (sender, e) => { setting.DarkMode = switchDarkMode.Active; }; tbxAddress.TextChanged += TbxAddress_TextChanged; tbxPort.TextChanged += TbxPort_TextChanged; cbxCloseScreen.ValueChanged += CommonCbx_ValueChanged; cbxKeepAwake.ValueChanged += CommonCbx_ValueChanged; cbxAllFPS.ValueChanged += CommonCbx_ValueChanged; cbxHideBorder.ValueChanged += CommonCbx_ValueChanged; cbxFullScreen.ValueChanged += CommonCbx_ValueChanged; cbxTopMost.ValueChanged += CommonCbx_ValueChanged; #endregion #endregion #region 启动前 string tempFileName = "temp.zip"; if (!Directory.Exists(scrcpyPath)) { Directory.CreateDirectory(scrcpyPath); File.WriteAllBytes(scrcpyPath + tempFileName, Properties.Resources.scrcpy_win32_v1_17); if (SharpZip.UnpackFiles(scrcpyPath + tempFileName, scrcpyPath)) { File.Delete(scrcpyPath + tempFileName); } } #endregion Process scrcpy = null; //设置端口号命令 adb tcpip 5555 #region 启动按钮 btnStart.Click += (sender, e) => { if (setting.UseWireless && (string.IsNullOrWhiteSpace(setting.IPAddress) || string.IsNullOrWhiteSpace(setting.Port))) { UIMessageTip.ShowWarning(sender as Control, "IP地址或者端口号没有填写,无法启动 -.-!", 1500); return; } LogHelper.Info("starting..."); var paramlist = $" {setting.BitRate} {setting.PX} {setting.MaxFPS} {setting.OtherParam} "; //设置屏幕高度 800 paramlist += "--window-height 800 "; //设置快捷键 左Crtl paramlist += "--shortcut-mod=lctrl "; //设置标题 paramlist += $"--window-title \"{ledTitle.Text}\" "; AdbProcessInfo = new ProcessStartInfo($@"{scrcpyPath}adb.exe", $"connect {setting.IPAddress}:{setting.Port}") { CreateNoWindow = true, //设置不在新窗口中启动新的进程 UseShellExecute = false, //不使用操作系统使用的shell启动进程 RedirectStandardOutput = true, //将输出信息重定向 }; if (setting.UseWireless) { //启动ABD Process adb = Process.Start(AdbProcessInfo); LogHelper.Info(adb.StandardOutput.ReadToEnd()); adb.WaitForExit(); paramlist = $"-s {setting.IPAddress}:{setting.Port} " + paramlist; } scrcpy = Process.Start(new ProcessStartInfo($@"{scrcpyPath}scrcpy.exe", paramlist) { CreateNoWindow = true, //设置不在新窗口中启动新的进程 UseShellExecute = false, //不使用操作系统使用的shell启动进程 RedirectStandardOutput = true, //将输出信息重定向 }); this.Hide(); LogHelper.Info("scrcpy running..."); LogHelper.Info(scrcpy.StandardOutput.ReadToEnd()); scrcpy.WaitForExit(); UIMessageTip.Show(this, "已退出", null, 1500); this.Show(); }; #endregion }
/// <summary> /// 初始化 /// </summary> public void InitPdone() { //获取用户配置数据 _Setting = GetUserData(); //adb路径 ADB.ADBPath = $@"{ScrcpyPath}"; //增加adb执行文件系统变量 ADB.AddEnvironmentPath(ScrcpyPath); //提取资源 ExtractResource(); #region 事件绑定 //退出时保存用户配置数据 Application.ApplicationExit += (sender, e) => { SetUserData(_Setting); ADB.Execute("kill-server"); }; FormClosed += (sender, e) => Application.Exit(); //窗口拖动 MouseDown += (sender, e) => DragWindow(); ledTitle.MouseDown += (sender, e) => DragWindow(); tabHome.MouseDown += (sender, e) => DragWindow(); tabSetting.MouseDown += (sender, e) => DragWindow(); //关闭按钮和最小化按钮 btnClose.Click += (sender, e) => Close(); btnMini.Click += (sender, e) => WindowState = FormWindowState.Minimized; //启动按钮 btnStart.Click += StartButtonClick; //深色模式切换 switchDarkMode.ValueChanged += SwitchDarkMode_ValueChanged; //窗口大小设置 updownHeight.ValueChanged += (sender, e) => _Setting.WindowHeight = updownHeight.Value; updownWidth.ValueChanged += (sender, e) => _Setting.WindowWidth = updownWidth.Value; rbtnShortcuts.ValueChanged += RbtnShortcuts_ValueChanged; //下拉框 comboPx.SelectedValueChanged += ComboPx_SelectedValueChanged; comboMbps.SelectedValueChanged += ComboMbps_SelectedValueChanged; comboMaxFPS.SelectedValueChanged += ComboMaxFPS_SelectedValueChanged; //文本框 tbxAddress.TextChanged += TbxAddress_TextChanged; tbxPort.TextChanged += TbxPort_TextChanged; //CheckBox cbxUseWireless.ValueChanged += CbxUseWireless_ValueChanged; cbxUseLog.ValueChanged += CbxUseLog_ValueChanged; cbxControllerEnabled.ValueChanged += CbxControllerEnabled_ValueChanged; cbxCloseScreen.ValueChanged += CommonCbx_ValueChanged; cbxKeepAwake.ValueChanged += CommonCbx_ValueChanged; cbxAllFPS.ValueChanged += CommonCbx_ValueChanged; cbxHideBorder.ValueChanged += CommonCbx_ValueChanged; cbxFullScreen.ValueChanged += CommonCbx_ValueChanged; cbxTopMost.ValueChanged += CommonCbx_ValueChanged; cbxShowTouches.ValueChanged += CommonCbx_ValueChanged; cbxReadOnly.ValueChanged += CommonCbx_ValueChanged; #endregion #region 设置标题和图标 Assembly asm = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location); Text = $"Free Control v{fvi.ProductVersion}"; lbTitle.Visible = false; lbTitle.Text = Text; lbTitle.ForeColor = Color.FromArgb(250, 240, 230); ledTitle.Text = Text; ledTitle.CharCount = 19; Icon = Properties.Resources.pcm; #endregion #region 设置主题颜色 UIStyles.SetStyle(UIStyle.Gray); //设置默认导航条颜色 navTab.TabSelectedForeColor = Color.FromArgb(140, 140, 140); navTab.TabSelectedHighColor = Color.FromArgb(140, 140, 140); //设置默认导航条图标 tabHome.ImageIndex = 0; tabSetting.ImageIndex = 2; #endregion #region 切换tab事件 //navTab.SelectTab(0); #endregion #region 配置项默认值 comboPx.SelectedIndex = _Setting.PXIndex; comboMbps.SelectedIndex = _Setting.BitRateIndex; comboMaxFPS.SelectedIndex = _Setting.MaxFPSIndex; rbtnShortcuts.SelectedIndex = _Setting.ShortcutsIndex; switchDarkMode.Active = _Setting.DarkMode; tbxAddress.Text = _Setting.IPAddress; tbxPort.Text = _Setting.Port; updownHeight.Value = _Setting.WindowHeight; updownWidth.Value = _Setting.WindowWidth; Logger.enable = _Setting.UseLog; cbxUseWireless.Checked = _Setting.UseWireless; cbxUseLog.Checked = _Setting.UseLog; cbxControllerEnabled.Checked = _Setting.ControllerEnabled; cbxCloseScreen.Checked = _Setting.CloseScreen; cbxKeepAwake.Checked = _Setting.KeepAwake; cbxAllFPS.Checked = _Setting.AllFPS; cbxHideBorder.Checked = _Setting.HideBorder; cbxFullScreen.Checked = _Setting.FullScreen; cbxTopMost.Checked = _Setting.TopMost; cbxShowTouches.Checked = _Setting.ShowTouches; cbxReadOnly.Checked = _Setting.ReadOnly; #endregion }