代码挺差的,仅供学习、参考
class CEFGlueLoader { class CefAppImpl : CefApp { protected override void OnBeforeCommandLineProcessing(string processType, CefCommandLine commandLine) { commandLine.AppendArgument("enable-npapi"); commandLine.AppendSwitch("enable-media-stream", "enable-media-stream"); commandLine.AppendSwitch("process-per-site"); commandLine.AppendSwitch("ppapi-flash-version", "23.0.0.185");//PepperFlash\manifest.json中的version commandLine.AppendSwitch("ppapi-flash-path", "PepperFlash\\pepflashplayer.dll"); } } public static void InitCEF() { #if !_ORG_MANAGER && !_MBMAKER CefRuntime.Load(); string[] args = new string[0]; var mainArgs = new CefMainArgs(args); var app = new CefAppImpl(); var exitCode = CefRuntime.ExecuteProcess(mainArgs, app); System.Diagnostics.Trace.WriteLine("CefRuntime.ExecuteProcess return: " + exitCode); if (exitCode != -1) { return; } var settings = new CefSettings { BrowserSubprocessPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"bin\Cef3Process.exe"), SingleProcess = false, MultiThreadedMessageLoop = true, LogSeverity = CefLogSeverity.Default, LogFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"log\CefGlue.log"), CachePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"cache"), CommandLineArgsDisabled = true, Locale = "zh_CN", LocalesDirPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"bin\locales"), RemoteDebuggingPort = 7789, }; CefRuntime.Initialize(mainArgs, settings, app); if (!settings.MultiThreadedMessageLoop) { System.Windows.Forms.Application.Idle += (sender, e) => { CefRuntime.DoMessageLoopWork(); }; } #endif } private static string GetPath(string v) { return Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, v)); } public static void ShutDownCEF() { #if !_ORG_MANAGER && !_MBMAKER try { CefRuntime.Shutdown(); } catch (Exception) { } #endif } }
时间: 2024-10-11 06:47:32