Archive: Checking for MDAC / Jet 4.0 SP8 / Windows SP


Checking for MDAC / Jet 4.0 SP8 / Windows SP
1) I see that the latest version of NSIS includes the WinVer function, but how do I check for WinXP SP2 or Win2k SP4? I want my installer to verify that the target machine is at least at these service packs.
2) Does anyone know if the lastest version of MDAC / Jet 4.0 SP8 is automatically included in WinXP SP2 / Win2k SP4? In other words, is it sufficient just to check the windows service pack level or do I also need to check for those components?
3) Is it possible to code a custom install page that shows to the user the component check, i.e a list of items that are checked off (if installed) or unchecked with how-to-resolve text?

Thanks,
Ross


  1. You can use Afrow's version plug-in.
  2. No idea.
  3. You can create a custom page and edit it at runtime according to the available components using simple string manipulation and WriteINIStr or MUI_INSTALLOPTIONS_WRITE.

Thanks Kichik. But if I remember correctly about that plug-in, it wouldn't allow me to compare a user's sp build (for example, if WinXP SP 2 corresponded to 8.004.033 and if a user had SP3 8.004.120, my installer should accept that; if a user was at SP1 8.003.015, however, it should warn the user).


You can use GetVersionEx with the System plug-in to get wServicePackMajor and wServicePackMinor. Just make sure you call it just for NT4 SP6 and above.

System::Alloc 156
Pop $0
System::Call *$0(i156)
System::Call kernel32::GetVersionEx(ir0)
System::Call *$0(i,i,i,i,i,&t128,&i2.r1,&i2.r2)
System::Free $0

DetailPrint "SP $1.$2"