VB里使用WebBrowser控件自动点击网页按钮。

IYFJBXKU 2008-09-22 05:46:41
asp页面代码:
<TABLE id=task_menu 省略代码>
<TBODY>
<TR>
<TD 省略代码>
<DIV align=center>巡查 </DIV> </TD> </TR> </TBODY> </TABLE>

希望可以自动点击这个TABLE构造的按钮。
...全文
1729 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
IYFJBXKU 2008-10-07
  • 打赏
  • 举报
回复
其实大家的都没错。我知道为什么有些按钮点不上了。因为这游戏设计时就考虑到防止自动玩了。。
问题是不知道他怎么做到的。又怎么破解。。
我准备向底层考虑。直接向服务器发送post信息。
liquoryellow 2008-09-27
  • 打赏
  • 举报
回复
我不赚你的分了,写的那么明白都弄不出来。
17楼说的没错。
我吐血去了。
IYFJBXKU 2008-09-27
  • 打赏
  • 举报
回复
不好意思。我水平有点低。我自己再仔细看看。
人老了,不中用了。
liquoryellow 2008-09-26
  • 打赏
  • 举报
回复



'还有确保set doc = pDisp.document语句必须在web_DocumentComplete事件调用完成了。不然出问题的。
zhju3507 2008-09-26
  • 打赏
  • 举报
回复
Dim m_bolComplete As Boolean
Dim m_bolError As Boolean

Private Sub Command1_Click()
m_bolComplete = False
m_bolError = False
WebBrowser1.Navigate2 "news.sohu.com"

While Not m_bolComplete
DoEvents
Wend

MsgBox m_bolError
End Sub

Private Sub Form_Load()

End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
m_bolComplete = True
End Sub

Private Sub WebBrowser1_NavigateError(ByVal pDisp As Object, URL As Variant, Frame As Variant, StatusCode As Variant, Cancel As Boolean)
m_bolError = True
End Sub
liquoryellow 2008-09-26
  • 打赏
  • 举报
回复
我告诉你为什么会这样,分明没有把MSHTML对象引用进来。

要么就把as xxx去掉,要么 “工程”-> "引用" -> “Microsoft HTML Object Library” 引入进来。

IYFJBXKU 2008-09-26
  • 打赏
  • 举报
回复
奇怪。这么多办法怎么都不管用。。
能不能给个全一点的?
无·法 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 liquoryellow 的回复:]
如果DocumentComplete事件完成了,楼上的就可能对,如果没完成,那就错。
还有一点最重要,pDisp包含每个连接相应的document。而webbrowser1则只是主网址
相应的document,无法获得里面frame等子网址的document.
[/Quote]
可以结合url再判断
liquoryellow 2008-09-26
  • 打赏
  • 举报
回复
如果DocumentComplete事件完成了,楼上的就可能对,如果没完成,那就错。
还有一点最重要,pDisp包含每个连接相应的document。而webbrowser1则只是主网址
相应的document,无法获得里面frame等子网址的document.
jjyq2004 2008-09-26
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim i As Integer
For i = 0 To WebBrowser1.Document.All.length - 1
On Error Resume Next
If WebBrowser1.Document.All(i).tagname = "TABLE" Then
If WebBrowser1.Document.All(i).Id = "task_menu" Then
WebBrowser1.Document.All(i).Click
End If
End If
Next
End Sub
这个对的
liquoryellow 2008-09-25
  • 打赏
  • 举报
回复
Option Explicit

Dim WithEvents tabElement As HTMLTable

Private Sub Form_Load()

web.Navigate "指定的网址"

End Sub

Private Function tabElement_onclick() As Boolean

Debug.Print "aaaaa"

End Function

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

Dim i As Integer
Dim doc As IHTMLDocument2
Dim elements As IHTMLElementCollection
Dim element As IHTMLElement

Set doc = pDisp.Document
Set elements = doc.All.tags("table")
Set element = elements(0)
Set tabElement = element

If Not (element Is Nothing) Then

element.Click

End If

End Sub

根据获取table的点击事件,可以知道点击上了。 如果没达到效果,那么就把doc.All.tags("table")改为doc.All.tags("div")这里只获得了第一个table,你也可以根据其他特点获得指定的table。绝对可以用。
zt11zfx 2008-09-25
  • 打赏
  • 举报
回复
我做过 这样的项目 , 实现方式 是手动点击网页的一个地方,用vb把鼠标的动作记录下来,然后模拟鼠标自动点击
IYFJBXKU 2008-09-25
  • 打赏
  • 举报
