大侠们救命呀,WebBrowser控件问题

julychina 2005-01-04 11:26:38
本人对delphi一知半解,现在是这样的需求,
需要用应用程序的形式得到internet上的一个文件里面的变量值,这个数据是远程主机上的mysql数据库中的数据,但是是虚拟主机,不允许远程链接,我想通过WEB形式,把它读到HTMl中,然后用应用程序得到它们的数据,这个页面的形式可以随便我写,但是我现在想要把它读到应用程序中来,我想用的方法是这样的
HTML代码如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>

<body>
<form name="form1" method="post" action="">
<input name="a1" type="hidden" id="a1" value="aaaaaaaaaaa">
<input name="a2" type="hidden" id="a2" value="bbbbbbbbbbbb">
<input name="a3" type="hidden" id="a3" value="cccccccccccccc">
<input name="a4" type="hidden" id="a4" value="ddddddddddd">
<input name="a5" type="hidden" id="a5" value="eeeeeeeeeeeeee">
<input name="a6" type="hidden" id="a6" value="fffffffffff">
<input name="a_total" type="hidden" id="a_total" value="6">
</form>
</body>
</html>

我想通过得到a_total的数值,然后把其它的a1到a6的值读到一个列表框中。


或者使用
a_1='dfsfaaaaaaaaaadsf';
a_2='dsfdsbbbbbbbbbf';
a_3='dsfdsfccccccccdsf';
a_total=3;
这种形式,现在我用WebBrowser控件,请问我怎么样才能得到这样的数据。最好有源码,分不是问题。谢谢。

如果还有其它方法也行,只是不能用数据库。
...全文
269 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pclion 2005-03-01
  • 打赏
  • 举报
回复
要从MYSQL中通过HTTP取得数据?你的网页却是发送数据!
取数据可以用PHP生成XML数据文件,idHTTP读结果,这样效率比HTML高
caiso 2005-02-26
  • 打赏
  • 举报
回复
顶一下,有fjqj
楚人无衣 2005-01-14
  • 打赏
  • 举报
回复
wb: TWebBrowser;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
wb.Navigate('d:\sec.htm');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ov: OleVariant;
i: Integer;
begin
if wb.Busy then Exit;
meo.Lines.Clear;
ov := wb.OleObject.Document.form1.elements;
for i := 0 to (ov.Length - 1) do
if ov.Item(i).type = 'hidden' then
meo.Lines.Append(ov.Item(i).name + '=' + ov.Item(i).Value);
//meo.Lines.Append(ov.Item(i).id+'|'+ov.Item(i).tagName +'|'+ ov.Item(i).type +'|'+ov.Item(i).name+'|'+ov.Item(i).Value);
end;
cangwu_lee 2005-01-13
  • 打赏
  • 举报
回复
不是还可以更简单么?

HTML是一种,另外,做成XML或者INI格式的文本,不好么?依赖性弱
不需要依赖微软的IE浏览器。
alicc 2005-01-04
  • 打赏
  • 举报
回复
不要用webbrowser
用idhttp

idhttp可以get 也可以post 得到。。write来的字符。。。。
比如:
showmessage(idhettp.get('http://www.aaa.com/index.asp'));

你的index.asp页面是
<%
respones.write "asdfas"
%>

show的结果就是 asdfas



你可以用post把变量发过去。。。让页面request

var
temp:tstrings;
begin
temp:=tstringlist.create;
//temp:=.
temp.add('a=df');//加变量采用temp.add('变量名=值'),多个就add多次
showmessage(idhttp.post('http://www.aaa.com/index.asp',temp));
end;

你的index
<%
respones.write request("a")
%>

showmessage的结果就是 df
kuki84 2005-01-04
  • 打赏
  • 举报
回复
mk
xx_adam 2005-01-04
  • 打赏
  • 举报
回复
ding
ailibuli 2005-01-04
  • 打赏
  • 举报
回复
var
Docs, ovElements: OleVariant;
i: integer;
begin
{WebBrowser1.Navigate('http://.../*.htm');
while WebBrowser1.ReadyState < READYSTATE_COMPLETE do
Application.ProcessMessages;}

Docs := WebBrowser1.OleObject.Document;
ovElements := Docs.GetElementByID('a_total');
edit1.text := ovElements.Value; //取[a_total]的値

ovElements := Docs.all.tags('INPUT');
for i := 0 to (ovElements.Length - 1) do
if (UpperCase(ovElements.item(i).type) = 'HIDDEN') then
begin
//用ID取a1...an値
end;
end;
Drate 2005-01-04
  • 打赏
  • 举报
回复
网页中控件的变量?
那你的这个网页控件的变量是从哪里来的呢?如果是写在网页中固定的话,那你只要把这个网页再修改一下,或者你向这个网页发一个请求就可以了,我觉的还是一楼的办法还是比较合理的。
julychina 2005-01-04
  • 打赏
  • 举报
回复
我用第一种方法不是字符串吗?
第种方法是发送数据呀。
我想要得到网页中控件的变量。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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