Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        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
        }
Ejemplo n.º 3
0
        /// <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
        }