winform集成cefSharp,与页面进行交互
/// <summary>
/// 为了使网页能够与winForm交互 将 com 的可访问性设置为 true
/// </summary>
[System.Runtime.InteropServices.ComVisible(true)]
public partial class Form1 : Form
{
/// <summary>
/// 声明变量
/// </summary>
private CefSharp.CefSettings _settings;
ChromiumWebBrowser _browser; public Form1()
{
try
{
InitializeComponent(); //初始化cefSharp
AppLog.Info("cefSharp init ...");
_settings = new CefSharp.CefSettings();
CefSharp.Cef.Initialize(_settings); //下面设置,减少白屏的发生,此为cefSharp的bug
if (!_settings.MultiThreadedMessageLoop)
{
Application.Idle += (sender, e) => { Cef.DoMessageLoopWork(); };
}
AppLog.Info("cefSharp init OK"); //设置窗口最大化,最顶端显示
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.TopMost = true; }
catch (Exception ex)
{
AppLog.Error(ex.Message);
}
} private void Form1_Load(object sender, EventArgs e)
{
try
{
_browser = new ChromiumWebBrowser("../index.html");
_browser.RegisterJsObject("cefSharpBrower", new ScriptCallbackManager(), false); this.Controls.Add(_browser); }
catch (Exception ex)
{
AppLog.Error(ex.Message);
}
} /// <summary>
/// js调用方法类
/// </summary>
[System.Runtime.InteropServices.ComVisible(true)]
class ScriptCallbackManager
{
/// <summary>
/// 关闭窗体
/// </summary>
public void CloseWindow()
{
//退出程序,结束进程
Process.GetCurrentProcess().Kill();
} //方法1
public void Func1()
{
//具体实现
...
}
}
添加对cefSharp的引用
using CefSharp;
using CefSharp.WinForms;
页面的调用和交互
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<style>
body {
background-color: cadetblue
}
</style>
</head>
<body>
<div>
<input value="关闭winform" type="button" id="btn_close" />
<input value="Func1" type="button" id="btn_calc" />
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript"> //关闭程序
$(function () {
$("#btn_close").click(function () {
cefSharpBrower.CloseWindow();
});
}); $(function () {
$("#btn_calc").click(function () {
cefSharpBrower.Func1();
});
}); </script>
</body>
</html>
winform集成cefSharp,与页面进行交互的更多相关文章
- Winform下CefSharp的引用、配置、实例与报错排除(源码)
Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...
- winform窗体嵌套HTML页面,开发出炫彩桌面程序
一:CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目.Google Chromium项目主要是为Google Chrome应用开发 ...
- ScrollMagic – 酷毙了!超炫的页面滚动交互效果
ScrollMagic 是一款 jQuery 插件,它让你可以像使用进度条一样使用滚动条.如果你想在特定的滚动位置开始一个动画,并且让动画同步滚动条的动作,或者把元素粘在一个特定的滚动位置,那么这款插 ...
- JavaWeb学习总结-05 Servlet 与页面的交互(02)
一 模拟请求数据 为了测试方便,把请求 json,txt, xml,html格式的文件放到了公网上面,可以通过以下地址请求: http://wx.glab.cn/xpxiaowu4java/json/ ...
- 安卓Native和H5页面进行交互
安卓Native和H5页面进行交互 1.H5页面调用安卓Native界面 1)通过给webView添加JsInterface,安卓提供接口,让H5来进行调用 a)安卓写一个类,里面的方法需要用通 ...
- javaweb 与jsp页面的交互流程 (初次接触时写)
javaweb 与jsp页面的交互流程 javaweb项目目录 1. javaweb项目的一般目录: 2. jsp 页面一般情况下放在 top(前台页面) back(后台页面) 3. 后台代码 放在s ...
- 1.PHP与Web页面的交互
一.概览: PHP是一种专门用于Web开发的服务器端脚本语言.从这个描述可以知道,PHP要打交道的对象主要有服务器(Server),和基于Web的HTML(超文本标识语言).使用PHP处理Web应用时 ...
- 动态include是通过servlet进行页面信息交互的
动态include是通过servlet进行页面信息交互的
- winform+CefSharp 实现和js交互
1:窗体加载的时候添加 webBrowser.RegisterJsObject("getuserName", new _Event()); 2:注册C#方法为js方法 /// // ...
随机推荐
- TP5分页函数paginate中的each()传参
在使用each()时,each()里面只能使用局部变量,当使用外部变量时会报未定义变量的错误,但是有时候我们还必须使用外部变量,就需要想是时作用域的问题,但是如果使用 global 全局虽然不报错,但 ...
- 013.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以数组的方式返回查询结果
01. 我们在CI4框架中的Model文件夹新建一个User_model.php的文件,使用的是getResultArray,表示并让数据以数组的方式返回查询结果,代码如下: <?php nam ...
- 001-PHP静态变量
<?php function ADD1() { static $a = 10; //定义静态变量 $a += 1; echo "静态变量a的值为:" . $a . " ...
- CSU 1216 异或最大值
求n个数里面,求两两异或的最大值 直接来肯定会超时 既然要异或最大值,那么两个数的二进制肯定是正好错开为好...为了能快速找到错开的数,确实有点难想到,用字典树,按二进制数插入,再一个一个在字典树里面 ...
- C++ 语言程序设计(清华大学)1
1.回文数字判断方法(逆过来数值相等):y=y*10+x%10; x /= 10; return(x==y) 2.int rand(void)函数,所需头文件<cstdlib> ,功能是求 ...
- Oracle--sqlplus--常用命令
登陆:win+R输入sqlplus即可 如果前期没有用户可以输入sqlplus /nolog 记得sqlplus后有一个空格 --格式化命令 进行数据查询时,默认的方式排版会很乱,如果我们要解决这个 ...
- 《Airbnb架构要点分享》阅读笔记
Airbnb成立于2008年8月,总部位于加利福尼亚州旧金山市.Airbnb是一个值得信赖的社区型市场,在这里人们可以通过网站.手机或平板电脑发布.发掘和预订世界各地的独特房源,其业务已经覆盖190个 ...
- Windows系统批处理命令实现计划关机
操作步骤: 1.新建一个文本文件,粘贴下面代码,保存为shutdown.bat @echo off echo 请输入延迟关机分钟数 echo 小于1分钟将视为立即关机,负数为取消关机 set /p t ...
- Golang的进制转换实战案例
Golang的进制转换实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用进制概述 1>.进制概述 进制也就是进位制,是人们规定的一种进位方法.举个例子:二进制就 ...
- POJ 3061:Subsequence 查找连续的几个数,使得这几个数的和大于给定的S
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10172 Accepted: 4160 Desc ...