关于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?你没有注销登录当然还是登录状态了