Print Page | Close Window

Client Setup Methods

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: General Discussion
Forum Description: Topics Related to Active-X COM Development in General
URL: http://forum.codejock.com/forum_posts.asp?TID=11426
Printed Date: 21 November 2024 at 6:31pm
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: Client Setup Methods
Posted By: markmark
Subject: Client Setup Methods
Date Posted: 14 July 2008 at 3:23am

Hi

 

When Codejock release a new version, how do you update your customers to your latest release of your app using the new codejock version?

 

At present I add the ocx to my existing set-up, and get the clients to run the set-up again on all pc’s

This set-up is only a runtime set-up, as the app I distribute is run from a network.

 

What I was thinking was at the start-up of our app it would detect that it doesn’t have the latest codejock ocx and automatically run a set-up from the server.

Not to sure how I would do this yet and then

it would also depend on them having admin rights to!

 

Does anyone have any better method?

 

 

Thanks

 

MArk

-------------
Product: Xtreme SuitePro (ActiveX) version 13.0.0
Platform: Windows XP (32bit) - SP 2
Language: Visual Basic 6.0



Replies:
Posted By: Baldur
Date Posted: 14 July 2008 at 11:25am
Your app must be compiled with the new versions, it works not automaticly with the new ocx's.
So you must redistribute your application.
 
Better is to deinstall (with the installer) the old one and install the new.
Some installers can do this automaticly for you, but your application must also have a new version-no.


Posted By: Mr.Den
Date Posted: 14 July 2008 at 9:55pm

I use an app that is a menu of shortcuts to applications held on our server. It uses a lookup table to find the path to the most recent version on the server.

If I need to update a control, I use this method:

When the user runs an app,  I first launch a small executable that checks the version of the control installed on the client machine.
 
If it is outdated, I use the command line options of windows installer to uninstall the msi (also on the server) of the outdated control.
 
I then run a msi installer to install the new version.
 
Last but not least, shell to the application the user needed to run in the first place.
 
from http://technet2.microsoft.com/windowsserver/en/library/9361d377-9011-4e21-8011-db371fa220ba1033.mspx?mfr=true - http://technet2.microsoft.com/windowsserver/en/library/9361d377-9011-4e21-8011-db371fa220ba1033.mspx?mfr=true

To uninstall a product
Syntax
msiexec/x {Package | ProductCode}

Parameters
/x
uninstalls a product.
Package
Name of the Windows Installer package file.
ProductCode
Globally unique identifier (GUID) of the Windows Installer package.
Remarks
• Windows Installer command-line options are not case-sensitive.
 
• For more information about the Windows Installer command-line options, see Related Topics.
 

Examples
To remove or uninstall a package, type:

msiexec /x Example.msi


 



Posted By: markmark
Date Posted: 15 July 2008 at 2:19am

Mr Den

 

Thanks you very much for your detailed reply..

I will take the time to investigate this further.

It really looks like something I would like to do.

 

Do you do your version checking with vb6 app as well as the shelling of the Windows installer?

 

Thanks again

 

MArk

-------------
Product: Xtreme SuitePro (ActiveX) version 13.0.0
Platform: Windows XP (32bit) - SP 2
Language: Visual Basic 6.0


Posted By: Baldur
Date Posted: 15 July 2008 at 3:20am
Attention:
If you use VB6, you NEED to recompile the application, because VB6-runtime checks the existence of the ocx-files.
The above method only works, if the Typelib-Id and CLSID's of the newer controls doesn't change.
The CJ's controls are changed.
 
I have tried this with my application and if i don't recompile, the application can't be started.


Posted By: Mr.Den
Date Posted: 15 July 2008 at 5:40am
Mark,
 
I use the filesystemobject to do the version checking in a vb6 application.
 
Jim


Posted By: Mr.Den
Date Posted: 15 July 2008 at 5:43am
Originally posted by Baldur Baldur wrote:

Your app must be compiled with the new versions, it works not automaticly with the new ocx's.
So you must redistribute your application.
 
Better is to deinstall (with the installer) the old one and install the new.
Some installers can do this automaticly for you, but your application must also have a new version-no.
 
Agreed, I do recompile the application, and then copy it to our server, and update the link to the executable on the client machine with a common lookup table also on our server.
 
This works out better for me, I do not have to go to each workstation to do version maintenance.
 
Jim


Posted By: Baldur
Date Posted: 15 July 2008 at 6:41am
Yes you can, but COM-Objects needs to be registred locally in the registry.
You can do this with a reg-file, but the path to the controls himselve must also than link to the server.


Posted By: markmark
Date Posted: 15 July 2008 at 8:59am

Baldur

 

Thanks for your help.

I do recompile my app against the new versions of CJ ocx.

I am about to go from version 11.1.3 to 12.0.1 and am not looking forward to having to go through all the client pc’s and run a set-up manually.

 

Our main app sits on the server and each client pc has a shortcut to it.

I only then have to distribute the run time for our app.

If I can automate this without visiting each PC, it would save a lot of effort.

 

So I'm just looking for a good tried and tested way.

I.e. asking you guys

 

 

Thanks

MArk

-------------
Product: Xtreme SuitePro (ActiveX) version 13.0.0
Platform: Windows XP (32bit) - SP 2
Language: Visual Basic 6.0


Posted By: Mr.Den
Date Posted: 15 July 2008 at 11:46am
Mark,
 
Here is the batch file my VB6 app generates and then runs to uninstall Pack 3 SP1 (which holds codejock components) and install Pack 3 SP2
 
I write the batch file to the folder on the server that holds the MSI files, easier than having to put in an absolute path to the MSI.
 
msiexec /x Pack3_SP1.msi /quiet /log c:\U3SP1.log
msiexec /i Pack3_SP2.msi /quiet /log c:\I3SP2.log
 
Again, I only write the batch file and execute it if the version does not match what I am upgrading to.
 
I have often wanted to automate it more by having the VB6 app read from config files so I dont have to change and recompile it when a new version is out, but have not had the time to do so yet.
 


Posted By: Mr.Den
Date Posted: 15 July 2008 at 11:54am
Originally posted by Baldur Baldur wrote:

Yes you can, but COM-Objects needs to be registred locally in the registry.
You can do this with a reg-file, but the path to the controls himselve must also than link to the server.
 
Baldur,
 
I use Windows installer to register my components to the computers system32 folder.
 
The server is a Novell 5.1 server if that makes any difference, I have never had an opportunity to try this on a windows server, but I would think that even on windows server, if a component is present and registered on the users machine, it should still work fine.
 
If I am not mistaken, the executable will look in several places to find components, beginning with the app.path folder and ending with the system32 folder.
 
I can say for sure it works here, and works very well.
 
Jim
 


Posted By: jpbro
Date Posted: 15 July 2008 at 2:29pm
If your clients are all WindowsXP+, you could try registryless COM instantiation using a manifest file. Check out this example by member_profile.asp?PF=3745&FID=158 - JantjeKeizer :

https://forum.codejock.com/forum_posts.asp?TID=11194


-------------
Product: Xtreme SuitePro (ActiveX) version 16.2.6
Platform: Windows XP - SP3

Language: Visual Basic 6.0 SP6




Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net