1 | ;-------------------------------------------------------------------------------
|
---|
2 | ; GetServicePack
|
---|
3 | ; Author: Alessio Garbi (e-Project srl) <[email protected]>
|
---|
4 | ;
|
---|
5 | ; input:
|
---|
6 | ; none
|
---|
7 | ; output:
|
---|
8 | ; top of stack: last service pack major version
|
---|
9 | ; top of stack-1: last service pack minor version
|
---|
10 | ; note:
|
---|
11 | ; If no service pack installed returns major ver "0" and minor ver "0"
|
---|
12 | ; Function tested with Win 95, 98SE, NT4, 2000, XP, 2003 (lang ITA and ENG)
|
---|
13 |
|
---|
14 | !macro GetServicePack un
|
---|
15 | Function ${un}GetServicePack
|
---|
16 | Push $R0
|
---|
17 | Push $R1
|
---|
18 |
|
---|
19 | ReadRegDWORD $R0 HKLM "System\CurrentControlSet\Control\Windows" "CSDVersion"
|
---|
20 | IntOp $R1 $R0 % 256 ;get minor version
|
---|
21 | IntOp $R0 $R0 / 256 ;get major version
|
---|
22 |
|
---|
23 | Exch $R1
|
---|
24 | Exch
|
---|
25 | Exch $R0
|
---|
26 | FunctionEnd
|
---|
27 | !macroend
|
---|
28 | !insertmacro GetServicePack ""
|
---|
29 | !insertmacro GetServicePack "un."
|
---|