示例#1
0
        /// <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];

                SQLiteHelper  sqliteH = new SQLiteHelper(Environment.CurrentDirectory + "\\settings\\GameList.sqlite");
                List <string> ls      = sqliteH.ExecuteReader_OneLine(string.Format("SELECT * FROM gamelist WHERE gameID = '{0}';", res[1]), 8);

                Common.HookCode     = ls[4];
                Common.RepeatMethod = ls[7];
                Common.srcLang      = ls[5];
                Common.desLang      = ls[6];

                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(ls[3]);

                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);
                }
            }
        }
示例#2
0
        /// <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);
                }
            }
        }
        /// <summary>
        /// 输出事件
        /// </summary>
        /// <param name="sendingProcess"></param>
        /// <param name="outLine"></param>
        void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
        {
            //Console.WriteLine(outLine.Data);
            Common.AddTextractorHistory(outLine.Data);

            string[] dealRes = DealTextratorOutput(outLine.Data);

            if (dealRes != null)
            {
                if (dealRes[1] != "Console" && dealRes[1] != "")
                {
                    //Hook入口选择窗口处理
                    if (OutputSettingsform != null && OutputSettingsform is TextractorFunSelectForm)
                    {
                        if (TextractorFun_Index_List.ContainsKey(dealRes[2] + dealRes[4]) == true)
                        {
                            TextractorFunSelectForm frm = (TextractorFunSelectForm)OutputSettingsform;
                            frm.TextractorFunDealItem(TextractorFun_Index_List[dealRes[2] + dealRes[4]], dealRes, true);
                        }
                        else
                        {
                            TextractorFun_Index_List.Add(dealRes[2] + dealRes[4], listViewIndex);
                            TextractorFunSelectForm frm = (TextractorFunSelectForm)OutputSettingsform;
                            frm.TextractorFunDealItem(listViewIndex, dealRes, false);
                            listViewIndex++;
                        }
                    }

                    //文本去重窗口处理
                    if (OutputSettingsform != null && OutputSettingsform is TextRepeatRepairForm)
                    {
                        TextRepeatRepairForm frm = (TextRepeatRepairForm)OutputSettingsform;
                        if (Common.HookCode != "" && dealRes[2] == Common.HookCode && dealRes[4] == Common.HookCodePlus)
                        {
                            frm.TextractorHookContent(dealRes);
                        }
                    }

                    //Hook入口重复确认窗口处理
                    if (OutputSettingsform != null && OutputSettingsform is TextractorFunReConfirmForm)
                    {
                        TextractorFunReConfirmForm frm = (TextractorFunReConfirmForm)OutputSettingsform;
                        if (Common.HookCode != "" && dealRes[2] == Common.HookCode)
                        {
                            if (TextractorFunPlus_Index_List.ContainsKey(dealRes[4]) == true)
                            {
                                frm.TextractorFunDealItem(TextractorFunPlus_Index_List[dealRes[4]], dealRes, true);
                            }
                            else
                            {
                                TextractorFunPlus_Index_List.Add(dealRes[4], listViewIndex_plus);
                                frm.TextractorFunDealItem(listViewIndex_plus, dealRes, false);
                                listViewIndex_plus++;
                            }
                        }
                    }

                    //游戏翻译窗口处理
                    //如果Common.HookCodePlus = "NoMulti"则说明没有多重处理,不用再对比HookCodePlus
                    if (GameTransForm != null)
                    {
                        if (Common.HookCode != "" && dealRes[2] == Common.HookCode && (Common.HookCodePlus == "NoMulti" || dealRes[4] == Common.HookCodePlus))
                        {
                            GameTransForm.TextractorHookContent(dealRes);
                        }
                    }
                }
            }
        }