MouseHook.dll Missing

L

LadyGreen

I have recently migrated from MS Access 2000 to MS Access 2003 and am
testing all my Access apps. One app uses the Mousehook.dll which I
downloaded from the web a few years ago. The .dll is in the same folder
as the app and works fine. I converted the db and compiled all my code
without errors. When I open this app in Access 2003 I get the error
"Mousehook.dll file is Missing." Please copy the Mousehook.dll
into the windows system folder or into the same folder as this Access
MDB." Mousehook.dll IS found in both folders. So where is this
coming from? I am running MS Access 2003 from a Citrix terminal
server. My next step was to copy the .dll into the Office folder on
the terminal server and that seemed to solve the problem. Can anyone
tell me why this dll acts differently on a Citrix 2003 terminal server?
Why isn't the local app folder .dll recognized?
 
S

SusanV

Were you running the app locally before? Citrix only seems like you're
running the apps - they're actually running on the Citrix server, you are
only looking at a view of the process - therefore Citrix (or MS Terminal
server) needs the dll to be local, not your workstation.
 
M

Mike Labosh

I have recently migrated from MS Access 2000 to MS Access 2003 and am
testing all my Access apps. One app uses the Mousehook.dll which I
downloaded from the web a few years ago. The .dll is in the same folder
as the app and works fine. I converted the db and compiled all my code
without errors. When I open this app in Access 2003 I get the error
"Mousehook.dll file is Missing." Please copy the Mousehook.dll
into the windows system folder or into the same folder as this Access
MDB." Mousehook.dll IS found in both folders. So where is this
coming from? I am running MS Access 2003 from a Citrix terminal
server. My next step was to copy the .dll into the Office folder on
the terminal server and that seemed to solve the problem. Can anyone
tell me why this dll acts differently on a Citrix 2003 terminal server?
Why isn't the local app folder .dll recognized?

This sort of issue happens a LOT in VB and VBA code. There are two possible
solutions:

1. Goto your references dialog and find the item for your DLL that
probably says, "Missing". Uncheck it, do a compile (you will get errors)
and then go back to your references dialog and recheck (or browse to) your
dll and recheck it. and then Recompile.

2. If #1 above does not work, you either need to call your 3rd party DLL
provider for some support, or you are in for a LONG night of registry
debugging.

Remember that the CITRIX session you are holding shows you the *other*
computer. When you look at your own box and see
c:\windows\system32\mousehook.dll that's not enough. The dll has to be
installed and registered on the remote machine, either in the system32
directory, or the app's directory. That way, when you run your mdb
remotely, the remote CPU can find the dll.

<shameless plug>
For solving REAL distributed coding problems like that, wave two fingers at
your bosses to do the Jedi Mind Trick, and tell them to contact a training
center near you and tell them you want the MS2557 5-day class (.NET & COM+
Enterprise Services), and tell them you want ME as the instructor :)
</ sameless plug>
--


Peace & happy computing,

Mike Labosh, MCSD MCT
Owner, vbSensei.Com

"Escriba coda ergo sum." -- vbSensei
 
M

Mike Labosh

Mike the DLL in question is NOT an ActiveX DLL. No Registration or set
References are required.

If it's an API-style DLL, check the location of the DLL once again against
your declare statements. IIRC, Windows will look in the current directory
of the application, then System32, then System. Remember though, that the
"current directory of the application" is not where your MDB file lives.
That's not an application. The "application" that is running is
MSACCESS.EXE
--


Peace & happy computing,

Mike Labosh, MCSD MCT
Owner, vbSensei.Com

"Escriba coda ergo sum." -- vbSensei
 
L

LadyGreen

Thank you for all your replies. I placed the DLL in the Office folder
of the Citrix server and it worked! I'm still puzzled as to why it
found the local dll under MS Office 2000 and Terminal Server 2000. As
Mike replied, the app is MSACCESS.EXE and not my local folder. I won't
belabor the issue any further. If I find out anything else, I'll keep
you all posted.
 

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