Getting version info on Service Packs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Getting version info on Service Packs

Bill Dargel
Just got Ian's latest goodie on printing, and so had reason to
investigate whether I had Service Pack 1 installed on the WinXP machine
that I try things out on. (I still am doing most of my development on a
machine running Win2k).

Ian -- Your install.st is checking for Build Number to try and figure
out if SP1 has been installed or not. Unfortunately, the Build Number
doesn't get changed by installing a service pack. Last night I had
reason to do a completely fresh install of WinXP (The %#&@ SP1 wouldn't
install otherwise). The WinXP Pro is from the MSDN October 2001 CD. And
was Build 2600 already. And it stays that way after SP1 is installed.
You could check "OSVERSIONINFO current szCSDVersion" and the string will
give the Service Pack (or not). Alternatively the OSVERSIONINFOEX
structure could be wrapped which has explicit fields for Service Pack
version numbers.

But, szCSDVersion is defined as filler, and not accessible, with brings
me to my second point.

Andy/Blair -- The OSVERSIONINFO defineFields should have szCSDVersion
field "beReadOnly" rather than "beFiller". That way it could be used.

thanks,
-Bill

-------------------------------------------
Bill Dargel            [hidden email]
Shoshana Technologies
100 West Joy Road, Ann Arbor, MI 48105  USA


Reply | Threaded
Open this post in threaded view
|

Re: Getting version info on Service Packs

Ian Bartholomew-18
Bill,

> Ian -- Your install.st is checking for Build Number to try and figure
> out if SP1 has been installed or not. Unfortunately, the Build Number
> doesn't get changed by installing a service pack.

Thanks. Another assumption I made that was wrong.

Rather than fiddling with OSVERSIONINFO(EX) I think I might just check for
the required dll being present. The test from the install file will then
read [1]  ...

((OSVERSIONINFO current isWinXP) & (File exists: SessionManager current
systemDirectory , '\msftedit.dll'))

... but I'll have another look at it if OA change the classes.

[1] which makes the _assumption_ that the dll is always put in the system
folder <sigh>

--
Ian