Link to home
Start Free TrialLog in
Avatar of SE081398
SE081398

asked on

how can I replace MSVBVM5.exe on clients machine

I've created a setup through ODE for Access and there are also VB apps that I have included as well.  the problem is that the exe's I've created won't run on clients' machines unless the VBVM file is installed first.  Does anyone know how I can get the exe's to run on their machines without having them run the MSVBVM5.exe before they run my setup?  

Could I simply copy the VBVM5.dll to their c:\windows\system and then register it?  would that work.

I hope this makes sense
ASKER CERTIFIED SOLUTION
Avatar of TimCottee
TimCottee
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of MatthewGraybosch
MatthewGraybosch

I've found that the simplest solution is to keep the DLLs with the executable. As an example, consider a program named "FOO.EXE". It calls functions in "MSVBVM60.DLL", "BAR.DLL", and "BAZ.DLL". Under Windows 98 you can get away with placing FOO.EXE and its DLLs in C:\FOO, as FOO.EXE looks for its DLLs in the directory in which it lives before searching C:\WINDOWS\SYSTEM. I've also seen this behavior under Windows NT 4.0, but your mileage may vary under Windows 2000, ME, and XP.
Avatar of SE081398

ASKER

MatthewGraybosch: thank you for your proposed answer.  However, it's EE edicate to respond to all question with a comment not an answer.  By proposing an answer it locks the question so no one else can respond with their ideas.
I will be rejecting your answer simply to reopen the question.  This does not mean that I don't like your answer.  I'm going to review a few things and then touch base.  :)

steve.
i would go with tim's idea.  you really need to make a real vb install.  the dll's in your vb programs will need to be registered and other dependencies will be taken care of.
Hmm. You see I've already created an install that installs an access application.  I have 3 other little VB apps that have no oxc's and simply copy files to c:\ and rename them.  1 exe opens another exe which then opens the mde that I created.  The problem is that the exe's won't run until the VBVM has been installed on the machine.  I want the user to click only 1 setup or install.exe  I don't want the user to have to run 2 installs, one that installs vbvm and another that installs my mde app.  my problem is that the 2 exe's that I run prior to the mde setup app won't run untilvbvm files are installed and registered.  This means the user has to perform two installs.
1 install msvbvm5.exe
2 setup.exe that calls other small exe's that copy files and then calls the Access setup.exe to install my custom mde app.

none of this can be done on a bare machine until the vbvm files are registered.  

Am I mixed up or does anything I've said make sense?

Am I missing something or can you not just create a batch file to run the necessary executables in whatever order is required? That way they will only have to run the one program.
Avatar of Richie_Simonetti
could you write those small VB exes inside your MDE with VBA code?
I mean, why to use "external" VBs if already have VB "inside" Access.
Richie:  no I can't put the code from the VB.exe's into access.  I'm creating a stand alone application with Access.  but in order to do that certain things have to take place before the Access app can be installed and loaded.  there are several things that must take place outside and separate of the access app that I don't believe we have time for here.  I'm sure with further changes and investigation I could modify things and improve the way I install this app.  but for now I require exe's to perform functions prior to install, as well as after install.  the problem again lies in the need for the mxvbvm5 file to be installed on the clients machine so these exe's can run.  Refering to my original question "Could I simply copy the MSVBVM5.dll to their c:\windows\system and then register it?  would that work."

Tim confirms that this will work without the use of ocx's and dll's.  These exe's do not use ocx's and only reference the basic system dll's.  The exe's basicall changes file names and shells out to other exe's that perform functions, that's it.  really quite simple.  The process is as follows:  exe1; copy files and ocx's to users system dir, call the access setup.exe that I created with the ODE.  (the setup ODE Access install now opens and begins the install process) On completion of this setup it calls exe2 that finds files installed by the setup and renames them and resets the read only property of specific files (in the process of burning ROM's long file names are converted to short names and the file is set to RO). Each exe consists of about 20 lines of code that's it.  so I'm going to try and place the msvbvm5.dll file in the system directory of my test machine and try running the exe's.  Once that's done and hopefully proves successful,  my next problem is designing a method of getting the msvbvm over to the users computer prior to the first exe running.  I may consider a bat file as  mcmahon_s pointed out.

I hope this novel explaining my situation made sense.
I can understand to some extent what you are trying to do. If the executables are really that simple then I would suggest that you consider using VBScript instead; as long as IE is installed (with the scripting support) you can do all of the stuff you mention just as easily in VBS. This will avoid having to copy the VB runtime files as the VBS runtime is the scripting support of IE.