Detecting and Closing an Activex Application from MS Access

I have created an ActiveX EXE that pops up a form which maintains a status...I can sucessfully invoke the application, as well as manipulate the data in the ActiveX application from MS Access.  What I would like to be able to do is detect whether or not the ActiveX application is running, and if it is, send a command from MS Access to the ActiveX application to close down.  
Who is Participating?

Improve company productivity with a Business Account.Sign Up

MirkwoodConnect With a Mentor Commented:
How I would do it is search for the window using FindWindowEx. If the window is found I would close it using SendMessage.

hWndApp = FindWindow("ThunderForm", <title>")
if (hwndapp <> 0) then
   SendMessage (hwndApp, WM_CLOSE, 0, byval 0)

Public Const WM_CLOSE = &H10

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

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

Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

dhouleAuthor Commented:
That worked great, thanks.  How would I go about controlling MINIMIZE and RESTORE?  The same way? &H?

Yep, same way. Send WM_SIZE messages, the wParam must be a value between 0 and 16 I think.
dhouleAuthor Commented:
Thank you for your help.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.