做个登录软件遇到的一点小问题?!(在线等结果,up有分)(65分)

  • 主题发起人 风月剑客
  • 开始时间
[h1][red]大力感谢老大AWL[/red][/h1]​
是你一次又一次的详细耐心的帮我解释和调试,太感谢你啦!!!!
现在程序能够正常运行,但问题有以下几点
一、你的那段程序没什么效果啊?!和直接加载网页没什么区别,值没变化!
二、也不能实现自动登录,按原来设定好的值也不行,换句话说如何实现不
再用按那个查询的铵钮呢?
三、有好几个朋友大力推荐我用IDHTTP控件,说本方法太麻烦,你能否介绍一二
四、maikee1978和mfpan两个朋友大力推荐用INI文件读取,如何实现!?
五、我没法帖CHECK。ASP的源码,好象一帖这种代码网页不能正常运行!
但里面主要有两个变量NAME和PASS,正确便可进入!
 
>>风月剑客
>>一、二、
真是惭愧得很,这次重新完整的测试了一下,因该没有问题了:
由于疏忽写错了
webbrowserDocumentComplete中应该是:
因为经过调试发现WebBrowser.LocationURL的格式为'file:///E:/myPost.htm'
if UpperCase(WebBrowser.LocationURL) = UpperCase('file:///E:/mypost.htm') then
begin
o := WebBrowser.OleObject.document.all.item('username',0);
//找到登录用户名的输入框
o.value := 'TEST';
o := WebBrowser.Oleobject.document.all.item('password',0);
//找到登录密码的输入框
o.value := 'TEST';
WebBrowser.oleobject.document.Forms.Item(0,0).submit;
end;

>>三
用IDHttp实际上是常用的方法,你可以看我前两天刚参加过的问题,因该有点帮助。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1775242
实际上就我对你的问题的理解,因为你是自动登陆程序,最终要在自己的程序中的WebBrowser
中显示出登陆结果页,之后再作其它的页面操作,所以我觉得第一种方案是适合你的,而
使用IdHttp控件一般做的都是完成提交工作后就不再考虑返回页面情况了,所以这种方法
未必适合你的程序。
 
>>awl
老大,该程序是不是就WEBBROWSER和BOTTER两个控件??
程序执行后点按钮然后就载入网页,在网页中应该显示的是不是TEST,也就是你在程序里
赋的值啊?但我的为什么没有这种效果呢???
>>你的另一篇我正在研究和学习,谢谢老大
还有一点,老大是不是教学?看你如此耐心的教我并不厌其烦的给我调试,我还不会,
我都有点不好意思啦!!
感谢老大,向老大致敬!!
 
>>风月剑客
不幸被你言中,我确实做过老师。其实我也并不常这样回答问题的,在这个论坛上,热心
回答问题的人有很多的。
这个程序从功能的完成上应该是没有问题的,应为这确实可以做到表单的自动提交。
>>在网页中应该显示的是不是TEST
网页中确实是你重新设过的值。
当然你也应该知道,上面写的程序可能是个没有太大作用的只是为测试功能的例子而已,
但是原理都是相同的,所以原理理解了之后你可以按照你的需要做任何的改动,这是最关键的。
再回到这个例子吧,实际上我因为测试还写了一个接收表单提交的asp程序,如下:
post.asp
<%
username = request.form("username")
password = request.form("password")
response.write "UserName:"+username
response.write "<br>"
response.write "Password:"+password
%>
运行时当我点击Button会看到WebBrowser加载静态页myPost.htm,并且表单项中被设值为
"TEST",稍等会看到WebBrowser显示了服务器端post.asp(源文件如上)文件的执行结果,
如下:
UserName:TEST
Password:TEST
因此可以说这个提交肯定是完成了的。
还有就是在测试程序的时候多进行断点设置、单步跟踪察看各种变量情况。
希望上面的回答对你有所帮助。
 
我真的不明白了,但我这儿显示的效果恰恰相反,
不但NAME和PASS里的值是网页里的值,不是程序里的那个,
而且根本就没有登录,和原来没什么区别,难道是D6和D7之间的区别????
我正在查相关资料,学习一下相关知识!!
 
老大,我怎么感觉你的那段程序从来就没被执行过啊?!!
 
我的qq:139633
你上来吧说吧
 
用GET传递密码??!!!!晕..........
 
终于试验成功了,感谢老大!!
可能是D6和D7之间的差异,我换了D6,并把我机器上的病毒杀了,结果就成功了,呵呵……
 
顶部