Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > ActiveX COM > General Discussion
  New Posts New Posts RSS Feed - Client Setup Methods
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Client Setup Methods

 Post Reply Post Reply
Author
Message
markmark View Drop Down
Senior Member
Senior Member


Joined: 30 November 2007
Status: Offline
Points: 142
Post Options Post Options   Thanks (0) Thanks(0)   Quote markmark Quote  Post ReplyReply Direct Link To This Post Topic: Client Setup Methods
    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
Back to Top
Baldur View Drop Down
Senior Member
Senior Member


Joined: 22 November 2006
Location: Germany
Status: Offline
Points: 244
Post Options Post Options   Thanks (0) Thanks(0)   Quote Baldur Quote  Post ReplyReply Direct Link To This Post 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.
Back to Top
Mr.Den View Drop Down
Groupie
Groupie
Avatar

Joined: 26 August 2007
Status: Offline
Points: 50
Post Options Post Options   Thanks (0) Thanks(0)   Quote Mr.Den Quote  Post ReplyReply Direct Link To This Post 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.
 

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


 

Back to Top
markmark View Drop Down
Senior Member
Senior Member


Joined: 30 November 2007
Status: Offline
Points: 142
Post Options Post Options   Thanks (0) Thanks(0)   Quote markmark Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
Baldur View Drop Down
Senior Member
Senior Member


Joined: 22 November 2006
Location: Germany
Status: Offline
Points: 244
Post Options Post Options   Thanks (0) Thanks(0)   Quote Baldur Quote  Post ReplyReply Direct Link To This Post 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.
Back to Top
Mr.Den View Drop Down
Groupie
Groupie
Avatar

Joined: 26 August 2007
Status: Offline
Points: 50
Post Options Post Options   Thanks (0) Thanks(0)   Quote Mr.Den Quote  Post ReplyReply Direct Link To This Post Posted: 15 July 2008 at 5:40am
Mark,
 
I use the filesystemobject to do the version checking in a vb6 application.
 
Jim
Back to Top
Mr.Den View Drop Down
Groupie
Groupie
Avatar

Joined: 26 August 2007
Status: Offline
Points: 50
Post Options Post Options   Thanks (0) Thanks(0)   Quote Mr.Den Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
Baldur View Drop Down
Senior Member
Senior Member


Joined: 22 November 2006
Location: Germany
Status: Offline
Points: 244
Post Options Post Options   Thanks (0) Thanks(0)   Quote Baldur Quote  Post ReplyReply Direct Link To This Post 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.
Back to Top
markmark View Drop Down
Senior Member
Senior Member


Joined: 30 November 2007
Status: Offline
Points: 142
Post Options Post Options   Thanks (0) Thanks(0)   Quote markmark Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
Mr.Den View Drop Down
Groupie
Groupie
Avatar

Joined: 26 August 2007
Status: Offline
Points: 50
Post Options Post Options   Thanks (0) Thanks(0)   Quote Mr.Den Quote  Post ReplyReply Direct Link To This Post 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.
 
Back to Top
Mr.Den View Drop Down
Groupie
Groupie
Avatar

Joined: 26 August 2007
Status: Offline
Points: 50
Post Options Post Options   Thanks (0) Thanks(0)   Quote Mr.Den Quote  Post ReplyReply Direct Link To This Post 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
 
Back to Top
jpbro View Drop Down
Senior Member
Senior Member
Avatar

Joined: 12 January 2007
Status: Offline
Points: 1355
Post Options Post Options   Thanks (0) Thanks(0)   Quote jpbro Quote  Post ReplyReply Direct Link To This Post 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 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

Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.250 seconds.