Delphi中Chrome Chromium、Cef3學習筆記(六)

一.CEF加載網頁時空白

  chrm1.Load(‘你的網址’);
api

出現空白,跟蹤進去:cookie

    frm := FBrowser.MainFrame;  //此時爲nil ,可改成:

    frm := FBrowser.GetMainFrame;  
ide

其餘地方同上;測試


後續待更新。。spa

2、CEF程序退出時報錯

 {$R *.res}
 
procedure RegisterSchemes(const registrar: ICefSchemeRegistrar);
begin
  registrar.AddCustomScheme('local', True, True, False);
end;


begin
//  CefCache := getEnvironmentVariable('USERPROFILE')+'\GetTBData\cookies\';
  
  CefCache := 'cache';
  CefOnRegisterCustomSchemes := RegisterSchemes;
  CefSingleProcess := False;
  if not CefLoadLibDefault then
    Exit;


//  CefUserAgent := 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;';
//  CefUserAgent := 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11';
  Application.Initialize;
  Application.CreateForm(TuMain, uMain);
  Application.Run;
end.

3、Cef3加載flash網頁方法:

修改ceflib.pas:.net

  procedure TInternalApp.OnBeforeCommandLineProcessing(const processType: ustring;
      const commandLine: ICefCommandLine);
  begin
    CommandLine.AppendSwitch('ppapi-out-of-process');
    CommandLine.AppendSwitchWithValue('ppapi-flash-version', '22.0.0.168');
    CommandLine.AppendSwitchWithValue('ppapi-flash-path', 'Plugins\\pepflashplayer.dll');


    if Assigned(CefOnBeforeCommandLineProcessing) then
      CefOnBeforeCommandLineProcessing(processType, commandLine);
  end;插件

網上下載 pepflashplayer.dll放入..\Plugins\\目錄下面。

4、cef3啓動加載flash網頁時Dos窗口閃一下的問題

網上的解決方法,參考此文。命令行

http://blog.csdn.net/zx2356/article/details/51514403orm

按照該文及提供的下載掛鉤createProcessA,在xp上無效。blog

2.解決方法

有可能createprocessw也得掛鉤。但懶得修改了。所以決定改成反編譯flash插件,看看顯示命令行窗口的邏輯。

反編譯flash插件。發現顯示cmd的邏輯是,讀取環境變量comspec(cmd.exe的全路徑),讀取到就執行它,讀取不到執行cmd.exe.

用winhex修改flash插件,搜索comspec爲soms1ec,修改cmd.exe爲cm1.exe.

從新測試,成功。


修改後插件下載連接

http://download.csdn.net/detail/qsy2000/9768385


轉載請註明出處,原文地址:

http://blog.csdn.net/xtfnpgy/article/details/71703317

相關文章
相關標籤/搜索