开发者社区> redrain.> 正文

解决cef加载flash时弹出黑框的问题

简介: 转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/77482985 使用cef时,如果没有使用sandbox,并且开启了flash插件,在第一次使用flash时会弹出个黑框。
+关注继续查看

转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/77482985

使用cef时,如果没有使用sandbox,并且开启了flash插件,在第一次使用flash时会弹出个黑框。这是flash插件的bug。目前找到三种解决办法:

方法一:

编译程序时加入cef_sandbox.lib静态库,自然就不会出现黑框了。但是为了加入cef_sandbox.lib,有时候会很麻烦,比如:如何编译出cef2623中的cef_sandbox.lib静态库,为了加入cef_sandbox.lib还需要修改一些项目配置,同时启用沙盒后,在某些电脑中会导致子进程无法创建,需要自己另外做一些处理。总之就是使用沙盒很麻烦

方法二:

使用HOOK的方法,拦截创建进程的API,阻止黑框(实际就是cmd程序)弹出,详见:CEF加载FLASH插件时弹出CMD命令行窗口的问题

方法三:

在群里夏思畅大神今天告诉我的方法,直接在自己程序的目录下建立一个名为cmd.exe的程序就可以(可以直接新建个文本文档,改名为cmd.exe)。因为弹出黑框需要使用cmd程序,而系统搜索程序是从进程当前的工作目录开始查找,所以直接这样做可以拦截cmd的调用。这个方法最简单,实用性最强!

为了程序更通用,可以在程序启动时加代码,在自己程序目录建立dummy_cmd.exe,修改一下自己进程ComSpec环境变量(表示的就是cmd程序的路径)的值:

  WCHAR app_path[MAX_PATH] = { 0 };
  GetModuleFileName(NULL, app_path, MAX_PATH);
  PathRemoveFileSpec(app_path);

  std::wstring cmd_path = app_path;
  cmd_path += L"\\dummy_cmd.exe";
  SetEnvironmentVariable(L"ComSpec", cmd_path.c_str());

Redrain QQ:491646717 2017.8.22

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19666 0
解决AJAX中使用UpdatePanel后无法弹出js对话框问题(引)
1 System.Web.UI.ScriptManager.RegisterStartupScript来替代Page.ClientScript.RegisterStartupScript 2 注册DataItem方法 .
537 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18660 0
Manage Jenkins管理界面提示“依赖错误: 部分插件由于缺少依赖无法加载...“问题解决办法
Manage Jenkins管理界面提示“依赖错误: 部分插件由于缺少依赖无法加载...“问题解决办法
67 0
未能加载文件或程序集System.EnterpriseServices
未能加载文件或程序集“System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。
666 0
Android开发中如何解决加载大图片时内存溢出的问题
Android开发中如何解决加载大图片时内存溢出的问题    在Android开发过程中,我们经常会遇到加载的图片过大导致内存溢出的问题,其实类似这样的问题已经屡见不鲜了,下面将一些好的解决方案分享给大家。
1108 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
17968 0
+关注
redrain.
世上最可怕的事情就是比你优秀的人同时比你更努力!
93
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载