我想查看 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控件不是一个好的解决方案。那我该怎么办?
- 有什么办法可以防止其他应用程序控制我的浏览器控件?
- 是否有任何替代方法可以让 webbrowser 控件具有相同的查看 html 的能力?