RossW
27th October 2006 16:18 UTC
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
kichik
27th October 2006 18:35 UTC
- You can use Afrow's version plug-in.
- No idea.
- 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.
RossW
27th October 2006 20:09 UTC
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).
kichik
27th October 2006 20:21 UTC
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"