1

我想查看 epub 文件的 html 内容。我在读取和处理 epub 文件时没有任何问题。我的问题是如何查看结果 HTML?我知道我可以在 c# 中使用 WebBrowser 控件。但问题是可以从外部应用程序中读取网络浏览器内容。我使用自己的 DRM 加密和解密 epub 文件。但我想防止从视图中复制书籍内容。

我有这段代码(用delphi编写)从任何应用程序的即控制中获取html文档和内容:

function GetIEDocumentFromHWND(WHandle: HWND;
  var doc: IHTMLDocument2): HRESULT;
var
  hInst: HWND;
  lRes: Cardinal;
  MSG: Integer;
  pDoc: IHTMLDocument2;
  ObjectFromLresult: TObjectFromLresult;
  IE: IWebbrowser2;

begin
  hInst := LoadLibrary('Oleacc.dll');
  @ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');
  if @ObjectFromLresult <> nil then begin
    try
      MSG := RegisterWindowMessage('WM_HTML_GETOBJECT');
      SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
      Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
      doc:=pDoc;
      if Result = S_OK then
        (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp,
IWebbrowser2, IE);
    finally
      FreeLibrary(hInst);
    end;
  end;
end;

这段代码证明使用webbrowser控件不是一个好的解决方案。那我该怎么办?

  1. 有什么办法可以防止其他应用程序控制我的浏览器控件?
  2. 是否有任何替代方法可以让 webbrowser 控件具有相同的查看 html 的能力?
4

0 回答 0