Detecting and Closing an Activex Application from MS Access

Posted on 1998-10-15
Last Modified: 2010-04-30
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.  
Question by:dhoule
  • 2
  • 2
LVL 13

Accepted Solution

Mirkwood earned 50 total points
ID: 1440036
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


Author Comment

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

LVL 13

Expert Comment

ID: 1440038
Yep, same way. Send WM_SIZE messages, the wParam must be a value between 0 and 16 I think.

Author Comment

ID: 1440039
Thank you for your help.

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
Introduction While answering a recent question ( in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now