p***@blueyonder.co.uk
2012-03-15 23:25:38 UTC
Hi.
I distribute my programs via the internet from my web site. The file which users download is a self extracting zip file, with the .exe extension.
When it is run it extracts all the files within it to a temp directory and runs automatically one of these files (install.exe) which is a little vb program I have written which presents the user with a pretty picture screen and the choice of running the various "setup.exe" files now in the temp directory (there are several different "setup.exe"s to choose from).
OK, this has worked fine for years.
But, I today got a call from a Win7 64 bit user telling me that "install.exe" won't run and instead reports it can't find msvbm50.dll (I use vb5).
Now, msvbm50.dll is contained in the install package, and up 'til now, its presence in the temp folder has been sufficient for "install.exe" to run - it seems it doesn't need to be in the Sys32 folder for VB5 to run.
"Install.exe" eventually ran OK once the user had manually pasted msvbm50.dll into the SysWow64 folder.
So, I'm guessing that on a 64bit system, msvbm50.dll has to be in the SysWoW64 folder for vb5 to run.
My question is, how do I programmatically put it in this folder? I can't use VB because it has to be there before VB can run.
I was thinking of writing a .bat file which would automatically run when the install package is unzipped, and would copy msvbm50.dll to the Syswow64 folder, and then start install.exe.
Trouble is, would that mess up install on 32 bit systems - would it crash if the SysWow64 directory did not exist?
I am hampered at the moment by not having a 64bit system here to try things out on!
I distribute my programs via the internet from my web site. The file which users download is a self extracting zip file, with the .exe extension.
When it is run it extracts all the files within it to a temp directory and runs automatically one of these files (install.exe) which is a little vb program I have written which presents the user with a pretty picture screen and the choice of running the various "setup.exe" files now in the temp directory (there are several different "setup.exe"s to choose from).
OK, this has worked fine for years.
But, I today got a call from a Win7 64 bit user telling me that "install.exe" won't run and instead reports it can't find msvbm50.dll (I use vb5).
Now, msvbm50.dll is contained in the install package, and up 'til now, its presence in the temp folder has been sufficient for "install.exe" to run - it seems it doesn't need to be in the Sys32 folder for VB5 to run.
"Install.exe" eventually ran OK once the user had manually pasted msvbm50.dll into the SysWow64 folder.
So, I'm guessing that on a 64bit system, msvbm50.dll has to be in the SysWoW64 folder for vb5 to run.
My question is, how do I programmatically put it in this folder? I can't use VB because it has to be there before VB can run.
I was thinking of writing a .bat file which would automatically run when the install package is unzipped, and would copy msvbm50.dll to the Syswow64 folder, and then start install.exe.
Trouble is, would that mess up install on 32 bit systems - would it crash if the SysWow64 directory did not exist?
I am hampered at the moment by not having a 64bit system here to try things out on!