CefGlue 加载FLASH 使用HOOK方式 解决CEF加载PPAPI FLASH插件时弹出CMD命令行窗口的问题

众所周知 谷歌 从CEF 45版本以后不再支持 NPAPI 类型的插件,但支持PPAPI 加载方法如下(本文由吾乐吧软件站收集整理,来自zx2356):

CefGlue 加载FLASH 使用HOOK方式 解决CEF加载PPAPI FLASH插件时弹出CMD命令行窗口的问题

1,下载pepflashplayer.dll 至程序目录

2, 新建类继承 CefApp 类 重写 OnBeforeCommandLineProcessing 方法

3 , 在 OnBeforeCommandLineProcessing 方法 中 添加 如下代码:

commandLine.AppendSwitch(“ppapi-flash-version”, “19.0.0.185”);
commandLine.AppendSwitch(“ppapi-flash-path”, @”PepperFlash\pepflashplayer.dll”);

加入两行命令行与参数 为 flash 版本 与 dll 路径. 即可成功加载flash 插件. 但是有个普遍性的问题 :
首次加载含有flash 插件页面是 会闪现弹出CMD 命令行黑窗口, 后经过排查 此窗口应该是 flash 插件中的BUG 倒至, 在没有更好的解决办法之前,我们暂时可以用 进程HOOK 的方式 拦截弹出的窗口, 通过特征符查找 dll 中找到 not sandboxed 字符 , 即可以通过匹配 这个特征符进行拦截.

方法如下:

1,到 https://easyhook.github.io/downloads.html 这个网站 下载 easyhook , 拷贝 easyhook.dll 和 easyhook32.dll , 在项目中引用 easyhook.dll , 另一个放那就行 不能引用.

2,新建类 ProcessHook 添加调用方法:

public void InitHook()
{
var CreateFileHook = LocalHook.Create(EasyHook.LocalHook.GetProcAddress(“kernel32.dll”, “CreateProcessA”), new CreateProcessDelegate(CreateProcessHooked), null);
CreateFileHook.ThreadACL.SetExclusiveACL(new int[] { });
}

3, 在Program 类 Main 方法中 调用

InitHook()

这样就可以啦~~

温馨提示:本文发布于较早时期(2018年之前),软件下载地址已经失效,建议您在本站搜索该软件名称获取最新版本。

下载方法:打开链接–等待5秒广告–点击“跳过广告”或“Skip AD”——进入下载地址。

完整ProcessHook 类源码下载:

下载地址:推荐地址 | 备用地址 |

版权声明:

小编:吾乐吧软件站

链接:https://www.wuleba.com/8473.html

来源:吾乐吧软件站

本资源仅供个人学习,禁止用于商业用途。下载后请于24小时内删除,并支持正版或原作者。因使用本资源导致的任何法律纠纷或损失,由使用者自行承担。

THE END
上一篇 Autodesk AutoCAD 2017 32位+64位 简体中文版(官方原版+注册机破解)
下一篇 工作杂谈:WordPress技术分享文档
相关内容
转发
评论
点赞
分享
全部转发 0 只看作者
按时间倒序 按时间正序

全部评论 0 只看作者
按时间倒序 按时间正序
暂无评论,快来抢沙发吧
赞赏支持
微信收款码
微信扫一扫
支付宝收款码
支付宝扫一扫
投诉内容
0/200
上传图片(最多3张,单张不超过2MB)
生成分享图片
正在生成预览...