基于cefsharp的用户浏览器

一、前言

使用cefSharp制作浏览器主要是一些页面无法通过自己的接口去控制,又不可能通过第三方去解决的时候,只能通过自己做的浏览器去分析界面,然后给出响应. 例如: xx的网页客服 目前具有各种缺陷无法发送文件 无法提醒客服新消息等

二、环境搭建

进入NuGet 管理程序包

基于cefsharp的用户浏览器

添加 CefSharp.WinForms 和CefSharp.Common 使用v69.0.0版本

基于cefsharp的用户浏览器

设置配置管理器 解决方案为 X86 cefSharp不予许 Any CPU

基于cefsharp的用户浏览器

设置 引用程序.net4.5.2

基于cefsharp的用户浏览器

三、程序实现

初始化cefSharp

c#;gutter:true public void init() {</p> <pre><code> CefSettings _settings = new CefSettings(); //禁止GPU(图形处理器) 加速 _settings.CefCommandLineArgs.Add("disable-gpu", "1"); // Enable WebRTC 支持媒体流 _settings.CefCommandLineArgs.Add("enable-media-stream", "1"); //不要使用代理服务器,总是直接连接。覆盖传递的任何其他代理服务器标志。 //略微改进了Cef初始化时间,因为它不会尝试解析代理 _settings.CefCommandLineArgs.Add("no-proxy-server", "1"); _settings.Locale = "zh-CN"; //浏览器引擎的语言 _settings.AcceptLanguageList = "zh-CN,zh;q=0.8"; //日志文件 _settings.PersistSessionCookies = true;//保存回话 Cef.Initialize(_settings); webBrowser = new ChromiumWebBrowser("https://www.baidu.com/"); this.panel1.Controls.Add(webBrowser); webBrowser.Dock = DockStyle.Fill; } </code></pre> <pre><code> 获取网页html #;gutter:true
///
/// 获取网页html
///
///
///
public static string gethtml(ChromiumWebBrowser webBrowser) {
string str = "";
if (webBrowser.IsBrowserInitialized)
{
var task = webBrowser.GetSourceAsync();
task.Wait();
str = task.Result;
}
return str;

}

分析数据

c#;gutter:true /// /// 对话框中消息的数量 /// /// /// public static int getmsgCount(string str) { return Regex.Matches(str, @"message_content_inner").Count;</p> <pre><code> } </code></pre> <pre><code> #;gutter:true
///
/// 获取选择的用户昵称
///
///
public static string getSelectedNick(string str) {
int selectedindex = str.IndexOf("card_selected");
// loglw.PrintLog("",str);
if (selectedindex > 0)
{
string selects = str.Substring(selectedindex, 500);
int altindex = selects.IndexOf("alt=");
int overindex = selects.IndexOf("\"", altindex + 5);
return selects.Substring(altindex + 5, overindex – altindex – 5);
}
return "";
}

当把界面的信息获取到之后,就和接口获取数据后的操作一样了

设置定时器

c#;gutter:true Timer time; public Form1() { InitializeComponent(); this.Load += Form1_Load; this.Shown += Form1_Shown; this.Activated += Form1_Activated; this.Deactivate += Form1_Deactivate; time = new Timer(); time.Interval = 2000; time.Tick += Time_Tick; new ToolTip().SetToolTip(file, "客户文件盒"); this.FormClosing += Form1_FormClosing; }</p> <pre><code> 定时器方法 显示提示信息 提示用户 #;gutter:true
private void Time_Tick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
showmsg();
}
if (!act)
{
showmsg();
}
}

基于cefsharp的用户浏览器

四、运行效果图

基于cefsharp的用户浏览器

五、项目结构图

基于cefsharp的用户浏览器基于cefsharp的用户浏览器

注意依赖部分太大,没在这里打包进来。

依赖:上述NuGet 管理程序包引用的 cefSharp

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

Original: https://www.cnblogs.com/demodashi/p/10503403.html
Author: demo例子集
Title: 基于cefsharp的用户浏览器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551585/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球