Close an Internet Explorer browser window

P

pfsardella

I'm using a variation of this code from a posting by Chip Pearson to
try to close a browser window that I opened. The code works fine when
I use it with Notepad (closes the Notepad window that I opened), but
fails to close the Internet Explorer window (fails to close a browser
that I opened).

FindWindow is retrieving the handle correctly. SendMessage is at
fault. If I substitute PostMessage for SendMessage, then the browser
closes.

Just curious as to why. Any insights?

http://www.google.com/groups?hl=en&lr=lang_en&ie=UTF-8&c2coff=1&safe=off&th=30d9d56bb8ecc7fb&rnum=2

Public Declare Function SendMessage Lib "user32" Alias
"SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA"
_
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Sub CloseCalc()
On Error Resume Next
Dim hWnd As Long
Const WM_CLOSE = &H10
hWnd = FindWindow(vbNullString, "Calculator")
If hWnd > 0 Then
SendMessage hWnd, WM_CLOSE, 0&, 0&
End If
End Sub

Many thanks in advance for any and all responses.

Paul
 
S

Sandy V

Paul,

I can't explain why your code doesn't quit IE, looks as if
it should. However if you're also doing other things with
your instance of IE, maybe try something like this as a
different approach:

First set reference to
"Microsoft Internet Controls"
(Tools / References)

Sub test()
Dim IEApp As SHDocVw.InternetExplorer
Set IEApp = New SHDocVw.InternetExplorer
IEApp.Visible = True

'code
'look in Object Browser, library SHDocVw

IEApp.Quit
Set IEDocument = Nothing
Set IEApp = Nothing

End Sub

I'm new to "SHDocVw" so test thoroughly (Dick Kusleika got
me started with it earlier this year).

Regards,
Sandy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top