using AllBase; using AllBase.Helper; using CefSharp; using CefSharp.WinForms; using TemuKJD.Helper; using TemuKJD.KJDForms.BaseForms; using NaiBa.CefHelper; using NaiBa.Util; using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace TemuKJD.DashBoardForms { public partial class DashBoardForm : Form { public enum InviteTypeEnum { Invite, Chat, } public class DaRenSettings { /// /// 要采集的总页码数量 /// public int TotalPage { get; set; } = 10; /// /// 发送邀约操作操作间隔时间 /// public int Interval { get; set; } = 10; /// /// 翻页操作间隔时间 /// public int PageInterval { get; set; } = 10; public string ChatWords { get; set; } = "老板您好!"; public InviteTypeEnum InviteType { get; set; } = InviteTypeEnum.Invite; } private Point mouseOffset; // 记录鼠标指针的坐标 private bool isMouseDown; // 记录鼠标左键是否按下 private ChromiumWebBrowser cefWebBrowser = null; private ChromiumWebBrowser cefWebBrowserDetail = null; private DaRenSettings drSetting; private bool IsOpenDaRenPage = false; public DashBoardForm() { InitializeComponent(); this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); } private void DashBoardForm_Load(object sender, EventArgs e) { if (BaseClass.Ico != null) this.Icon = BaseClass.Ico; this.WindowState = FormWindowState.Maximized; max.Style.BackgroundImage = Properties.Resources.normal; max.StyleMouseOver.BackgroundImage = Properties.Resources.normal_hover; this.Padding = new Padding(2); this.drSetting = NaiBa.Util.Helper.ConfigHelper.LoadConfig("daren_settings"); if (drSetting == null) drSetting = new DaRenSettings(); this.txtChatWords.Text = drSetting.ChatWords; this.txtInterval.Text = drSetting.Interval.ToString(); this.txtTotalPage.Text = drSetting.TotalPage.ToString(); this.rbInvite.CheckedChanged -= rbInvite_CheckedChanged; this.rbChat.CheckedChanged -= rbChat_CheckedChanged; if (drSetting.InviteType == InviteTypeEnum.Invite) this.rbInvite.Checked = true; else this.rbChat.Checked = true; this.rbInvite.CheckedChanged += rbInvite_CheckedChanged; this.rbChat.CheckedChanged += rbChat_CheckedChanged; rbInvite.Checked = true; for (int i = 0; i < GlobalConfig.ShopLoginList.Count; i++) { var shop = GlobalConfig.ShopLoginList[i]; this.cmbShop.Items.Add(shop.ShopAccount); } this.cmbShop.SelectedIndex = 0; string cookie = ""; if (GlobalConfig.ShopLoginList.Count > 0) { cookie = GlobalConfig.ShopLoginList[0].Cookies; } InitCef(cookie); } private void close_Click(object sender, EventArgs e) { { if (BaseMsgForm.ShowConfirm("是否关闭客户端?", "系统提示", FormLevel.SMALL).DialogResult.Equals(DialogResult.Cancel)) return; else Process.GetCurrentProcess().Kill(); } } private void max_Click(object sender, EventArgs e) { if (WindowState.Equals(FormWindowState.Normal)) { WindowState = FormWindowState.Maximized; max.Style.BackgroundImage = Properties.Resources.normal; max.StyleMouseOver.BackgroundImage = Properties.Resources.normal_hover; this.Padding = new Padding(0); } else if (WindowState.Equals(FormWindowState.Maximized)) { WindowState = FormWindowState.Normal; max.Style.BackgroundImage = Properties.Resources.max; max.StyleMouseOver.BackgroundImage = Properties.Resources.max_hover; this.Padding = new Padding(1); } } private void min_Click(object sender, EventArgs e) { WindowState = FormWindowState.Minimized; ShowInTaskbar = true; } private void pnlBanner_MouseDoubleClick(object sender, MouseEventArgs e) { max_Click(null, null); } private void pnlBanner_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { mouseOffset = new Point(-e.X, -e.Y); isMouseDown = true; } } private void pnlBanner_MouseMove(object sender, MouseEventArgs e) { if (isMouseDown) { //获取鼠标的位置 Point mousePos = MousePosition; mousePos.Offset(mouseOffset.X, mouseOffset.Y); Location = mousePos; } } private void pnlBanner_MouseUp(object sender, MouseEventArgs e) { isMouseDown = false; } void InitCef(string cookie = "") { string mainUrl = "https://fxg.jinritemai.com/ffa/mshop/homepage/index"; //mainUrl = "https://buyin.jinritemai.com/mpa/account/roles-select?target_url=/dashboard/servicehall/daren-square"; string darenUrl = "https://buyin.jinritemai.com/dashboard/servicehall/daren-square"; // GlobalConfig.DouUserCookies; if (cefWebBrowser == null) { cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", true); var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow); lifeSapnHandler.OnPop += LifeSapnHandler_OnPop; cefWebBrowser.LifeSpanHandler = lifeSapnHandler; cefWebBrowser.KeyboardHandler = new NaiBa.CefHelper.Handler.KeyboardHandler(); cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd; cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged; cefWebBrowser.Dock = DockStyle.Fill; //var t = CEFBrowser.SetCookieAsync("jinritemai.com", cookie, cefWebBrowser.RequestContext.GetCookieManager(null)); var cookieManager = Cef.GetGlobalCookieManager(); //cookieManager.SetStoragePath(Environment.CurrentDirectory, true); var t = CEFBrowser.SetCookieAsync("jinritemai.com", cookie, cookieManager); splitContainer1.Panel2.Controls.Add(cefWebBrowser); Task.Run(() => { while (true) { Thread.Sleep(15000); //var jsCode = "window.localStorage;"; //var task = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsCode, null); //task.Wait(5000); //var result = task.Result.Result; //var dic = result as IDictionary; //GlobalConfig.dicLocalStorage = dic; //StartUp.SaveDouLocalStorage(); } }); Task.Run(() => { do { Thread.Sleep(10); } while (cefWebBrowser == null || !cefWebBrowser.IsBrowserInitialized || cefWebBrowser.IsLoading); var jsCode = ""; if (GlobalConfig.dicLocalStorage != null) { foreach (var key in GlobalConfig.dicLocalStorage.Keys) { if (GlobalConfig.dicLocalStorage[key] is string) { jsCode += "localStorage.setItem('" + key + "', '" + GlobalConfig.dicLocalStorage[key] + "');\r\n"; } } var ta0 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); ta0.Wait(5000); } cefWebBrowser.Load("https://fxg.jinritemai.com/ffa/mshop/homepage/index"); do { Thread.Sleep(1000); } while (cefWebBrowser.IsLoading); Thread.Sleep(AllBase.Randomx.GetId(5000, 6000)); var jsStr = clickJsElementStr + "getElement('精选联盟').click();"; var ta2 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr); ta2.Wait(8000); do { Thread.Sleep(1000); } while (cefWebBrowser.IsLoading); Thread.Sleep(AllBase.Randomx.GetId(2000, 3000)); retry: jsStr = "window.location.href='" + darenUrl + "';"; var ta3 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr); ta3.Wait(8000); do { Thread.Sleep(1000); } while (cefWebBrowser.IsLoading); Thread.Sleep(AllBase.Randomx.GetId(4000, 5000)); jsStr = clickJsElementStr + "function clickBtn(txt) {\r\n" + " if (document.body.innerHTML.indexOf('加载失败') >= 0)\r\n" + " return '加载失败';\r\n" + " return 'ok';\r\n" + "}\r\n" + "clickBtn('添加商品');\r\n"; var ta4 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr); ta4.Wait(); if (ta4.Result?.Result?.ToString() == "加载失败" || ta4.Result?.Result?.ToString() == null) goto retry; var sleepTime = 2500; while (true) { try { Thread.Sleep(sleepTime); var jsStr1 = "function ClosePopWindow(txt) {\r\n" + " var result = 'no_pop'\r\n" + " var item = document.getElementsByClassName(txt);\r\n" + " if (document.body.innerHTML.indexOf('重要消息') < 0) return result;\r\n" + " for(i = 0; i < item.length; i++) {\r\n" + " item[i].click();\r\n" + " result = 'success'\r\n" + " }\r\n" + " return result;\r\n" + "}\r\n" + "ClosePopWindow('anticon-close-circle');\r\n" + "ClosePopWindow('ant-modal-close-x');\r\n"; var jsStr2 = "function clickPopWindow(txt) {\r\n" + "var child = document.body.firstElementChild;\r\n" + "var element1 = null;\r\n" + " while (child) {\r\n" + " if (child.innerHTML.indexOf(txt) >= 0) {\r\n" + " element1 = child;\r\n" + " if (child.firstElementChild) {\r\n" + " child = child.firstElementChild; continue;\r\n" + " } else break;\r\n" + " }\r\n" + " child = child.nextElementSibling;\r\n" + " }\r\n" + " if (element1 && element1.innerHTML === txt) {\r\n" + " element1.click(); return 'success';\r\n" + " } else return 'no_pop';\r\n" + "}\r\n" //+ "clickPopWindow('我知道了');\r\n" + "clickPopWindow('知道了');\r\n" + "clickPopWindow('完 成');\r\n" + "clickPopWindow('下一个');\r\n"; var success1 = false; if (cefWebBrowser.IsBrowserInitialized && !cefWebBrowser.IsLoading) { var t1 = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr1); t1.Wait(1000); var t2 = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr2); t2.Wait(1000); if (t1.Result?.Result?.ToString() == "success" || t2.Result?.Result?.ToString() == "success") success1 = true; else success1 = false; } var success2 = false; if (cefWebBrowserDetail != null && cefWebBrowserDetail.IsBrowserInitialized && !cefWebBrowserDetail.IsLoading) { var t1 = cefWebBrowserDetail.GetMainFrame().EvaluateScriptAsync(jsStr1); t1.Wait(1000); var t2 = cefWebBrowserDetail.GetMainFrame().EvaluateScriptAsync(jsStr2); t2.Wait(1000); if (t1.Result?.Result?.ToString() == "success" || t2.Result?.Result?.ToString() == "success") success2 = true; else success2 = false; } if (success1 || success2) { sleepTime = Randomx.GetId(550, 650); } else sleepTime = Randomx.GetId(1500, 2000); } catch (Exception ex) { } } }); } else { //CEFBrowser.DeleteCookie(cefWebBrowser.RequestContext.GetCookieManager(null)); CEFBrowser.DeleteCookie(Cef.GetGlobalCookieManager()); //var t = CEFBrowser.SetCookieAsync("jinritemai.com", cookie, cefWebBrowser.RequestContext.GetCookieManager(null)); var t = CEFBrowser.SetCookieAsync("jinritemai.com", cookie, Cef.GetGlobalCookieManager()); t.Wait(5000); cefWebBrowser.Load(mainUrl); } } private void LifeSapnHandler_OnPop(object sender, PopData e) { if (e.Url == "https://fxg.jinritemai.com/alliance/common/redirectBuyin?target_url=%2Fdashboard") { cefWebBrowser.Load(e.Url); return; } string cookie = GlobalConfig.DouUserCookies; if (cefWebBrowserDetail == null) { //cefWebBrowserDetail = CEFBrowser.CreateChromiumWebBrowser(e.Url, false); cefWebBrowserDetail = CEFBrowser.CreateChromiumWebBrowser(e.Url); var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow); lifeSapnHandler.OnPop += LifeSapnHandler_OnPop; cefWebBrowserDetail.LifeSpanHandler = lifeSapnHandler; cefWebBrowserDetail.KeyboardHandler = new NaiBa.CefHelper.Handler.KeyboardHandler(); cefWebBrowserDetail.FrameLoadEnd += CefWebBrowser_FrameLoadEnd; cefWebBrowserDetail.AddressChanged += CefWebBrowser_AddressChanged; cefWebBrowserDetail.Dock = DockStyle.Fill; //var t = CEFBrowser.SetCookieAsync("jinritemai.com", cookie, cefWebBrowserDetail.RequestContext.GetCookieManager(null)); //var t = CEFBrowser.SetCookieAsync("jinritemai.com", cookie, Cef.GetGlobalCookieManager()); Task.Run(() => { while (true) { Thread.Sleep(15000); //var jsCode = "window.localStorage;"; //var task = cefWebBrowserDetail.GetMainFrame().EvaluateScriptAsync(jsCode, null); //task.Wait(5000); //var result = task.Result.Result; //var dic = result as IDictionary; //GlobalConfig.dicLocalDetailStorage = dic; //StartUp.SaveDouLocalDetailStorage(); } }); Invoke(new Action(() => { splitContainer1.Panel2.Controls.Add(cefWebBrowserDetail); btnDetailForm_Click(null, null); pnlDetailForm.Visible = true; })); } else { cefWebBrowserDetail.Load(e.Url); Invoke(new Action(() => { btnDetailForm_Click(null, null); })); } Task.Run(() => { for (int i = 0; i < 1000 && (cefWebBrowserDetail.IsBrowserInitialized == false || cefWebBrowserDetail.IsLoading); i++) { Thread.Sleep(10); } var jsCode = ""; if (GlobalConfig.dicLocalDetailStorage != null) { foreach (var key in GlobalConfig.dicLocalDetailStorage.Keys) { if (GlobalConfig.dicLocalDetailStorage[key] is string) { jsCode += "localStorage.setItem('" + key + "', '" + GlobalConfig.dicLocalDetailStorage[key] + "');\r\n"; } } cefWebBrowserDetail.GetBrowser().MainFrame.ExecuteJavaScriptAsync(jsCode); } // 达人邀约 if (drSetting.InviteType == InviteTypeEnum.Invite) { if (IsOpenDaRenPage) { while (cefWebBrowserDetail.IsLoading) Thread.Sleep(Randomx.GetId(500, 800)); retry1: Thread.Sleep(Randomx.GetId(500, 1000)); jsCode = "function jsFunc1() {" + " if (document.body.innerHTML.indexOf('>待回复') > 0 || document.body.innerHTML.indexOf('>已同意') > 0) " + " return 'had';" + " if (document.getElementsByClassName('contact-btn-text text4').length > 0) {" + " document.getElementsByClassName('contact-btn-text text4')[0].click(); " + " return 'ok';" + " }" + " return document.body.innerHTML.indexOf('加载失败,请稍后重试') >= 0 ? 'error' : 'noBtn'; " + "} " + "jsFunc1();"; var t1 = cefWebBrowserDetail.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); t1.Wait(2000); if (t1.Result?.Result?.ToString() == "had") { IsOpenDaRenPage = false; return; } else if (t1.Result?.Result?.ToString() != "ok") { Thread.Sleep(Randomx.GetId(800, 1500)); if (t1.Result?.Result?.ToString() == null || t1.Result?.Result?.ToString() == "error") { cefWebBrowserDetail.Reload(); } goto retry1; } Thread.Sleep(Randomx.GetId(500, 800)); } if (IsOpenDaRenPage) { Thread.Sleep(Randomx.GetId(500, 800)); jsCode = "function jsFx() {var btns = document.getElementsByClassName('ant-btn ant-btn-primary');" + " for (i = 0; i < btns.length; i++) " + " {" + " if (btns[i].innerHTML.indexOf('我知道了') > 0)" + " {" + " btns[i].click();" + " }" + " }" + "} jsFx();"; var tx = cefWebBrowserDetail.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); tx.Wait(2000); Thread.Sleep(Randomx.GetId(500, 800)); retry2: Thread.Sleep(Randomx.GetId(1200, 2400)); jsCode = "function jsFunc2() { document.getElementsByClassName('text4 add-product-last-operate')[0].click(); return 'ok'} jsFunc2();"; var t2 = cefWebBrowserDetail.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); t2.Wait(2000); if (t2.Result?.Result?.ToString() != "ok") { Thread.Sleep(Randomx.GetId(300, 500)); goto retry2; } Thread.Sleep(Randomx.GetId(500, 800)); } if (IsOpenDaRenPage) { Thread.Sleep(Randomx.GetId(500, 800)); jsCode = "function jsFunc3() {" + " var btns = document.getElementsByClassName('auxo-btn auxo-btn-primary');" + " for (i = 0; i < btns.length; i++) " + " {" + " if (btns[i].innerHTML.indexOf('发送邀约') > 0)" + " {" + " btns[i].click(); return 'ok';" + " }" + " }" + "} " + "jsFunc3();"; var t3 = cefWebBrowserDetail.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); t3.Wait(2000); Invoke(new Action(() => { this.txtSuccessCount.Text = (Convert.ToInt32(this.txtSuccessCount.Text) + 1).ToString(); })); IsOpenDaRenPage = false; } } // 在线沟通 else { // 点击沟通按钮 if (IsOpenDaRenPage) { chatRetry: while (cefWebBrowserDetail.IsLoading) Thread.Sleep(Randomx.GetId(500, 1000)); jsCode = "function jsFunc1() { " + " if (document.body.innerHTML.indexOf('>待回复') > 0 || document.body.innerHTML.indexOf('>已同意') > 0) {" + " return 'had';" + " }" + " var btns = document.getElementsByClassName('contact-btn-text text4');" + " for (i = 0; i < btns.length; i++) {" + " if (btns[i].innerHTML.indexOf('在线沟通') >= 0) {" + " btns[i].click(); return 'ok';" + " }" + " }" + " return document.body.innerHTML.indexOf('加载失败,请稍后重试') >= 0 ? 'error' : 'noBtn'; " + "}" + "jsFunc1();"; var t1 = cefWebBrowserDetail.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); t1.Wait(2000); if (t1.Result?.Result?.ToString() == "had") { IsOpenDaRenPage = false; return; } else if (t1.Result?.Result?.ToString() != "ok") { Thread.Sleep(Randomx.GetId(800, 1500)); if (t1.Result?.Result?.ToString() == "error") { cefWebBrowserDetail.Reload(); } goto chatRetry; } Thread.Sleep(Randomx.GetId(500, 800)); } // 点击沟通对话框 if (IsOpenDaRenPage) { chatRetry: while (cefWebBrowserDetail.IsLoading) Thread.Sleep(Randomx.GetId(500, 1000)); Thread.Sleep(2500); jsCode = "function jsFuncChat() {" + " if (document.getElementsByClassName('im-textarea text-area')[0]) {" + " var txt1 = document.getElementsByClassName('im-textarea text-area')[0];" + " txt1.focus(); txt1.click(); txt1.innerHTML = '" + drSetting.ChatWords + " ';" + " return 'ok';" + " }" + " return 'noBtn'" + "}" + "jsFuncChat();"; var t1 = cefWebBrowserDetail.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); t1.Wait(2000); if (t1.Result?.Result?.ToString() != "ok") { Thread.Sleep(Randomx.GetId(300, 500)); if (t1.Result?.Result?.ToString() == null || t1.Result?.Result?.ToString() == "error") { //cefWebBrowserDetail.Reload(); } goto chatRetry; } Thread.Sleep(Randomx.GetId(500, 800)); chatSendRetry: var host = cefWebBrowserDetail.GetBrowser().GetHost(); host.SendKeyEvent(new CefSharp.KeyEvent() { WindowsKeyCode = 8, Type = KeyEventType.RawKeyDown, Modifiers = CefEventFlags.None }); Thread.Sleep(250 + new Random(DateTime.Now.Millisecond).Next(250)); while (cefWebBrowserDetail.IsLoading) Thread.Sleep(Randomx.GetId(500, 1000)); while (true) { break; } Thread.Sleep(2500); jsCode = "function jsFuncChatSend() { " + " document.getElementsByClassName('send-button')[0].click();" + " return 'ok';" + "}" + "jsFuncChatSend();"; var t2 = cefWebBrowserDetail.GetBrowser().MainFrame.EvaluateScriptAsync(jsCode); t2.Wait(2000); if (t2.Result?.Result?.ToString() != "ok") { Thread.Sleep(Randomx.GetId(300, 500)); if (t2.Result?.Result?.ToString() == null || t2.Result?.Result?.ToString() == "error") { //cefWebBrowserDetail.Reload(); } goto chatSendRetry; } Invoke(new Action(() => { this.txtSuccessCount.Text = (Convert.ToInt32(this.txtSuccessCount.Text) + 1).ToString(); })); IsOpenDaRenPage = false; } } }); } private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e) { Invoke(new Action(() => { this.textBox3.Text = e.Address; })); if (e.Address.Contains("https://buyin.jinritemai.com/dashboard")) //https://fxg.jinritemai.com/ffa/mshop/homepage/index { Task.Run(() => { //AllBase.Helper.GlobalConfig.DouUserCookies = CEFBrowser.GetCookie("", cefWebBrowser.RequestContext.GetCookieManager(null)); GlobalConfig.DouUserCookies = CEFBrowser.GetCookie("jinritemai.com", Cef.GetGlobalCookieManager()); StartUp.SaveDouUserCookies(); }); } } private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) { } //int totalPage = 10; int currentPage = 1; //int pageTimeInterval = 10; // 翻页间隔秒数 private void btnSend_Click(object sender, EventArgs e) { try { this.txtSuccessCount.Text = "0"; Task.Run(() => { GetDaRen(); }); } catch { BaseMsgForm.ShowError("请注意参数格式。"); } } void GetDaRen() { while (currentPage <= drSetting.TotalPage) { var html = GetCefHtml(cefWebBrowser); var items = BaseRegex.GetMatchRegex(ref html, "data-item-uid=\"([\\s\\S]+?)\""); List daRenIdList = new List(); foreach (Match m in items) { daRenIdList.Add(m.Groups[1].ToString()); } var jsCode = ""; for (int i = 0; i < daRenIdList.Count; i++) { Invoke(new Action(() => { btnMainForm_Click(null, null); })); jsCode = "document.getElementsByClassName('daren-card')[" + i + "].click();"; cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsCode, null); //i += 20; // 测试翻页 IsOpenDaRenPage = true; while (IsOpenDaRenPage) { Thread.Sleep(50); } //while (cefWebBrowserDetail == null || !daRenIdList.Any(d => cefWebBrowserDetail.Address.Contains(d))) //{ // Thread.Sleep(50); //} //while (cefWebBrowserDetail.IsLoading) //{ // Thread.Sleep(50); //} Thread.Sleep(drSetting.Interval * Randomx.GetId(1000, 1200)); } Invoke(new Action(() => { btnMainForm_Click(null, null); })); Thread.Sleep(Randomx.GetId(1000, 1200)); jsCode = "document.getElementsByClassName('anticon anticon-right')[0].click();"; cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsCode, null); Thread.Sleep(drSetting.PageInterval * Randomx.GetId(1000, 1200)); currentPage++; Invoke(new Action(() => { txtCurrentPage.Text = "" + currentPage; })); } } string GetCefHtml(ChromiumWebBrowser browser) { if (browser.IsBrowserInitialized) { var task = browser.GetBrowser().MainFrame.GetSourceAsync(); task.Wait(); Thread.Sleep(50); return task.Result; } return ""; } private void btnMainForm_Click(object sender, EventArgs e) { if (cefWebBrowser != null) cefWebBrowser.BringToFront(); pnlDetailForm.Style.BackColor1.Color = pnlDetailForm.Style.BackColor2.Color = Color.FromArgb(175, 210, 255); pnlMainForm.Style.BackColor1.Color = pnlMainForm.Style.BackColor2.Color = Color.White; pnlDetailForm.Location = new Point(pnlDetailForm.Location.X, 44); pnlMainForm.Location = new Point(pnlMainForm.Location.X, 42); } private void btnDetailForm_Click(object sender, EventArgs e) { if (cefWebBrowserDetail != null) cefWebBrowserDetail.BringToFront(); pnlDetailForm.Style.BackColor1.Color = pnlDetailForm.Style.BackColor2.Color = Color.White; pnlMainForm.Style.BackColor1.Color = pnlMainForm.Style.BackColor2.Color = Color.FromArgb(175, 210, 255); pnlDetailForm.Location = new Point(pnlDetailForm.Location.X, 42); pnlMainForm.Location = new Point(pnlMainForm.Location.X, 44); } private void btnLoginDouyin_Click(object sender, EventArgs e) { string cookie = ""; var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopAccount == cmbShop.SelectedItem.ToString()); if (shop != null) cookie = shop.Cookies; InitCef(cookie); } private void rbInvite_CheckedChanged(object sender, EventArgs e) { if (rbInvite.Checked) { drSetting.InviteType = InviteTypeEnum.Invite; SaveDRSetting(); } } private void rbChat_CheckedChanged(object sender, EventArgs e) { if (rbChat.Checked) { drSetting.InviteType = InviteTypeEnum.Chat; SaveDRSetting(); } } private void txtChatWords_TextChanged(object sender, EventArgs e) { drSetting.ChatWords = txtChatWords.Text; SaveDRSetting(); } private void txtInterval_TextChanged(object sender, EventArgs e) { if (txtInterval.Text.ParseToInt() < 10) txtInterval.Text = "10"; drSetting.Interval = drSetting.PageInterval = txtInterval.Text.ParseToInt(); SaveDRSetting(); } private void txtTotalPage_TextChanged(object sender, EventArgs e) { drSetting.TotalPage = txtInterval.Text.ParseToInt(); SaveDRSetting(); } private void SaveDRSetting() { NaiBa.Util.Helper.ConfigHelper.SaveConfig("daren_settings", drSetting); } private void textBox3_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { cefWebBrowser.Load(textBox3.Text); } } public string clickJsElementStr = "function getElement(txt, elem) {\r\n" + " var child = document.body.firstElementChild;\r\n" + " if (elem) child = elem\r\n" + " var element1 = null;\r\n" + " while (child) {\r\n" + " if (child.innerHTML.indexOf(txt) >= 0) {\r\n" + " element1 = child;\r\n" + " if (child.firstElementChild) {\r\n" + " child = child.firstElementChild; continue;\r\n" + " } else break;\r\n" + " }\r\n" + " child = child.nextElementSibling;\r\n" + " }\r\n" + " if (element1) {\r\n" + " return element1;\r\n" + " } else return error;\r\n" + "}\r\n"; } }