Zamykanie pojedynczego okna IE

0

Witam!

Potrzebuję zamknąc jedno konkretne okno Internet Explorera. Problem jest w tym, ze IE jakoś nie reaguje na WM_CLOSE, natomiast ubijanie go w ten sposób:

 
procedure KillProcess(hWindowHandle: HWND);
var
  hprocessID: INTEGER;
  processHandle: THandle;
  DWResult: DWORD;
begin
  SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
    SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

  if isWindow(hWindowHandle) then
  begin
    // PostMessage(hWindowHandle, WM_QUIT, 0, 0);

    { Get the process identifier for the window}
    GetWindowThreadProcessID(hWindowHandle, @hprocessID);
    if hprocessID <> 0 then
    begin
      { Get the process handle }
      processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
        False, hprocessID);
      if processHandle <> 0 then
      begin
        { Terminate the process }
        TerminateProcess(processHandle, 0);
        CloseHandle(ProcessHandle);
      end;
    end;
  end;
end;

skutkuje ubiciem całego procesu iexplore.exe. Zamyka to tez inne otwarte w ramach tego procesu okna. Próbowałem w następujący sposób zasymulować Alt+F4 ale jakoś nie chce działać:/

hwn:=FindWindow(nil,'Google - Microsoft Internet Explorer');
PostMessage(hwn,WM_KEYDOWN,VK_MENU,0);
POSTMessage(hwn,WM_KEYDOWN,VK_F4,0);
PostMessage(hwn,WM_KEYUP,VK_MENU,0);
PostMessage(hwn,WM_KEYUP,VK_F4,0);

ale tez nie chce sie zamknąć. Czy ktoś ma jakiś pomyślunek?

Z góry dzięki.

0

Ja nie używam praktycznie IE, więc mam bardzo starą wersję jeszcze bez
obslugi wielu kart w jednym oknie i u mnie taki sposób jak poniżej działa:

var
  H : HWND;
begin
  H := FindWindow(nil, 'about:blank - Microsoft Internet Explorer');
  SendMessage(H, WM_SYSCOMMAND, SC_CLOSE, 0);
end;

Jednak jeżeli chcesz wysyłać klawisze to nie przez SendMessage, a jak
już to najpiew zrobić SetForegroundWindow - a później Keybd_Event.

0

olesio - ja tez nie uzywam IE, ale niestety w pracy wyskakuje mi samoczynnie czasami okno IE z otwartą pewną strona (bug aplikacji służbowej) i chciałem to wyeliminować. Zaraz sprawdzę jak to działa:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1