コード例 #1
0
        /// <summary>
        /// 开始注入,会判断是否自动注入
        /// </summary>
        public async void StartHook()
        {
            if (HandleMode == 1)
            {
                await AttachProcess(GamePID);
            }
            else if (HandleMode == 2)
            {
                if (Convert.ToBoolean(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "Textractor", "AutoHook", "false")))
                {
                    //不进行智能注入
                    for (int i = 0; i < PossibleGameProcessList.Count; i++)
                    {
                        var item = PossibleGameProcessList.ElementAt(i);
                        await AttachProcess(item.Key.Id);

                        PossibleGameProcessList[item.Key] = true;
                    }
                }
                else
                {
                    await AttachProcess(MaxMemoryProcess.Id);
                }
            }
        }
コード例 #2
0
        private void TranslateFrmSettingsForm_Load(object sender, EventArgs e)
        {
            FontList = new List <string>();

            System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
            foreach (System.Drawing.FontFamily family in fonts.Families)
            {
                FontList.Add(family.Name);
            }

            FontsCombox.DropDownStyle = ComboBoxStyle.DropDownList;
            FontsCombox.DataSource    = FontList;

            SetPartList = new List <string>();
            SetPartList.Add("原文");
            SetPartList.Add("第一翻译源");
            SetPartList.Add("第二翻译源");

            PartCombox.DropDownStyle = ComboBoxStyle.DropDownList;
            PartCombox.DataSource    = SetPartList;


            lastPartChoose           = 0;
            PartCombox.SelectedIndex = 0;

            OpacityTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "opacity", "50"));

            FontsCombox.Text     = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextFont", "微软雅黑");
            TextSizeBox.Num      = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextsize", "12"));
            ColorRTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorR", "0"));
            ColorGTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorG", "0"));
            ColorBTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorB", "0"));
        }
コード例 #3
0
        Color secondTransTextColor;        //第二翻译源结果颜色

        /// <summary>
        /// UI初始化、翻译API初始化、如果是OCR模式则Hook鼠标点击事件
        /// </summary>
        private void InitUI()
        {
            srcTextLabel           = new Label();
            srcTextLabel.AutoSize  = false;
            srcTextLabel.Text      = "等待源文本";
            srcTextLabel.BackColor = TransparencyColor; //背景色透明
            srcTextLabel.TextAlign = ContentAlignment.TopLeft;

            firstTransTextLabel           = new Label();
            firstTransTextLabel.AutoSize  = false;
            firstTransTextLabel.Text      = "等待源文本";
            firstTransTextLabel.BackColor = TransparencyColor; //背景色透明
            firstTransTextLabel.TextAlign = ContentAlignment.TopLeft;

            secondTransTextLabel           = new Label();
            secondTransTextLabel.AutoSize  = false;
            secondTransTextLabel.Text      = "等待源文本";
            secondTransTextLabel.BackColor = TransparencyColor; //背景色透明
            secondTransTextLabel.TextAlign = ContentAlignment.TopLeft;

            LabelInit();
            this.Controls.Add(srcTextLabel);
            this.Controls.Add(firstTransTextLabel);
            this.Controls.Add(secondTransTextLabel);

            this.FormBorderStyle = FormBorderStyle.None;
            this.SizeChanged    += GameTranslateForm_SizeChanged;
            this.FormClosing    += GameTranslateForm_FormClosing;

            BaiduTranslator.BaiduTrans_Init();
            TencentTranslator.TencentTrans_Init();
            TencentOldTranslator.TencentOldTrans_Init();

            if (Common.TransMode == 2)
            {
                BaiduGeneralOCRBasic.BaiduGeneralOCRBasic_Init();

                //初始化钩子对象
                if (hook == null)
                {
                    hook = new GlobalMouseHook();
                    hook.OnMouseActivity += new MouseEventHandler(Hook_OnMouseActivity);
                }

                IsOCRingFlag = false;
                bool r = hook.Start();
                if (r == false)
                {
                    MessageBox.Show("安装钩子失败!");
                }
            }


            TextFontColorInit();

            firstTransAPI = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini",
                                                        "Translate_All", "FirstTranslator", "NoTranslate");
            secondTransAPI = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini",
                                                         "Translate_All", "SecondTranslator", "NoTranslate");
        }
コード例 #4
0
ファイル: Common.cs プロジェクト: miku-doc/MisakaTranslator
        public static Queue <string> TextractorOutPutHistory; //全局的Textractor的输出记录,用于查错


        /// <summary>
        /// 得到一个游戏的游戏ID,用于在GameListInfo.ini中对对应游戏进行个性化设置
        /// 如果游戏已经存在于GameList.txt,则直接返回ID,否则追加新游戏路径并返回新ID
        /// </summary>
        /// <param name="gamepath"></param>
        /// <returns></returns>
        public static int GetGameID(string gamepath)
        {
            if (File.Exists("GameList.txt") == false)
            {
                File.Create("GameList.txt").Close();
            }


            string[] res = File.ReadAllLines("GameList.txt");

            for (int i = 0; i < res.Length; i = i + 2)
            {
                if (res[i] == gamepath)
                {
                    return(int.Parse(res[i + 1]));
                }
            }

            FileStream   fs = new FileStream("GameList.txt", FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);

            int newid = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\GameListInfo.ini", "AllGame", "GameNum", "0")) + 1;

            IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\GameListInfo.ini", "AllGame", "GameNum", "" + newid);

            sw.WriteLine(gamepath);
            sw.WriteLine(newid);
            sw.Flush();
            sw.Close();
            fs.Close();

            return(newid);
        }
コード例 #5
0
        /// <summary>
        /// 句子重复处理
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string RepairFun_RemoveSentenceRepeat(string source)
        {
            if (source == "")
            {
                return("");
            }

            int findNum = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\TextRepeatRepair.ini", "RepairFun_RemoveSentenceRepeat", "FindCharNum", "4"));;

            char[] arr = source.ToCharArray();
            Array.Reverse(arr);
            string text = new string(arr);

            string cmp = "";

            for (int i = 1; i <= findNum; i++)
            {
                cmp = cmp + text[i];
            }

            int pos = text.IndexOf(cmp, findNum);

            if (pos == -1)
            {
                return("句子去重出错");
            }

            string t1 = text.Remove(pos, text.Length - pos);

            char[] arr1 = t1.ToCharArray();
            Array.Reverse(arr1);
            string ret = new string(arr1);

            return(ret);
        }
コード例 #6
0
        /*
         * 根据猜测得到的DLL函数 来源 https://github.com/Artikash/VNR-Core/blob/6ed038bda9dcd35696040bd45d31afa6a30e8978/py/libs/jbeijing/jbjct.py
         * int __cdecl JC_Transfer_Unicode(
         *  HWND hwnd,
         *  UINT fromCodePage,
         *  UINT toCodePage,
         *  int unknown,
         *  int unknown,
         *  LPCWSTR from,
         *  LPWSTR to,
         *  int &toCapacity,
         *  LPWSTR buffer,
         *  int &bufferCapacity)
         */

        /// <summary>
        /// 调用JBeijing离线翻译 日语转中文
        /// </summary>
        /// <param name="sourceString">源语句</param>
        /// <param name="issimplified">为真则翻译结果为简体中文</param>
        /// <returns></returns>
        public static string Translate_JapanesetoChinese(string sourceString, bool issimplified = true)
        {
            string JBeijingTranslatorPath = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "JBeijing", "JBJCTDllPath");

            if (JBeijingTranslatorPath == "")
            {
                return(null);
            }

            /*
             * CP932   SAP Shift-JIS
             * CP950   SAP 繁体中文
             * CP936   SAP 简体中文
             */
            int desCP;

            if (issimplified == true)
            {
                desCP = 936;
            }
            else
            {
                desCP = 950;
            }

            string path = Environment.CurrentDirectory;

            Environment.CurrentDirectory = JBeijingTranslatorPath;

            IntPtr jp = Marshal.StringToHGlobalUni(sourceString);

            IntPtr jp2 = Marshal.AllocHGlobal(3000);
            IntPtr jp3 = Marshal.AllocHGlobal(3000);

            int p1 = 1500;
            int p2 = 1500;

            try
            {
                int a = JC_Transfer_Unicode(0, 932, (uint)desCP, 1, 1, jp, jp2, ref p1, jp3, ref p2);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            Environment.CurrentDirectory = path;

            string ret = Marshal.PtrToStringAuto(jp2);

            Marshal.FreeHGlobal(jp);
            Marshal.FreeHGlobal(jp2);
            Marshal.FreeHGlobal(jp3);

            return(ret);
        }
コード例 #7
0
        /// <summary>
        /// 处理单字重复
        /// 可以设置重复次数更准确的进行去重
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string RepairFun_RemoveSingleWordRepeat(string source)
        {
            if (source == "")
            {
                return("");
            }

            int    repeatTimes = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\TextRepeatRepair.ini", "RepairFun_RemoveSingleWordRepeat", "RepeatTimes", "0"));
            int    flag        = 0;
            string ret         = "";

            if (repeatTimes <= 2)
            {
                //未设置固定重复次数时,逢重复就删
                for (int i = 1; i < source.Length; i++)
                {
                    if (source[i] != source[flag])
                    {
                        ret += source[flag];
                        flag = i;
                    }
                }
                ret += source[source.Length - 1];
            }
            else
            {
                //设置了固定重复次数且重复次数大于等于3的情况

                int r = 0;
                for (int i = 1; i < source.Length; i++)
                {
                    if (source[i] == source[flag])
                    {
                        r++;
                        if (r > repeatTimes)
                        {
                            ret += source[i];
                            r    = 0;
                        }
                    }
                    else
                    {
                        ret += source[flag];
                        flag = i;
                        r    = 0;
                    }
                }
                ret += source[source.Length - 1];
            }

            return(ret);
        }
コード例 #8
0
        public static bool BaiduGeneralOCRBasic_Init()
        {
            APIKey    = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduOCR", "APIKEY", "");
            secretKey = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduOCR", "SecretKey", "");
            string            ret  = BaiduGetToken(APIKey, secretKey);
            BaiduTokenOutInfo btoi = JsonConvert.DeserializeObject <BaiduTokenOutInfo>(ret);

            if (btoi.access_token != null)
            {
                accessToken = btoi.access_token;
                return(true);
            }
            return(false);
        }
コード例 #9
0
ファイル: MainForm.cs プロジェクト: miku-doc/MisakaTranslator
        /// <summary>
        /// 自动开始游戏按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void AutoStartBtn_BtnClick(object sender, EventArgs e)
        {
            List <int> res = GetGameListHasProcessGame_PID_ID();

            if (res == null)
            {
                MessageBox.Show("未找到任何正在运行中的已保存游戏", "提示");
            }
            else
            {
                Common.TransMode    = 1;
                Common.GameID       = res[1];
                Common.HookCode     = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\GameListInfo.ini", "Game" + Common.GameID, "hookCode");
                Common.RepeatMethod = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\GameListInfo.ini", "Game" + Common.GameID, "RepeatMethod");
                Common.srcLang      = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\GameListInfo.ini", "Game" + Common.GameID, "srcLang");
                Common.desLang      = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\GameListInfo.ini", "Game" + Common.GameID, "dstLang");

                List <Process> proList = FindSameNameProcess(res[0]);
                if (proList.Count == 1)
                {
                    Common.TextractorHandle = new TextHookHandle(proList[0].Id);
                }
                else
                {
                    Common.TextractorHandle = new TextHookHandle(proList);
                }

                Common.TextractorHandle.Init();

                bool isFunReSelect = Convert.ToBoolean(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\GameListInfo.ini", "Game" + Common.GameID, "isHookFunMulti", "False"));

                if (isFunReSelect == true)
                {
                    TextractorFunReConfirmForm tfcf = new TextractorFunReConfirmForm();
                    Common.TextractorHandle.StartHook();
                    Common.TextractorHandle.SetSettingsOutPutform(tfcf);
                    tfcf.Show();
                }
                else
                {
                    Common.HookCodePlus = "NoMulti";//提示无重复码。直接进游戏
                    GameTranslateForm gtf = new GameTranslateForm();
                    Common.TextractorHandle.StartHook();
                    Common.TextractorHandle.SetGameTransForm(gtf);
                    GameTranslateBackForm.Show(gtf);
                }
            }
        }
コード例 #10
0
        public GameTranslateForm()
        {
            string color = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "BackColor", "Noset");

            if (color == "Noset")
            {
                TransparencyColor = Color.AliceBlue;
            }
            else
            {
                TransparencyColor = Color.FromArgb(int.Parse(color));
            }

            InitUI();
            this.Load += GameTranslateForm_Load;
        }
