标题:再来一个VFP操控IE的问题,请大佬们赐教!
只看楼主
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
结帖率:73.33%
已结贴  问题点数:20 回复次数:11 
再来一个VFP操控IE的问题,请大佬们赐教!
public pbWebBrowser
pbWebBrowser=CREATEOBJECT("InternetExplorer.Application")  
pbWebBrowser.Navigate("https://tjebook.)  
pbWebBrowser.Visible   =   .T.  
pbWebBrowser.FullScreen=.T.   &&全屏  
我希望运行到这里停止继续运行后面的代码,在用户关闭浏览器以后再继续运行
………………后面的代码。


这个可以实现吗?
我现在有一种变通的思路,就是通过时钟控件来检测这个IE对象的一些属性,我希望的是IE在被用户关闭以后这些属性的值可以体现出来,但是没有实现,因为此时访问这些属性会出现错误RPC SERVER NOT ……。
搜索更多相关主题的帖子: 属性 运行 VFP 继续 IE 
2020-05-21 17:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
就打开个网址,在VFP表单加个IE控件就好了。

of = CREATEOBJECT("webForm")
of.show
READ EVENTS
RETURN

DEFINE CLASS webForm AS Form
    ShowWindow = 2
    WindowState = 2
    ADD OBJECT WB AS Olecontrol WITH Width=this.width,Height=this.height,Anchor=15,OleClass="Shell.Explorer.2",Visible=.T.
    PROCEDURE UnLoad
        CLEAR EVENTS
    ENDPROC
    PROCEDURE Init
        this.WB.Silent = .T.
        this.WB.Navigate("https://tjebook.)
    ENDPROC
ENDDEFINE
2020-05-21 20:19
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
高手就是高手啊!
我的思路到最后倒也解决了,就是加了个计时器控件,控件TIMER事件中访问IE对象的一个属性,如果此时用户已经关闭了IE,这条访问命令将会出错,利用ON ERROR 捕捉到这个错误,相当于检测到用户已经关闭IE了,然后恢复原有界面的显示。
谢谢吹版,我用你的思路试试。
2020-05-21 20:36
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
再得寸进尺一下,能不能模拟手工输入用户名和密码并点击登录这个动作?
2020-05-21 20:45
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
不知为何,实测网页显示不出来。我分别用VFP8和VFP9试验了都是只出现窗口和OLE控件区域,就是没有网页的内容,手工打开IE输入网址是没有问题的。难道是WIN10系统和VFP不太兼容?
2020-05-21 21:35
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
不知为何,实测网页显示不出来。我分别用VFP8和VFP9试验了都是只出现窗口和OLE控件区域,就是没有网页的内容,手工打开IE输入网址是没有问题的。难道是WIN10系统和VFP不太兼容?
2020-05-21 21:35
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
IE控件所使用IE内核版本不支持,网页样式无法正常显示。
在注册表中为你的进程指定引用IE的版本号。
 对于32位程序:
 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
 
 对于64位程序:
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
 
 在对应的路径下添加你程序名字,如vfp9.exe为名的value,DWORD值。值选项:
 
 11001(0×2af9)   IE11 Edge
 11000(0×2af8)   IE11
 10001(0x2711)    IE10 Standards
 10000(0x2710)    IE10
 9999 (0x270F)    IE9  Standards
 9000 (0x2328)    IE9
 8888 (0x22B8)    IE8  Standards
 8000 (0x1F40)    IE8
 7000 (0x1B58)    IE7





[此贴子已经被作者于2020-5-21 22:37编辑过]

2020-05-21 22:35
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
出现了预期的效果了!
现在问题是如果我点击其中的链接,会打开新的IE窗口显示,能不能不打开新的IE窗口而是在咱们的表单中显示呢?
2020-05-22 06:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
2楼的是在VFP表单中显示
2020-05-22 09:47
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
得分:0 
吹版,登录界面是在表单中显示,现在我已经做到了登录界面模拟键盘输入自动输入用户名和密码并验证成功打开了一个新的网页(还是在表单中),这时点击其中的一个链接会出现包含了许多课本名称的页面(还是在表单中),此时点击其中一个课本链接,就会打开一个IE窗口显示课本的内容。这个估计是网站原先设计的方案吧,我试了试不在咱们的软件里面而是手工打开IE操作,点击课本链接的时候,自动在原有的IE窗口中新增了一个页面,因此,估计想在咱们的表单中显示窗口内容应该是无解的。
2020-05-22 11:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501719-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.865438 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved