发送消息关闭IE(100分)

  • 主题发起人 主题发起人 TOTO
  • 开始时间 开始时间
T

TOTO

Unregistered / Unconfirmed
GUEST, unregistred user!
我是用SendMessage(h, WM_CLOSE, 0, 0); IE没有任何反映
换成WM_DESTORY IE的页面显示部分成了一篇空白。但窗口还是没有关闭
使用鼠标点击X也关闭不料了

有高人在马?
 
你改用postmessage试试,我试过可以:
procedure TForm1.Button1Click(Sender: TObject);
var Wnd: HWND;
begin
Wnd := FindWindow('IEFrame', nil);
if Wnd = 0 then
begin
MessageDlg ('No Running instance of Internet Explorer!',mtError, [mbOK], 0);
end;
PostMessage(Wnd, WM_CLOSE, 0, 0);
end;
 
我不知道ie的類名是多少﹐如果是zw84611說的那樣的話就可以用下面的做法
var
procedure TForm1.Button1Click(Sender: TObject);
var Wnd: HWND;
begin
Wnd := FindWindow('IEFrame', nil);
if Wnd = 0 then
begin
MessageDlg ('No Running instance of Internet Explorer!',mtError, [mbOK], 0);
end;
PostMessage(Wnd, WM_Quit, 1, 1); //很安全﹐徹底﹐干淨,哈哈
end;
 
zw84611老兄说的不错,可以关闭IE的。
 
還要加一個timer﹐就完全ok了
 
你可以用spy++来看ie的类名
 
试过了,现在我使用的IE 窗口就关不掉!!!!!:(

是不是因为我是用xp的原因?

 
我看不一定是xp的原因,因为IE窗口有两类,我的代码如下,如不能关闭,请用QQ(58540185)联系
procedure TForm1.Timer3Timer(Sender: TObject);
var IExplorer: Thandle;
begin
IExplorer := FindWindow('CabinetWClass',nil);
If IExplorer <> 0 Then
SendMessage(IExplorer,WM_SYSCOMMAND,SC_CLOSE,0);
IExplorer := FindWindow('IEFrame',nil);
If IExplorer <> 0 Then
SendMessage(IExplorer,WM_SYSCOMMAND,SC_CLOSE,0);
end;
 
谢谢了 现在正常了
 
后退
顶部