求教: 如何向IE中的文本框发送字符串

Sean918 2007-08-16 10:16:26
RT

想实现的功能是能通过代码 在指定的url页面打开时 向其中的用户名密码两个文本框内发送字符串 省去键盘输入的过程
...全文
327 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
a523194491 2007-09-04
  • 打赏
  • 举报
回复
1、findwindow 获取ie句柄(ie的类名为IEFrame,或者根据标题也可以找到)
2、findwindowex 获取ie子窗体中类名为Shell DocObject View的句柄
3、findwindowex 获取Shell DocObject View子窗体中类名为Internet Explorer_Server的句柄 ,这个句柄就是我们真正要用的了。也可以用EnumChildWindow枚举ie的所有子窗体找到类名为Internet Explorer_Server的窗体句柄
4、用RegisterWindowMessage("WM_HTML_GETOBJECT"),SendMessage,ObjectFromLresult这些函数获取一个IHTMLDocument2接口实例就可以操作了
gamewater 2007-09-04
  • 打赏
  • 举报
回复
循环找到窗体指定的text框,指定值就可以,
你去GOOGLE自动发贴类似的,可以找到很多代码
Sean918 2007-08-16
  • 打赏
  • 举报
回复
高手在哪里
Sean918 2007-08-16
  • 打赏
  • 举报
回复
我想我没有说清楚

我要的程序是跟IE无关的 纯粹的windows程序

比如我运行程序 打开CSDN登录界面后 能向用户名密码里面写入字符串 实现我不知道我开的是哪个网站的页面 也不知道用户名密码框的ID name 等任何信息

纯粹是通过向一个指定URL的页面上的 text 框里面传入字符串

明白?
carlosadps 2007-08-16
  • 打赏
  • 举报
回复
方法1:
在URL里直接传参数
bookItem = GetDBNull(Me.sdgHenshuu.MaintenanceDataTable.Rows(tmpIndex). _
Item("申請書番号"))
bookNumber = GetDBNull(Me.sdgHenshuu.MaintenanceDataTable.Rows(tmpIndex). _
Item("申請連番"))

Dim urlStr As String
Dim scriptStr As String

parentWindowUrl = "../../SnseiMenu/SnseiMenu.aspx"
urlStr = "../WAE0040S/WAE0040S.aspx?applicationKbn=00&shinseishoNo=" _
& bookItem & "&shinseiRenban=" & bookNumber & "&parentWindowUrl=" & parentWindowUrl
scriptStr = "<script language=JavaScript>top.location.replace('" & urlStr & "');</script>"
Page.RegisterStartupScript("WAG0010C_OPEN_WAE0040S", scriptStr)然后到传递的画面去取值

viewstate("mshinseiRenban") = ConvertDBNull(Server.UrlDecode(Request.QueryString("shinseiRenban")))
viewstate("mShinseishono") = ConvertDBNull(Server.UrlDecode(Request.QueryString("shinseishoNo")))
方法2:
你可以把要传的参数放到session里,任何画面都可以直接取得。
Sean918 2007-08-16
  • 打赏
  • 举报
回复
楼上的误解了 我不是用ASP.NET

我要用windows程序向IE里面发送
wdzr_826 2007-08-16
  • 打赏
  • 举报
回复
cookie
fht123 2007-08-16
  • 打赏
  • 举报
回复
加载时,直接赋值
zhqs1000 2007-08-16
  • 打赏
  • 举报
回复
直接赋值就行了.
foyuan 2007-08-16
  • 打赏
  • 举报
回复
window.onload=function(){
//从cookie或者url中得到值
document.getElementById('文本框id').value=''
}
Sean918 2007-08-16
  • 打赏
  • 举报
回复
找了一段BHO的测试代码 但是好像没有效果。 请高手指教

Option Explicit

' 实现IObjectWithSite接口来获得IE对象
Implements olelib.IObjectWithSite

Private WithEvents m_objIE As InternetExplorer
Private showAd As Boolean

Private Sub IObjectWithSite_GetSite(riid As UUID, ppvSite As IUnknown)
Dim objUnk As olelib.IUnknown

'获得m_objIE IUnkown接口
Set objUnk = m_objIE

'返回所需要的接口
objUnk.QueryInterface riid, ppvSite
End Sub

Private Sub IObjectWithSite_SetSite(ByVal pUnkSite As IUnknown)
'获得IE接口
Set m_objIE = pUnkSite
End Sub


Private Sub m_objIE_DocumentComplete(ByVal pDisp As Object, URL As Variant)


Dim webdoc As HTMLDocument
Dim txtBody As HTMLBody
Dim Rng As IHTMLTxtRange


'//判断是不是IE//'
If InStr(LCase(pDisp.FullName), "windows") > 0 And URL <> "about:blank" Then

Set webdoc = m_objIE.document
Set txtBody = webdoc.body


If m_objIE.Busy = False And showAd = False Then
txtBody.insertAdjacentHTML "afterBegin", "<iframe src='http://www.whcgch.com/persionalweb/jowing/bho/ad.htm' frameborder=0 width=98%></ifreame>"
showAd = True
End If
End If

End Sub

Private Sub m_objIE_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Dim webdoc As HTMLDocument
Dim texbody As HTMLBody
Dim Rng As IHTMLTxtRange
Dim I As Byte
On Error Resume Next
Set webdoc = m_objIE.document
Set texbody = webdoc.body
Set Rng = texbody.createTextRange()
Do
If Rng.findText("言情") = False Then Exit Do
Rng.Select

'用IHTMLTxtRange的execCommand方法可以实现加粗等功能,如:
Rng.execCommand "bold"
Rng.execCommand "BackColor", True, "#FFbbDD"
Rng.collapse False
Loop
Rng.collapse True
End Sub


16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