读书人

关于WEBBrowser控件不能被完全释放的有

发布时间: 2012-03-06 20:47:55 作者: rapoo

关于WEBBrowser控件不能被完全释放的问题
我做的一个程序其中用到了webbrowser控件,发现了一个很奇怪的问题,
我Create 一个 WEBBrowser控件,登录一个站点,然后Free掉它,
然后在Create一个新的WEBBrowser控件,访问同一个站点,结果直接进入了登录
后的页面,也就是说不需要重新登录。

我用 MYIE 和 傲游 浏览器都做了测试, 问题相同。

[解决办法]
这是站点采用了cookie的原因.
上次登陆时在你的电脑里留下了登陆信息,下次再登陆时,网站检测了你的cookie,发现以前登陆过,就直接让你进入了
你可以清除cookie再试试啊............
[解决办法]
"我用 MYIE 和 傲游 浏览器都做了测试, 问题相同。" 这就是说与你做的程序也没关系了......
其实WEBBrowser控件用的也是IE内核,傲游也是IE内核,本质上一样.
能不能看看你的那个站点呢?是不是站点的问题?
[解决办法]
是这样的,它这样做还是有它的原因的,即登陆一个站点后,打开同一站点的其他页面时就不用再登陆了,特别是弹出页面
其实这些Cookie即在硬盘上有,在内存里也有,当浏览的进程没有关闭时,是取内存里的Cookie发送的
真的不好办啊
[解决办法]
我这样写没有问题你看看楼主
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw_TLB, EmbeddedWB;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ie:TEmbeddedWB;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ie:=TEmbeddedWB.Create(Self);
ie.ParentWindow:=Self.Handle;
ie.Width:=Self.Width;
ie.Height:=400;
ie.Navigate('http://10.113.58.5:8080/discuz/index.php');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ie:=TEmbeddedWB.Create(Self);
ie.ParentWindow:=Self.Handle;
ie.Width:=Self.Width;
ie.Height:=400;
ie.Navigate('http://10.113.58.5:8080/discuz/index.php');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ie.ClearCache;
Self.RemoveControl(ie);
end;

end.

[解决办法]
这也叫bug?你没有注销登录当然还是登录状态了

读书人网 >.NET

热点推荐