回复


楼上。怎么会这样呢?
打死不掉牙 2008-09-23
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim i As Integer
For i = 0 To WebBrowser1.Document.All.length - 1
On Error Resume Next
If WebBrowser1.Document.All(i).tagname = "TABLE" Then
If WebBrowser1.Document.All(i).Id = "task_menu" Then
WebBrowser1.Document.All(i).Click
End If
End If
Next
End Sub
IYFJBXKU 2008-09-23
  • 打赏
  • 举报
回复
但我仍希望有人能够写出模拟点击的代码。
IYFJBXKU 2008-09-23
  • 打赏
  • 举报
回复
这个,我想到一个很BT的解决办法了。那就是
WebBrowser1.Navigate2 "http://sg.game.com.cn/xuncha.asp"
IYFJBXKU 2008-09-23
  • 打赏
  • 举报
回复
asp页面代码:
<TABLE id=task_menu height=34 cellSpacing=0 cellPadding=0 width=69 border=0>
<TBODY>
<TR>
<TD onmouseover="javascript:this.background='images/btn_14_on.jpg';" style="CURSOR: hand" onclick="javascript:top.warreport.document.location.href='xuncha.asp'" onmouseout="javascript:this.background='images/btn_14.jpg';" background=images/btn_14.jpg>
<DIV align=center>巡查</DIV></TD></TR></TBODY></TABLE>
无·法 2008-09-23
  • 打赏
  • 举报
回复
TABLE标签难道有Click方法??第一次听说,楼主你 把代码贴全一点吧,这个帖子应该放的下
IYFJBXKU 2008-09-23
  • 打赏
  • 举报
回复
奇怪的事情来了。
用sulipeng007 的方法不管用。没反应。
更奇怪的是把On Error Resume Next 注释掉也一样。。。
liquoryellow 2008-09-23
  • 打赏
  • 举报
回复
如果再FRAME里面,那么用事件的的参数pDisp.Document.All(i).Click
加载更多回复(1)
WebBrowserWebBrowser编程技术包括Delphi、C#、VC++、VB等编程资料的集合,其中的 实例大多以Delphi为示例讲解,Delphi7 IDE开发环境。 IE_WebBrowser编程技巧 修改WebBrowser的header信息? Delphi查看WebBrowser提交之前的数据头 用TWebBrowser组件在DELPHI中POST数据和取得网页源文件 在 WebBrowser 中直接载入流,不通过文件 判断下载网页成功 WebBrowser 失去焦点问题的解决 添加到收藏夹和整理收藏夹 使WebBrowser获得焦点 提取网页中所有链接 Web字体大小 Web命令操作 WebBrowser Navigate 中的 参数 EmptyParam Web件不缓存网页,也不从缓存中读取 禁止WebBrowser复制 CTRL+C 在WebBrowser窗口上模拟KeyBd_Event 在使用WebBrowser件,先要 初始化和结束程序后要终止化(Initialization & Finalization) 自定义浏览器上下文菜单 自定义浏览器 C#中调用WebBrowser查看源文件的功能 ----------------------------------- WebBrowser与MSHTML 直接在WebBrowser中写HTML字符串 在webbrowser中查找字符串并定位 把图片拷贝进剪贴板 IHTMLDocument的ExecCommand 处理事件的Internet Explorer中的DOM 禁止WebBrowser右键弹出菜单 禁止TWebBrowser图像显示 访问HTML的DOM不使用WebBrowser 如何填写空白(about:blank)页的表单 屏蔽WebBrowser的Javascript 创建运行时的IHTMLDocument而不在WebBrowser内 HOOK Webbrowser 替换WebBrowser的窗口过程 Microsoft.XMLHttp的属性和方法的简介及使用 ------------------------ IE相关的 清空IE缓存 单独删除某一URL的缓存 清空历记录 读取IE历史记录 防止脚本关闭WebBrowser 连接是否有效 InternetCheckConnection res协议可以使浏览器显示储存在资源中HTML 往IE中嵌入工具条 阻断弹出式广告的BHO 自动填表的IE面板插件 使用Delphi开发IE按钮扩展 使用Delphi开发IE右键菜单扩展 IE异步可插入协议扩展 Delphi开发IE下载扩展 创建3721样式的Google搜索扩展 HTML代码过滤技术 GetDefaultBrowser 得到的HTML代码的IE窗口 下载网址wininet ------------------------------- 注意啦,需要HTF 阅读器:http://sites.google.com/site/htfresource/home

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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