как закрыть ie8 вкладки

Этот код ниже не закрывает вкладку в Internet Explorer 8. Если я отправляю команду wm_close на Wnd, это закрывает Internet Explorer, но я хочу закрыть текущую вкладку не весь 'ieframe'. FindWindowEX (Wnd, 0, 'Вкладка Кадра', ноль) предположил для перенастройки дескриптора т.е. кадра? Если да, почему это не закрывает текущую вкладку в Internet Explorer?

var
   Wnd, WndChild : hwnd;
begin
   Wnd := FindWindow('IEFrame', nil);
   WndChild := FindWindowEX(Wnd, 0, 'Frame Tab', nil);
   postmessage(WndChild, wm_close, 0, 0);
end;
5
задан Rob 29 July 2010 в 21:34
поделиться

2 ответа

Вы пропустили 1 слой, саму вкладку, кроме этого, все в порядке ..

var
  Wnd, WndChild: THandle;
begin
  Wnd := FindWindow('IEFrame', nil); // Top most IE
  if Wnd > 0 then
  begin
    WndChild := FindWindowEx(Wnd, 0, 'Frame Tab', nil); // Tabs holder
    if WndChild > 0 then
    begin
      WndChild := FindWindowEX(WndChild, 0, 'TabWindowClass', nil); // top most tab
      if WndChild > 0 then
        if PostMessage(WndChild, WM_CLOSE, 0, 0) then
          ShowMessage('Close request succeeded...')
        else
          ShowMessage('Failed!');
    end
    else
      // not tabbed, close IE
        if PostMessage(Wnd, WM_CLOSE, 0, 0) then
          ShowMessage('Close request succeeded...')
        else
          ShowMessage('Failed!');
  end
  else
    ShowMessage('No IE');
end;
6
ответ дан 14 December 2019 в 13:28
поделиться
var
  hie,
  hftab,
  htab : DWORD;
begin
  hie := FindWindow('IEFrame', nil);
  hftab := FindWindowEx(hie, 0, 'Frame Tab', nil);
  htab := FindWindowEX(hftab, 0, 'TabWindowClass', nil);
  PostMessage(htab, WM_CLOSE, 0, 0);
  CloseHandle(hie);
end;`

Структура окна IE8 показана на скриншоте ниже

alt text http://img171.imageshack.us/img171/6702/captureids. png

0
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: