我装的 Micsoft Internet Controls V1.1 怎吗对IE没反应阿? (100分)(100分)

  • 主题发起人 主题发起人 sunstone
  • 开始时间 开始时间
S

sunstone

Unregistered / Unconfirmed
GUEST, unregistred user!
我的操作系统 windows98中文 + delphi5

1.我在d5->project->import type libary菜单下安装了 Micsoft Internet Controls v1.1,安装没问题.
2.新开了一个project.在form上放上internetexplor控件,设置它的属性
autoconnect:true;别的没动.随便在onevents几个事件中加了showmessage(..);
3.运行后,当打开IE,输入URL,改变URL都没响应我的事件?
奇怪!!! 是不是Internet Controls v1.1不好使用!

另外: 有没有netscape的internet的控件,ocx & activex 来得到变化的URL?和浏览器的名称和版本号
 
internet control 被包装为一个对象
在事件中用navigate(url,...)方法显示HTML于form上,而非
打开IE.
 
to baoyu2000:
那怎吗会有哪吗多的on事件.怎吗用啊?
我如何能得到IE的小响应事件,如URL地址等
 
如果你要控制IE,那么你的理解完全错了.

那个ocx只能帮你重做一个IE ,而不能控制本来的IE.
 
to cakk:
你终于说话了.
1.按你的说法.m$ internet control是不能与IE交流数据了.那用那个activeX.
我看过你以前的几个解答.基本上使用dde的方法.有一段文章我没看懂,不知道怎吗使用?请指点:

Establish a DDE communication with Internet Explorer, specifying the
following:

application Name: iexplore
topicName: WWW_RegisterURLEcho


Note how the Spyglass SDI specification specifies the arguments for
this particular topic:

RegisterURLEcho ( TO Web browser )

Topic: WWW_RegisterURLEcho
Item: qsApplication
Transaction: XTYP_REQUEST
Data: bSuccess

Note how the ItemName specified is prefixed with qs, indicating a
quoted string, as described above.

Set up an XTYP_REQUEST transaction with DdeClientTransaction,
specifying:

itemName: /"DDESERVER/"

This should cause the DDESERVER application to be notified of URLEcho
events, as specified in the Spyglass SDI specification. Note That
incorrectly specifying "DDESERVER" without the /" character
combination required of quoted strings causes no such notifications
to be sent to the DDESERVER application.

2.有没有ole automation的方法来得到IE的数据,象D5中的server控件.
3.听说bho能干这活.你有吗? 请mail : sunstone@263.net
 
你要做什么?
 
我要得到在IE & Netscape 中输入的URL和浏览器的名称和版本.记忆点击的地址?
请高手指点!!!
 
是当前"<b>输入的</b>"地址还是所有"<b>输入过的</b>"地址?

不管是哪一个在本论坛都讨论过了,而且有代码的.
 
>>那用那个activeX.
我没听说有这样的activeX.

>>有一段文章我没看懂
那是我从M$站点上抄下来的,说实话我也不太懂. :-P

>>听说bho能干这活
有可能,不过我没有这个控件,如果你找到了麻烦送我一个.M$站点对bho有介绍.
 
to cakk:
在那里有?我怎吗没搜索到?
1.当前输入的,是不是你的那个dde?但它需要IE的路径,多烦人!!!
2.输入过的我没找到贴子?
 
to cakk:
最好的办法是通过DDE得到浏览器正在访问的URL:

function URLInfo(sBrowerPrgFile, sServiceName: string; Netscape: boolean; var Title: string): pChar;
{
参数说明:
sBrowerPrgFile: 浏览器exe文件的完整路径名
sServiceName: 浏览器的DDE-Service名字
Netscape是'Netscape',IE是'iexplore'
Title: 返回当前网页的title
返回值: pChar的字符串
}
var
DDEClientConv: TDDEClientConv;
StartPtr, EndPtr: pchar;
browserWinName: string;
begin
result:= #0;
Title:= '';

if (sBrowerPrgFile = '') or (not FileExists(sBrowerPrgFile)) then
raise EBrowserNotFoundError.create('****!浏览器应用程序不存在!');

ddeClientConv:= TDDEClientConv.Create( nil );
try
with ddeClientConv do
begin
ServiceApplication := sBrowerPrgFile;
SetLink( sServiceName,'WWW_GetWindowInfo');
StartPtr:= RequestData('0xFFFFFFFF');
end;
finally
ddeClientConv.Free;
end;

if startPtr^ = #0 then
exit;
{skip leading "}
inc(StartPtr);
EndPtr:= StartPtr;
{proceed to next "}
while (EndPtr^ <> '"') do
inc(EndPtr);
{terminate URL string}
EndPtr^:= #0;
result:= StartPtr;
{skip ","}
StartPtr:= EndPtr+3;
if Netscape then
inc(StartPtr,12);

EndPtr:= StartPtr;
if Netscape then
while (EndPtr^ <> ']') do
inc(EndPtr)
else
while (EndPtr^ <> '"') do
inc(EndPtr);

EndPtr^:= #0;
Title:= strPas(StartPtr);
end;

有几个问题:
1.这段贴子,你是从哪里找到的?能告诉我吗?
2.比较好用,就是得输入完全浏览器路径,比较麻烦.能否改改?
3.不能动态得到url的变化?为什吗不用ddeclientitem? ddeitem:=?你知道吗?
4.netscape不好用.

 
注意尽快结束
 
附加功能 将问题提前
 
错了错了……
那个internetexplor实际上该在Server页才对,它应该算是
office2000 automation server的一员,使用方法是这样的:
把它放到程序中,声明ie: iwebbrowser2,然后在Form的oncreate里写
try
ie :=cointernetexplorer.create;//打开浏览器窗口
SHInternetexplorer.connet(ie);
except
//出错处理,比如确认是否有ie5.0等。
end;

在onclose中写
try
ie.quit;
SHInternetexplorer.Disconnet;
ie :=nil
except
//忽略出错
end;

再对SHInternetexplorer的各个事件编程即可。
之后运行你的程序就会打开一个浏览器窗口,SHInternetexplorer
的响应的就是这个浏览器窗口的所有事件。
 
最少20天内请回来自己提前一下
 
多人接受答案了。
 
后退
顶部