コード例 #11
0
        /// <summary>
        /// 加载窗口时初始化所有标签的字体颜色信息,从INI文件读取
        /// </summary>
        public void TextFontColorInit()
        {
            srcTextFont = new Font(
                IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextFont", "微软雅黑"),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextsize", "12"))
                );

            firstTransTextFont = new Font(
                IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextFont", "微软雅黑"),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextsize", "12"))
                );

            secondTransTextFont = new Font(
                IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextFont", "微软雅黑"),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextsize", "12"))
                );


            srcTextColor = Color.FromArgb(
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorR", "0")),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorG", "0")),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorB", "0"))
                );

            firstTransTextColor = Color.FromArgb(
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorR", "0")),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorG", "0")),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorB", "0"))
                );

            secondTransTextColor = Color.FromArgb(
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorR", "0")),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorG", "0")),
                int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorB", "0"))
                );


            srcTextLabel.Font      = srcTextFont;
            srcTextLabel.ForeColor = srcTextColor;

            firstTransTextLabel.Font      = firstTransTextFont;
            firstTransTextLabel.ForeColor = firstTransTextColor;

            secondTransTextLabel.Font      = secondTransTextFont;
            secondTransTextLabel.ForeColor = secondTransTextColor;
        }
コード例 #12
0
        private void ApplicationSettingsForm_Load(object sender, EventArgs e)
        {
            MenuInit();

            BDOCRapikeyTextBox.InputText    = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduOCR", "APIKEY", "");
            BDOCRsecretkeyTextBox.InputText = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduOCR", "SecretKey", "");

            BDappidTextBox.InputText = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduTranslator", "appID", "");
            BDKeyTextBox.InputText   = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduTranslator", "secretKey", "");

            TXappidTextBox.InputText = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentTranslator", "appID", "");
            TXKeyTextBox.InputText   = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentTranslator", "appKey", "");

            TXOappidTextBox.InputText = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentOldTranslator", "SecretId", "");
            TXOKeyTextBox.InputText   = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentOldTranslator", "SecretKey", "");

            JBjPathBox.InputText = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "JBeijing", "JBJCTDllPath");

            AutoHookCheckBox.Checked = Convert.ToBoolean(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "Textractor", "AutoHook", "False"));

            EachRowTransCheckBox.Checked = Convert.ToBoolean(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "Translate_All", "EachRowTrans", "True"));

            List <KeyValuePair <string, string> > transApiSrc = GetAllTranslateAPI();

            FirstTransCombox.Source    = transApiSrc;
            SecondTransCombox.Source   = transApiSrc;
            FirstTransCombox.BoxStyle  = ComboBoxStyle.DropDownList;
            SecondTransCombox.BoxStyle = ComboBoxStyle.DropDownList;

            string first  = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "Translate_All", "FirstTranslator", "NoTranslate");
            string second = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "Translate_All", "SecondTranslator", "NoTranslate");

            for (int i = 0; i < transApiSrc.Count; i++)
            {
                if (transApiSrc[i].Key == first)
                {
                    FirstTransCombox.SelectedIndex = i;
                }

                if (transApiSrc[i].Key == second)
                {
                    SecondTransCombox.SelectedIndex = i;
                }
            }
        }
コード例 #13
0
        public static string appKey; //腾讯翻译君API 密钥

        public static void TencentTrans_Init()
        {
            appId  = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentTranslator", "appID");
            appKey = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentTranslator", "appKey");
        }
コード例 #14
0
        public static string secretKey; //百度翻译API 的密钥

        public static void BaiduTrans_Init()
        {
            appId     = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduTranslator", "appID");
            secretKey = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "BaiduTranslator", "secretKey");
        }
コード例 #15
0
        public static string SecretKey; //腾讯旧版API SecretKey

        public static void TencentOldTrans_Init()
        {
            SecretId  = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentOldTranslator", "SecretId");
            SecretKey = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TencentOldTranslator", "SecretKey");
        }
コード例 #16
0
        private void PartCombox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (openflag != true)
            {
                if (lastPartChoose == 0)
                {
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorR", "" + ColorRTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorG", "" + ColorGTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorB", "" + ColorBTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextFont", FontsCombox.Text);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextsize", "" + TextSizeBox.Num);
                }
                else if (lastPartChoose == 1)
                {
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorR", "" + ColorRTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorG", "" + ColorGTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorB", "" + ColorBTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextFont", FontsCombox.Text);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextsize", "" + TextSizeBox.Num);
                }
                else if (lastPartChoose == 2)
                {
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorR", "" + ColorRTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorG", "" + ColorGTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorB", "" + ColorBTrackBar.Value);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextFont", FontsCombox.Text);
                    IniFileHelper.WriteValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextsize", "" + TextSizeBox.Num);
                }

                if (PartCombox.SelectedIndex == 0)
                {
                    ColorRTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorR", "0"));
                    ColorGTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorG", "0"));
                    ColorBTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextColorB", "0"));
                    FontsCombox.Text     = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextFont", "微软雅黑");
                    TextSizeBox.Num      = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "srcTextsize", "12"));
                }
                else if (PartCombox.SelectedIndex == 1)
                {
                    ColorRTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorR", "0"));
                    ColorGTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorG", "0"));
                    ColorBTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextColorB", "0"));
                    FontsCombox.Text     = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextFont", "微软雅黑");
                    TextSizeBox.Num      = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "firstTransTextsize", "12"));
                }
                else if (PartCombox.SelectedIndex == 2)
                {
                    ColorRTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorR", "0"));
                    ColorGTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorG", "0"));
                    ColorBTrackBar.Value = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextColorB", "0"));
                    FontsCombox.Text     = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextFont", "微软雅黑");
                    TextSizeBox.Num      = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "secondTransTextsize", "12"));
                }

                lastPartChoose = PartCombox.SelectedIndex;
            }
            else
            {
                openflag = false;
            }
        }
