3、命令操作
常用的命令操作用ExecWB方法即可完成,ExecWB同樣多次被重載:
procedure ExecWB(cmdID: OLECMDID; cmdexecopt:
OLECMDEXECOPT); overload;
procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT;
var pvaIn:
OleVariant); overload;
procedure ExecWB(cmdID: rOLECMDID; cmdexecopt:
OLECMDEXECOPT; var pvaIn:
OleVariant; var pvaOut: OleVariant); overload;
打開:彈出“打開Internet地址”對話框,CommandID為OLECMDID_OPEN(若浏覽器版本為IE5.0,
則此命令不可用)。
另存為:調用“另存為”對話框。
ExecWB(OLECMDID_SAVEAS,OLECMDEXECOPT_DODEFAULT,
EmptyParam,
EmptyParam);
打印、打印預覽和頁面設置:調用“打印”、“打印預覽”和“頁面設置”對話框(IE5.5及以上版本才支持打
印預覽,故實現應該檢查此命令是否可用)。
ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT,
EmptyParam,
EmptyParam);
if QueryStatusWB(OLECMDID_PRINTPREVIEW)=3 then
ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT,
EmptyParam,EmptyParam);
ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT,
EmptyParam,
EmptyParam);
剪切、復制、粘貼、全選:功能無須多說,需要注意的是:剪切和粘貼不僅對編輯框文字,而且對網頁上的非編
輯框文字同樣有效,用得好的話,也許可以做出功能特殊的東東。獲得其命令使能狀
態和執行命令的方法有兩種(以復制為例,剪切、粘貼和全選分別將各自的關鍵字替
換即可,分別為CUT,PASTE和SELECTALL):
A、用TWebBrowser的QueryStatusWB方法。
if(QueryStatusWB(OLECMDID_COPY)=OLECMDF_ENABLED) or
OLECMDF_SUPPORTED) then
ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT,
EmptyParam,
EmptyParam);
B、用IHtmlDocument2的QueryCommandEnabled方法。
var
Doc: IHtmlDocument2;
begin
Doc :=WebBrowser1.Document as IHtmlDocument2;
if Doc.QueryCommandEnabled('Copy') then
Doc.ExecCommand('Copy',false,EmptyParam);
end;
查找:參考第九條“查找”功能。