后期资源网|非编软件网|杉宫竹苑|非编插件|高清视频素材|音频素材|非编软件汉化

 找回密码
 立即注册
后期非编系统发布及其详细简介后期非编系统VIP专享下载区影视后期非编模版免费下载区网站注册及其办理VIP业务说明
查看: 873|回复: 0

[教程] Nsis 获取 操作系统版本

[复制链接]
发表于 2013-1-4 11:26:48 | 显示全部楼层 |阅读模式
有时我们用NSis 打包EXE的时候需要获取操作系统的版本,我们可以参考下面的函数
# M5 E, S5 k0 J( L" I  ?
# L" n; N+ {: l, Z1 V* l调用方式:
& R' p# ?5 z( v
3 J: o/ M$ A5 ^) z8 `1 Kcall GetWindowsVersion7 G7 Q- }# G! e# x& e1 y+ {! S
  Pop $R0! a1 y3 U, z, v) K0 R7 ^2 G

# ?/ s) A4 {7 ?* a# Q
) v+ _' l( M  H/ E# h) {;获取操作系统类型
) s5 z1 q& R6 j  nFunction GetWindowsVersion
' a& A4 ?+ U7 v8 G  G- D/ q$ VPush $R05 v9 V5 P9 ^2 [8 ?( {1 T
Push $R1
9 E1 P. z2 C3 l) Z- VClearErrors
) F! v$ z1 H: s. {- b- b. HReadRegStr $R0 HKLM \, z# f8 ~# l% \" {
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion# k! M& c8 \8 |6 e2 f
IfErrors 0 lbl_winnt% {& q; v. @! {! `1 K6 B) s
; we are not NT, u5 O/ N8 b; u/ F2 u1 `
ReadRegStr $R0 HKLM \
3 _+ \" M3 \  e! i# |& S( \"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
1 _+ t6 G1 _: f& S+ `' W( G
% y9 E) r& @$ W& f3 y$ uStrCpy $R1 $R0 1
1 S" I- h5 @  Y1 R# cStrCmp $R1 '4' 0 lbl_error
- l( \9 {3 g) R$ G: p  A
; y; U: P" _2 @! R; AStrCpy $R1 $R0 3
( f' Q' s  u. |3 Y) K
% {1 \. q4 e( \8 }StrCmp $R1 '4.0' lbl_win32_95
% P- c1 z1 r, Q% J' ?4 G6 D8 ^StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98! E; _4 u/ D  V: W' E9 L6 b
# `! u- e( w7 m$ C" L
lbl_win32_95:; u( [8 v: \$ W5 @' J
StrCpy $R0 '95'/ T" E! [, O0 s0 [
Goto lbl_done
0 n7 [0 l2 o  h5 ~4 E7 ]& C! ]6 L# ]' n" n! h% Z
lbl_win32_98:8 D: _0 ~, R- a2 p( _
StrCpy $R0 '98'* x2 ?( N* E! `* z+ X8 ^( M5 Z8 Z
Goto lbl_done3 C. S7 G9 I" w
) o0 w3 _! W2 l, V8 f) s" ~
lbl_win32_ME:! W( r  I- z9 \9 E
StrCpy $R0 'ME'
% B6 ?  N6 P: D( {, N% `1 ]Goto lbl_done! E' ]. d* O4 ~5 d, {- d6 I- s

3 q  v  C$ [3 K& D$ x$ \lbl_winnt:8 @! M- F% [+ O- K
+ W/ Y' b* i: j9 c
StrCpy $R1 $R0 1
: E+ O) e3 u( z1 h* t- l
, W+ p+ p# ]  z8 e5 R3 |" EStrCmp $R1 '3' lbl_winnt_x+ W* u. g# q& q# u2 l
StrCmp $R1 '4' lbl_winnt_x
5 U7 v) a5 P9 O% h" v; h- Q* R# u1 I  u" D1 B: V
StrCpy $R1 $R0 3
4 y/ F% c7 V- P+ H7 ~" f2 k7 c% P+ o& i$ ]
StrCmp $R1 '5.0' lbl_winnt_2000% V8 h! d) c: l
StrCmp $R1 '5.1' lbl_winnt_XP" {5 e- J' ~* P& Q9 a( c
StrCmp $R1 '5.2' lbl_winnt_20030 _6 f# U* l& a7 ?0 N
StrCmp $R1 '6.0' lbl_winnt_vista& M3 E* t$ e6 m9 \1 K7 E

  Q+ ?2 }' f( N! u' QStrCmp $R1 '6.1' lbl_winnt_win7 lbl_error
& J3 G( f; y7 l3 o( o& V' @/ u
+ Z9 H& E" Z( U( o" N) E! Ilbl_winnt_x:
5 t4 r2 T# d. {* ?% G0 fStrCpy $R0 "NT $R0" 67 r6 D* H. ^" y9 N5 _( Q* E) V9 F8 X
Goto lbl_done6 v& |4 k8 `' f- l) N6 v: J
" l2 \. v% U0 r0 ^6 [& Q
lbl_winnt_2000:
% r* c2 }  ~8 ?' x2 X1 j& VStrcpy $R0 '2000'
5 N! e* \" t+ nGoto lbl_done
+ ^1 |$ _3 y3 R8 E( f
9 c0 [& r% {% \5 k  ~, S' jlbl_winnt_XP:
+ \2 w3 t: O+ `  ^Strcpy $R0 'XP'8 H6 m) H# l9 p4 L# J
Goto lbl_done
! j( m& v' Y, ~0 M2 h5 f, V: A1 b! k7 l
lbl_winnt_2003:
+ [3 ^9 W2 L' PStrcpy $R0 '2003'
, f( I7 D" @& i9 h5 P6 ?' AGoto lbl_done4 n9 m" Y2 Q- r& K4 F

  c  Y+ \: \, k" [8 I# j1 Nlbl_winnt_vista:
) H1 q' Z* _, T& ?Strcpy $R0 'Vista'6 G; L7 C1 R* ^, J0 a
Goto lbl_done
" K" \$ i+ @# P: }7 x
( ^- }: B4 D* u% vlbl_winnt_win7:  \* [7 H& C+ w# Q' k! Q; B' Q3 }
Strcpy $R0 'Win7'
- o5 [/ N7 b8 VGoto lbl_done$ E! y* i: l2 i  e
- E' r  i0 @' T  m* M, g! ]
( v# ]0 n3 e* `1 L
lbl_error:$ ?* V2 n( O5 ]0 T7 Q
Strcpy $R0 ''
! J; t. f6 [( {  Y) Qlbl_done:8 Q8 m; ?+ t. G, v# h

9 }6 `4 O7 Q8 E4 [/ iPop $R1
7 o( {. r4 f. z; K% b! ?Exch $R04 m' H2 P* Q/ h2 P: x0 ^
: E3 w0 N& v6 W
FunctionEnd0 R4 X' A( S% A/ @  F  f9 z' v
后期资源网,打造没有广告、免除隐藏回复的全开放式影视技术交流平台。 你的所求就是我们服务的宗旨!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|后期资源网

GMT+8, 2024-5-19 20:43 , Processed in 0.109981 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表