コード例 #17
0
        /// <summary>
        /// 背景窗口的静态方法,用于显示一个背景窗口
        /// </summary>
        /// <param name="frmTop">与其叠加的前景窗口</param>
        public static void Show(GameTranslateForm frmTop)
        {
            //弹出菜单设置
            MaterialSkin.Controls.MaterialContextMenuStrip FunMenuStrip = new MaterialSkin.Controls.MaterialContextMenuStrip();
            ToolStripMenuItem LockItem           = new ToolStripMenuItem();
            ToolStripMenuItem SettingsItem       = new ToolStripMenuItem();
            ToolStripMenuItem ReNewOCRItem       = new ToolStripMenuItem();
            ToolStripMenuItem HistoryTextItem    = new ToolStripMenuItem();
            ToolStripMenuItem ExitTransFrmItem   = new ToolStripMenuItem();
            ToolStripMenuItem ShowsrcTextFrmItem = new ToolStripMenuItem();

            FunMenuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
            FunMenuStrip.Depth     = 0;
            FunMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
                LockItem,
                SettingsItem,
                ReNewOCRItem,
                HistoryTextItem,
                ShowsrcTextFrmItem,
                ExitTransFrmItem
            });
            FunMenuStrip.MouseState      = MaterialSkin.MouseState.HOVER;
            FunMenuStrip.ShowImageMargin = false;
            FunMenuStrip.Size            = new System.Drawing.Size(156, 136);
            //
            // 加锁解锁
            //
            LockItem.Size   = new System.Drawing.Size(155, 22);
            LockItem.Text   = "加锁/解锁";
            LockItem.Click += LockItem_Click;
            //
            // 设置
            //
            SettingsItem.Size   = new System.Drawing.Size(155, 22);
            SettingsItem.Text   = "设置";
            SettingsItem.Click += SettingsItem_Click;
            //
            // 刷新OCRToolStripMenuItem
            //
            ReNewOCRItem.Size   = new System.Drawing.Size(155, 22);
            ReNewOCRItem.Text   = "刷新OCR";
            ReNewOCRItem.Click += ReNewOCRItem_Click;
            //
            // 历史文本ToolStripMenuItem
            //
            HistoryTextItem.Size   = new System.Drawing.Size(155, 22);
            HistoryTextItem.Text   = "历史文本";
            HistoryTextItem.Click += HistoryTextItem_Click;
            //
            // 退出翻译ToolStripMenuItem
            //
            ExitTransFrmItem.Size   = new System.Drawing.Size(155, 22);
            ExitTransFrmItem.Text   = "退出翻译";
            ExitTransFrmItem.Click += ExitTransFrmItem_Click;
            //
            // 显示原文ToolStripMenuItem
            //
            ShowsrcTextFrmItem.Size   = new System.Drawing.Size(155, 22);
            ShowsrcTextFrmItem.Text   = "显示/隐藏原文";
            ShowsrcTextFrmItem.Click += ShowSrcTextItem_Click;


            top = frmTop;
            // 背景窗体设置
            GameTranslateBackForm frmBack = new GameTranslateBackForm();

            top.SetBackForm(frmBack);
            back = frmBack;

            double frmBackOpacity = (double)(double.Parse(
                                                 IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings",
                                                                             "opacity", "50")) / 100);

            frmBack.Text            = "MisakaTranslator游戏翻译窗口";
            frmBack.FormBorderStyle = FormBorderStyle.None;
            frmBack.MaximizeBox     = false;

            int LocX  = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "LocX", "-1"));
            int LocY  = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "LocY", "-1"));
            int SizeW = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "SizeW", "-1"));
            int SizeH = int.Parse(IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "SizeH", "-1"));

            if (LocX == -1 && LocY == -1)
            {
                frmBack.StartPosition = FormStartPosition.CenterScreen;
            }
            else
            {
                frmBack.Location      = new Point(LocX, LocY);
                frmBack.StartPosition = FormStartPosition.Manual;
                frmBack.Width         = SizeW;
                frmBack.Height        = SizeH;
            }

            frmBack.ShowIcon      = false;
            frmBack.ShowInTaskbar = false;
            frmBack.Opacity       = frmBackOpacity;
            string color = IniFileHelper.ReadItemValue(Environment.CurrentDirectory + "\\settings.ini", "TranslateFormSettings", "BackColor", "Noset");

            if (color == "Noset")
            {
                frmBack.BackColor = Color.LightGray;
            }
            else
            {
                frmBack.BackColor = Color.FromArgb(int.Parse(color));
            }

            frmBack.ContextMenuStrip = FunMenuStrip;

            // 顶部窗体设置
            frmTop.Owner = frmBack;

            frmBack.SizeChanged      += GameTranslateBackForm_SizeLocationChanged;
            frmBack.LocationChanged  += GameTranslateBackForm_SizeLocationChanged;
            frmBack.MouseDoubleClick += GameTranslateBackForm_DoubleClick;
            frmBack.FormClosing      += GameTranslateBackForm_FormClosing;

            frmBack.TopMost = true;
            frmTop.TopMost  = true;

            isLock        = true;
            isShowSrcText = true;

            // 显示窗体
            frmTop.Show();
            frmBack.Show();
        }