]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/util.nsh
mtimeonly and keepatime in Include + first cut disk seeking + test win32 installer
[bacula/bacula] / bacula / src / win32 / util.nsh
1 ; GetWindowsVersion
2  ;
3  ; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
4  ; Returns on top of stack
5  ;
6  ; Windows Version (95, 98, ME, NT x.x, 2000, XP, .NET Server)
7  ; or
8  ; '' (Unknown Windows Version)
9  ;
10  ; Usage:
11  ;   Call GetWindowsVersion
12  ;   Pop $R0
13  ;   ; at this point $R0 is "NT 4.0" or whatnot
14
15
16  Function IsNT
17    Push $R0
18    Push $R1
19    ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
20    StrCmp $R0 "" 0 lbl_winnt
21
22    StrCpy $R0 'false'
23    Goto lbl_done
24
25    lbl_winnt:
26     Strcpy $R0 'true'
27
28    lbl_done:
29    Pop $R1
30    Exch $R0
31  FunctionEnd
32  
33 ; Function GetWindowsVersion
34 ;   Push $R0
35 ;   Push $R1
36 ;   ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
37 ;   StrCmp $R0 "" 0 lbl_winnt
38 ;   ; we are not NT.
39 ;   ReadRegStr $R0 HKLM SOFTWARE\Microsoft\Windows\CurrentVersion VersionNumber
40
41 ;   StrCpy $R1 $R0 1
42 ;   StrCmp $R1 '4' 0 lbl_error
43
44 ;   StrCpy $R1 $R0 3
45
46 ;   StrCmp $R1 '4.0' lbl_win32_95
47 ;   StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
48
49 ;   lbl_win32_95:
50 ;     StrCpy $R0 '95'
51 ;   Goto lbl_done
52
53 ;   lbl_win32_98:
54 ;     StrCpy $R0 '98'
55 ;   Goto lbl_done
56
57 ;   lbl_win32_ME:
58 ;     StrCpy $R0 'ME'
59 ;   Goto lbl_done
60
61 ;   lbl_winnt:
62
63 ;     StrCpy $R1 $R0 1
64
65 ;     StrCmp $R1 '3' lbl_winnt_x
66 ;     StrCmp $R1 '4' lbl_winnt_x
67
68 ;     StrCpy $R1 $R0 3
69
70 ;     StrCmp $R1 '5.0' lbl_winnt_2000
71 ;     StrCmp $R1 '5.1' lbl_winnt_XP
72 ;     StrCmp $R1 '5.2' lbl_winnt_dotNET lbl_error
73
74 ;     lbl_winnt_x:
75 ;       StrCpy $R0 "NT $R0" 6
76 ;     Goto lbl_done
77
78 ;     lbl_winnt_2000:
79 ;       Strcpy $R0 '2000'
80 ;     Goto lbl_done
81
82 ;     lbl_winnt_XP:
83 ;       Strcpy $R0 'XP'
84 ;     Goto lbl_done
85
86 ;     lbl_winnt_dotNET:
87 ;       Strcpy $R0 '.NET Server'
88 ;     Goto lbl_done
89
90 ;   lbl_error:
91 ;     Strcpy $R0 ''
92 ;   lbl_done:
93 ;   Pop $R1
94 ;   Exch $R0
95 ; FunctionEnd