请大家帮手, 取网页中部分内容的函数 ( 积分: 49 )

  • 主题发起人 主题发起人 SuKiDelphi
  • 开始时间 开始时间
S

SuKiDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
取网页中部分内容的函数(VB&nbsp;转&nbsp;DELPHI&nbsp;的也可以)<br><br>&nbsp;Function&nbsp;GetBody(ByVal&nbsp;constr,&nbsp;ByVal&nbsp;StartStr,&nbsp;ByVal&nbsp;OverStr,&nbsp;ByVal&nbsp;IncluL,&nbsp;ByVal&nbsp;IncluR)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;constr&nbsp;=&nbsp;&quot;$False$&quot;&nbsp;Or&nbsp;constr&nbsp;=&nbsp;&quot;&quot;&nbsp;Or&nbsp;IsDBNull(constr)&nbsp;=&nbsp;True&nbsp;Or&nbsp;StartStr&nbsp;=&nbsp;&quot;&quot;&nbsp;Or&nbsp;IsDBNull(StartStr)&nbsp;=&nbsp;True&nbsp;Or&nbsp;OverStr&nbsp;=&nbsp;&quot;&quot;&nbsp;Or&nbsp;IsDBNull(OverStr)&nbsp;=&nbsp;True&nbsp;Then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetBody&nbsp;=&nbsp;&quot;$False$&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Function<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;ConStrTemp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;Start,&nbsp;Over<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConStrTemp&nbsp;=&nbsp;LCase(constr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StartStr&nbsp;=&nbsp;LCase(StartStr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OverStr&nbsp;=&nbsp;LCase(OverStr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start&nbsp;=&nbsp;InStr(1,&nbsp;ConStrTemp,&nbsp;StartStr,&nbsp;vbBinaryCompare)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Start&nbsp;&lt;=&nbsp;0&nbsp;Then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetBody&nbsp;=&nbsp;&quot;$False$&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Function<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;IncluL&nbsp;=&nbsp;False&nbsp;Then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start&nbsp;=&nbsp;Start&nbsp;+&nbsp;Len(StartStr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Over&nbsp;=&nbsp;InStr(Start,&nbsp;ConStrTemp,&nbsp;OverStr,&nbsp;vbBinaryCompare)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Over&nbsp;&lt;=&nbsp;0&nbsp;Or&nbsp;Over&nbsp;&lt;=&nbsp;Start&nbsp;Then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetBody&nbsp;=&nbsp;&quot;$False$&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Function<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;IncluR&nbsp;=&nbsp;True&nbsp;Then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Over&nbsp;=&nbsp;Over&nbsp;+&nbsp;Len(OverStr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetBody&nbsp;=&nbsp;Mid(constr,&nbsp;Start,&nbsp;Over&nbsp;-&nbsp;Start)<br>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Function
 
你要取什么的<br>我这你有段去表单的&nbsp;你拿去参考一下吧<br>function&nbsp;TForm1.GetDocInterface(hwnd:THandle):IHtmlDocument2;<br>var<br>&nbsp;&nbsp;hInst:&nbsp;THandle;<br>&nbsp;&nbsp;hr:HResult;<br>&nbsp;&nbsp;lRes:Cardinal;<br>&nbsp;&nbsp;MSG:&nbsp;Integer;<br>&nbsp;&nbsp;spDisp:IDispatch;<br>&nbsp;&nbsp;spDoc:IHTMLDocument;<br>&nbsp;&nbsp;pDoc2:IHTMLDocument2;<br>&nbsp;&nbsp;spWin:IHTMLWindow2;<br>&nbsp;&nbsp;ObjectFromLresult:&nbsp;TObjectFromLresult;<br>begin<br>&nbsp;&nbsp;hInst&nbsp;:=&nbsp;LoadLibrary('Oleacc.dll');<br>&nbsp;&nbsp;if&nbsp;hInst=0&nbsp;then&nbsp;exit;<br>&nbsp;&nbsp;@ObjectFromLresult&nbsp;:=&nbsp;GetProcAddress(hInst,&nbsp;'ObjectFromLresult');<br>&nbsp;&nbsp;if&nbsp;@ObjectFromLresult&nbsp;&lt;&gt;&nbsp;nil&nbsp;then&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSG&nbsp;:=&nbsp;RegisterWindowMessage('WM_HTML_GETOBJECT');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessageTimeOut(Hwnd,&nbsp;MSG,&nbsp;0,&nbsp;0,&nbsp;SMTO_ABORTIFHUNG,&nbsp;1000,&nbsp;lRes);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr:=&nbsp;ObjectFromLresult(lRes,&nbsp;IHTMLDocument2,&nbsp;0,&nbsp;spDoc);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;SUCCEEDED(hr)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spDisp:=spDoc.Script;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spDisp.QueryInterface(IHTMLWindow2,spWin);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//spWin:=IHTMLWindow2(spDisp);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result:=spWin.document;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FreeLibrary(hInst);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;end;<br>end;<br><br>procedure&nbsp;TForm1.GetPassword(pdoc2:IHTMLDocument2;pt:TPoint);<br>var<br>&nbsp;&nbsp;ltype:string;<br>&nbsp;&nbsp;pwd:string;<br>&nbsp;&nbsp;pElement:IHTMLElement;<br>&nbsp;&nbsp;pPwdElement:IHTMLInputTextElement;<br>&nbsp;&nbsp;hr:HRESULT;<br>begin<br>&nbsp;&nbsp;if&nbsp;(pDoc2=Nil)&nbsp;then&nbsp;exit;<br>&nbsp;&nbsp;pElement:=pDoc2.elementFromPoint(pt.X,pt.Y);<br>&nbsp;&nbsp;hr:=pElement.QueryInterface(IID_IHTMLInputTextElement,pPwdElement);<br>&nbsp;&nbsp;if(SUCCEEDED(hr))&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(pPwdElement.type_='password')&nbsp;and&nbsp;(pPwdElement.value&lt;&gt;'')&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Edit1.text:=pPwdElement.value;<br>&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(pPwdElement.type_='text')&nbsp;and&nbsp;(pPwdElement.value&lt;&gt;'')&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Edit2.Text:=pPwdElement.value;<br>&nbsp;&nbsp;end;<br><br>end;<br><br>procedure&nbsp;TForm1.Timer1Timer(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;pt:TPoint;<br>&nbsp;&nbsp;handle:Thandle;<br>&nbsp;&nbsp;buffer:PChar;<br>&nbsp;&nbsp;strbuffer:string;<br>begin<br>&nbsp;&nbsp;//GetCursorPos(pt);<br>&nbsp;&nbsp;pt:=GetPoint;<br>&nbsp;&nbsp;handle:=WindowFromPoint(pt);<br>&nbsp;&nbsp;if&nbsp;handle&lt;&gt;0&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;GetClassName(handle,buffer,100);<br>&nbsp;&nbsp;&nbsp;&nbsp;strbuffer:=strpas(buffer);<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;strbuffer='Internet&nbsp;Explorer_Server'&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;pt:=ScreenToClient(pt);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows.ScreenToClient(handle,pt);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Edit3.Text:=IntToStr(pt.x)+'&nbsp;&nbsp;&nbsp;&nbsp;'+IntToStr(pt.Y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetPassword(GetDocInterface(handle),pt);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;end;<br>end;
 
后退
顶部