New to Network Programming
I have a VB6 app that is like an electronic textbook. It displays .rtf files with the text, allows uses to imput parameters and then shows graphs of calculated values, displays reports and offers help files. It uses several third-party components for the graphing and an Access db to store default calculation values.
I currently use Setup Factory 5.0 to install the app along with the necessary dlls. I now have a customer that wants to use the app across his network to avoid installation on each of his pcs.
How can I make this app able to run across the network? (ie. Store all the files on the server but execute the app from the clients?)
Re: New to Network Programming
I am confused by your question. First you state
Quote:
Originally Posted by chief7
I now have a customer that wants to use the app across his network to avoid installation on each of his pcs.
and then go on to say
Quote:
Originally Posted by chief7
but execute the app from the clients?)
If your program is going to be executed by client machines how are you avoiding installation on each of the PCs? :confused:
Re: New to Network Programming
That is exactly my problem. I think (waiting on clarification) this customer wants to give his users access to my program via a file share, but the users would still execute the program on their machines.
I tried this scenario yesterday and found that if i place the required dlls in the root application directory they are found but I am receiving what I believe is a database error.
"Runtime error '430' class does not support Automation or does not support expected interface"
I tried updating the MDAC, but that didn't help.
Is this even possible to do?
What other ways can give access to a program without installing on each client?
Re: New to Network Programming
Quote:
Originally Posted by chief7
What other ways can give access to a program without installing on each client?
You are not going to get around installing client side files.
You may have your database on the network.
You may have your .Exe on the network.
But runtime and dependency files will need to be on the client machines.
Re: New to Network Programming
What ways can you run a program from a client on the server? Is terminal services the only way?
Re: New to Network Programming
Quote:
Originally Posted by chief7
What ways can you run a program from a client on the server? Is terminal services the only way?
If you are dealing with a VB6 .Exe file, then the required runtimes and dependency files must be installed on the client machines. There is no way around that. All of those third party components and .Dll files that you mentioned in your first post have to be installed and registered on the client in order for your .Exe to work, regardless of where the .Exe file resides.
If you switched languages and developed your program in something that did not require those dependency files, then you wouldn't need to be concerned about the client side.
Another possibility which would avoid client side installations would be to scrap the whole idea of a desktop interface, and redo what you have as a web page that could be run on their internal intranet.
Re: New to Network Programming
Quote:
Originally Posted by chief7
What ways can you run a program from a client on the server? Is terminal services the only way?
Terminal Services or VNC would work, but that would invent a new level of "inelegant". You'd be using the client as a dumb terminal, and you'd have to play a lot of games with your program to allow multiple copies of it to run on the same computer at the same time. If you charge by the gray hair it would be cheaper for your customer to buy a new computer for every user.
Re: New to Network Programming
i tried placing all the required .dlls and .ocxs in the root application directory and it worked the first day without anything installed or registered on the client machine. i simply installed the software on the server and executed the program via a network share.
i was able to do this on clean installs of win98, win2000 and winXP. the next day the xp machine was giving "Runtime 7: Out of Memory" errors, so I downloaded and installed service updates and then it worked again. today the win98 machine is giving the same "Runtime 7" error and the win2000 is reporting a missing ocx.
why would this work last friday but not work today?
Re: New to Network Programming
I also found this on microsofts site:
http://msdn.microsoft.com/library/de...sidebyside.asp
can't this DLL/COM redirection be used to avoid client side installation of dlls and ocxs?
Re: New to Network Programming
Yes, it can. But it requires that clients be WinXP (preferably SP2) or later (Win2003, Vista).
VB6 programs deployed in this fashion can be run direct from CD, USB flash devices, etc. as well.
I have a small program that can do the work for you if you feed it the target application's VBP file (and of course everything else in the project folder). It hasn't been perfected yet, and it has two small flaws I'm aware of:
- It does not yet handle "nested" ActiveX libraries (i.e. a program using a compiled OCX that uses another OCX or DLL).
- It includes an XP Styles element in the application manifest, so your program must properly call InitCommonControls() very early. "Very early" means prior to your main form loading (and even its Load event). One place to do this is in the form's Initialize event handler.