如何解决重新整理网页时出现的询问视窗?【已解决】

Home Home
引用 | 编辑 joker_chat
2009-10-14 18:25
楼主
推文 x0
各位先进好!
最近在写个即时追踪网页资讯的小程式
..

访客只能看到部份内容,免费 加入会员



献花 x0
引用 | 编辑 三仙
2009-10-14 19:42
1楼
  
下面是引用 joker_chat 于 2009-10-14 18:25 发表的 如何解决重新整理网页时出现的询问视窗?: 到引言文
各位先进好!
最近在写个即时追踪网页资讯的小程式
但重整网页时总是会跳出如上图的视窗
请问VB.net该如何抓到该视窗的控制权呢? 或者有更好的解决方案?
先谢谢各位了表情


虽然不太懂
你在讲什么
但是重整网页时总是会跳出如上图的视窗
这问题
你可以用 mata 试试看
<meta http-equiv="refresh" content="10" />

献花 x0
引用 | 编辑 joker_chat
2009-10-14 20:21
2楼
  
 
下面是引用 三仙 于 2009-10-14 19:42 发表的: 到引言文


虽然不太懂
你在讲什么
但是重整网页时总是会跳出如上图的视窗
这问题
你可以用 mata 试试看
<meta http-equiv="refresh" content="10" />



不好意思..应该是我问题叙述得太笼统了
导致您误会我的问题...表情  
我在写的小程式是个windows form应用程式

要取得的像是股市行情这类持续在更新的资讯
我是以webbrowser去连结公布资讯的网页,并取得网页资料 (此网页并不是自己架的,是类似奇摩股市之类公开的网页)
在程式上以datagridview呈现给使用者看
利用timer来达成自动更新网页资料
但就卡在网页重新整理时,会跳出要求确认的视窗
导致不手动处理的话,就会卡在那里无法继续执行...

问题大致是这样,还有描述不清楚的地方再麻烦您点一下
感谢您的回覆!!表情

献花 x0
引用 | 编辑 三仙
2009-10-15 22:00
3楼
  
下面是引用 joker_chat 于 2009-10-14 20:21 发表的 : 到引言文 
  不好意思..应该是我问题叙述得太笼统了
导致您误会我的问题...表情  
我在写的小程式是个windows form应用程式

要取得的像是股市行情这类持续在更新的资讯
我是以webbrowser去连结公布资讯的网页,并取得网页资料 (此网页并不是自己架的,是类似奇摩股市之类公开的网页)
在程式上以datagridview呈现给使用者看
利用timer来达成自动更新网页资料
但就卡在网页重新整理时,会跳出要求确认的视窗
导致不手动处理的话,就会卡在那里无法继续执行... 


我记得像那种的网页
都会设定时间 reload
pchome 的设定 60 s
yahoo 的没用过

至于利用timer来达成自动更新网页资料
等我 vs 2008 装好后再来测

献花 x0
引用 | 编辑 三仙
2009-10-15 23:35
4楼
  
刚刚测试 timer + webbrowser control
没有上述状况
你可能要看一下程式了

献花 x1
引用 | 编辑 joker_chat
2009-10-16 00:08
5楼
  
  
下面是引用 三仙 于 2009-10-15 23:35 发表的 : 到引言文
刚刚测试 timer + webbrowser control
没有上述状况
你可能要看一下程式了


感谢您还费心装了 VS 2008来帮忙测试 

可能我要重新整理的网页有SSL保护,而且有传送查询参数,所以会要求确认吧?
下面是会出现同样状况的监理站查询网页,给您参考看看

www.mvdis.gov.tw/wps/portal/!ut/p/_s.7_0_A/7_0_AF/.cmd/ad/.ar/sa.com.cht.mvdis.portal.menu.core.ExecuteServiceAction/.c/6_1_18U/.ce/7_1_2R9/.p/5_1_2KS/.d/0?PC_7_1_2R9_ExecuteServiceClass=com.cht.mvdis.portal.gu.qtf.DefaultState&PC_7_1_2R9_ActionDescriptorName=com.cht.mvdis.portal.portlet.flow.FlowActionDescriptor&PC_7_1_2R9_ActionDescriptorString=com.cht.mvdis.portal.menu.core%23#7_1_2R9

目前是克难的用findwindow去处理弹出的视窗,但总觉得似乎不是很正确的做法就是啦...

献花 x0
引用 | 编辑 overing
2009-10-16 01:40
6楼
  

图 1.


我之前写的来查学校宿舍流量的程式也是会
他是因为网页的凭证过期了
会跳出跟使用者确认是否要继续流览的对话框
像附图那样
之前因为一直想不到解法
所以就在浏览网页前先popup另一个提示
解是一下那个视窗出现的原因
顺便告诉用者该按哪个

前几天又把这个程式挖出来更新
花了点时间想到解法
大致上的做法是
WebBrowser 一去Navigate url之后
开一个计时器用API去列举所有视窗(find windows的方向应该是对的)
然后找出那个弹出提示的视窗之后(我用title去比对)
对那个视窗送出按键event把他关闭(或按确定)

用到的API有
* FindWindow (依据给的条件列举视窗的hWnd)
* SetForegroundWindow (将上面API找到的hWnd带进这个API使其取得焦点)
* SendKeys (这VB6内建的函数 送出 "^y")
理论上这样的做法有点不太妥
因为可能会有相同TITLE但是不是自己成是造成的视窗
或者Set Foreground不顺利把Key send给别的视窗
不过实测之后发现其实还好
只有一瞬间而已 可以正常长达到要求
.Net 应该也可以比照办理 参考看看表情

片段
复制程式
Private Sub timer_AutoCloseTip_Timer()
    Dim hw As Long
    hw = FindWindow(vbNullString, "安全性警讯")
    If hw > 0 Then
        SetForegroundWindow hw
        SendKeys "^y"
        timer_AutoCloseTip.Enabled = False
    End If
End Sub


献花 x2
引用 | 编辑 joker_chat
2009-10-16 16:49
7楼
  
下面是引用 overing 于 2009-10-16 01:40 发表的 : 到引言文
用到的API有
* FindWindow (依据给的条件列举视窗的hWnd)
* SetForegroundWindow (将上面API找到的hWnd带进这个API使其取得焦点)
* SendKeys (这VB6内建的函数 送出 "^y")
理论上这样的做法有点不太妥
因为可能会有相同TITLE但是不是自己成是造成的视窗
或者Set Foreground不顺利把Key send给别的视窗
不过实测之后发现其实还好
只有一瞬间而已 可以正常长达到要求
.Net 应该也可以比照办理 参考看看.......



目前解决方案也是这种组合
唯一缺点是虽然弹出视窗是会自己关掉...不过还是会在画面上闪一下
不过这也没办法避免了吧

感谢overing和三仙 版主热心回覆啰!

献花 x0
引用 | 编辑 三仙
2009-10-17 00:24
8楼
  
下面是引用 joker_chat 于 2009-10-16 16:49 发表的 : 到引言文

目前解决方案也是这种组合
唯一缺点是虽然弹出视窗是会自己关掉...不过还是会在画面上闪一下
不过这也没办法避免了吧

感谢overing和三仙 版主热心回覆啰!


你真的是要感谢 overing 大表情 
 
不过画面上闪一下
应该是正常的
因为你有 postback 动作
就算用程式取得 html tag
来做自动登入、转页
也都会这样的

献花 x0
引用 | 编辑 overing
2009-10-17 01:24
9楼
  
除非自己用socket来做自己的WebBrowser 表情

献花 x0