请教:如何在sohu邮箱页面中自动点击“写信”按钮

ndsc213456789 2011-01-15 12:11:54
sohu邮箱页面:

它的写信按钮是一个div标签, 如下:
<DIV class="s_writemail m-write" id=write_mail>写信</DIV>
既不是链接(A标签),也没有onclick属性。
在webbrowser中可以获得这个div标签,但是用webbrowser.Document.getElementById("write_mail").Click方法却没有用。
请教大家,要怎样才能自动点击“写信”按钮呢?
...全文
426 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ndsc213456789 2011-01-22
  • 打赏
  • 举报
回复
感谢大家热心帮助,散分。
橘子皮... 2011-01-21
  • 打赏
  • 举报
回复
把分给我吧~~
ndsc213456789 2011-01-21
  • 打赏
  • 举报
回复
一翻穷折腾,发现投递消息的函数写错了。现在可以了,对类名为Internet Explorer_server的窗口投递以下消息即可:
Dim xy As Long
xy = 65536 * 103& + 120& '这是鼠标坐标
PostMessage IEHwnd, WM_LBUTTONDOWN, MK_LBUTTON, ByVal xy
PostMessage IEHwnd, WM_LBUTTONUP, MK_LBUTTON, ByVal xy
原来错的原因是坐标值没有写byval 。
虽然成功了,但是用这种方法,如果网页有随机广告的话,那么写信按钮位置可能每次都不一样,就不可能成功了。
  • 打赏
  • 举报
回复

那个笛子断成3截的大侠哪去了……莫非被关小黑屋了?
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 dbcontrols 的回复:]
笨死了你
[/Quote]
dbcontrols 2011-01-20
  • 打赏
  • 举报
回复
笨死了你
dianyancao 2011-01-20
  • 打赏
  • 举报
回复
不知道是不是我在梦游啊?
dbcontrols 2011-01-20
  • 打赏
  • 举报
回复
楼上干嘛呢?
dianyancao 2011-01-20
  • 打赏
  • 举报
回复
干嘛呢?
  • 打赏
  • 举报
回复
这个友情up一下,看那个笛子断成三截的在不在……
  • 打赏
  • 举报
回复
这个友情up一下,看那个笛子断成三截的在不在……
ndsc213456789 2011-01-20
  • 打赏
  • 举报
回复
看来找到触发“写信”按钮事件的方法很难,我现在改用模拟鼠标按下的方法,为了不影响其它程序的操作,我就不用mouse_event事件了:
已知:
1、“写信”按钮中心位置在(120,103)
2、在VB窗口上放了一个webbrowser控件,
3、使用模拟鼠标按下函数对窗口发出信息:
PostMessage Hwnd, WM_LBUTTONDOWN, MK_LBUTTON, 65536 * 103& + 120&
PostMessage Hwnd, WM_LBUTTONUP, MK_LBUTTON, 65536 * 103& + 120&
Hwnd应当是什么,我试了很多次,枚举了当前窗口下的所有子窗口发现:
VB窗口类是:ThunderRT6FormDC
它的子窗口类:Shell Embedding
Shell Embedding的子窗口类是:Shell DocObject View
Shell DocObject View的子窗口类是:Internet Explorer_server
Internet Explorer_server就是浏览器的最顶层的窗口,获得其hdc之后,可以在上面画线。
我尝试对上述所有子窗口投第PostMessage Hwnd, WM_LBUTTONDOWN, MK_LBUTTON, 65536 * 103& + 120&消息,都没有用。真不知为什么。
ndsc213456789 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wowfiowow 的回复:]
click里包括mousedown啊
[/Quote]click里是不包括mousedown的!可以自己编个文件试一下
橘子皮... 2011-01-19
  • 打赏
  • 举报
回复
click里包括mousedown啊
ndsc213456789 2011-01-19
  • 打赏
  • 举报
回复
<DIV class="s_writemail m-write" id=write_mail>写信</DIV>

这是写信按钮,一按鼠标左键不等松开,就打开了写信页面。说明为写信按钮定义的是mousedown(鼠标按下)事件而不是常用的clcik函数。小网站的代码我一般还看得懂,大网站就不懂罗。它的JS很可能是这样写的:

$(document).ready(function(){
$("#write_mail").mousedown(function(){
//此处为写信函数的处理代码
});
});

我们知道,用webbrowser控件中元件的Click方法就可以触发元件的Click事件,但如果是mousedown事件,该怎么触发呢?用autohotkey吧,全是外国字,看不懂。
ndsc213456789 2011-01-18
  • 打赏
  • 举报
回复
<DIV class="s_writemail m-write" id=write_mail>写信</DIV>
为什么它不需要写onclick属性就可以用呢,难道是用了什么“jQuery”库技术?
  • 打赏
  • 举报
回复
顶起来,指明给三截笛子的大虾看看
赵4老师 2011-01-17
  • 打赏
  • 举报
回复
橘子皮... 2011-01-16
  • 打赏
  • 举报
回复
仔细看了下,貌似click后还要触发一个object才可以显示,object是没法操作的,所以无解。。。。
橘子皮... 2011-01-15
  • 打赏
  • 举报
回复
有意思,搞不定,等高手来解惑
加载更多回复(5)

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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