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

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

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

[复制链接]
发表于 2013-1-4 11:26:48 | 显示全部楼层 |阅读模式
有时我们用NSis 打包EXE的时候需要获取操作系统的版本,我们可以参考下面的函数
- t# H: z& u7 G! F& h4 N! M' _# I, [) o( W( T% @
调用方式:5 W1 T3 x' j2 V3 ]2 [3 }( _& O
* h  F3 {; g2 l4 t- [# \4 _' h9 r. d' V
call GetWindowsVersion! x/ x" l, P6 V# X1 N/ q+ ?
  Pop $R0# \+ x- D* ?5 Z* {, V  i: V! i

( H; T- M8 J# ^+ x! p9 O9 o# l
; [3 O: w( s6 r+ q( P3 S# K' @7 J;获取操作系统类型1 u0 T, Z: M* f. ?8 Z+ u* {$ y
Function GetWindowsVersion
% d7 W/ V+ `) A6 JPush $R0; z9 D9 L0 A, L8 r
Push $R1
# l) v' h5 ~' C7 w7 J& Q+ bClearErrors
7 Y- R) F" }8 w* D& e' {ReadRegStr $R0 HKLM \
. i# l+ F6 A6 [) w( p"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion# w+ E* G* g! [6 t" ]+ P
IfErrors 0 lbl_winnt% x  ]! p. I- D( F9 f
; we are not NT# V! d+ p+ Y' E5 c4 G) o4 D. G$ \* t
ReadRegStr $R0 HKLM \* Z( W# ~, H* z: z1 F& ^
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
+ u6 ?7 Z+ o" N* _* A$ F! J
9 L4 p2 O( ?) G( A% E9 FStrCpy $R1 $R0 12 E( x. b  v% h7 m( W4 h- r
StrCmp $R1 '4' 0 lbl_error4 o/ L: K8 O7 ^# F5 S

4 C" q8 u! y5 I; iStrCpy $R1 $R0 3. P( v0 m2 _( L6 U5 Y& b
) g$ a: J5 I2 U
StrCmp $R1 '4.0' lbl_win32_95
8 B8 T5 V9 W7 g8 u- a. ?StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98+ ?" U0 n. I' `+ G! H) n
- }& j8 E' {' K! e
lbl_win32_95:
2 u7 e- X5 c' k! p- \StrCpy $R0 '95'
2 h& m; q3 `$ n. _7 s/ r2 W9 AGoto lbl_done
" @+ i2 W8 I/ D! M9 Y! `8 ~" I! C2 ?# E0 \
lbl_win32_98:
( \# ~) S; k7 N* H' H, P6 dStrCpy $R0 '98'
5 k+ L8 u3 v1 s, C3 |7 b2 {$ U4 WGoto lbl_done& v. u) E1 k. ^# _
8 J% P  r/ T0 {4 u3 y* X
lbl_win32_ME:
9 P# J5 Q( z; p' b# F, j! G: JStrCpy $R0 'ME'
8 I/ ?7 F" x0 i2 N+ iGoto lbl_done0 _" ^, v/ T" s, W' V1 u) J

) f9 R& u+ n2 X: }  @: rlbl_winnt:
2 ^; i4 g4 _" y3 m% X
3 f8 R. J+ K" w4 fStrCpy $R1 $R0 15 v) _* \3 s; S; ~8 _0 @6 y8 m

3 m* J4 d! T( nStrCmp $R1 '3' lbl_winnt_x
1 x8 x- z- A+ w/ w, m  iStrCmp $R1 '4' lbl_winnt_x! }) b+ H7 N* c, k
# z7 J/ }4 N, y6 X0 H0 r4 x$ W9 f
StrCpy $R1 $R0 3  G# }$ R1 P% U
1 ~  x; K+ C+ _( U3 e% T
StrCmp $R1 '5.0' lbl_winnt_2000- }3 M( h5 N, c9 t) i. Z  p  ]
StrCmp $R1 '5.1' lbl_winnt_XP$ L/ J; a/ `; N0 N0 N
StrCmp $R1 '5.2' lbl_winnt_20039 p1 h  v% _" B0 N, c1 {% _  D0 S
StrCmp $R1 '6.0' lbl_winnt_vista3 H$ b6 g, r+ O% e6 w& z
) b+ w5 Z. G3 y4 d
StrCmp $R1 '6.1' lbl_winnt_win7 lbl_error- t! q5 f$ v2 h0 v; j3 h
, D. L+ M: w' o# G& w! z  a( M
lbl_winnt_x:
" z' |  M4 ]" k/ t. rStrCpy $R0 "NT $R0" 61 q8 m3 o7 L5 T* a$ i
Goto lbl_done& g; h6 _1 T" z( d5 \+ g' S7 X
  z+ w6 K- d6 T8 k: p; P, s2 H
lbl_winnt_2000:
; g" g' h. v7 CStrcpy $R0 '2000'
3 Z) S- c: q/ e; MGoto lbl_done
. V2 P9 w# E/ D" V* P9 n0 D
& u) P: }7 y! Y  v- Y+ h7 }1 Olbl_winnt_XP:
! p2 L0 @) B5 S6 EStrcpy $R0 'XP'
4 ?; E; M: o" K% u5 KGoto lbl_done
3 g& u) \9 s$ z' P1 y& ^7 y
, S9 R$ m5 C5 G7 `$ klbl_winnt_2003:) C. {3 M; K: `" T8 `9 S
Strcpy $R0 '2003'/ C" J& P! j- j* Y  o7 ^7 @. [
Goto lbl_done
: N: f& f3 R% I1 x+ \4 }, ~2 l# n, E4 k
lbl_winnt_vista:
4 T4 M0 w" _+ R* @% _8 p* x- I- ^Strcpy $R0 'Vista'2 k/ c$ L6 V  H$ [
Goto lbl_done* Z& w+ {) i/ P; ^6 ]7 r' C! E

5 Z0 a  ^% R' M$ X9 ^lbl_winnt_win7:- o& a; \6 X9 l6 `- `
Strcpy $R0 'Win7'0 o9 [6 M" c: y: w( m0 E
Goto lbl_done' E. `$ \' Z& t

( P" y6 y4 L* A# K
- _& C+ @; h% q7 Z' J+ mlbl_error:3 U5 s0 Y9 F0 c
Strcpy $R0 ''9 ?* L2 q) M3 F
lbl_done:
; L+ S& W! `* Q/ {$ {9 j
" e) Q* L% [  V; Q  P4 UPop $R1
, p( V* q: j; g$ G& v/ N" KExch $R00 @) b6 R0 r0 A5 H& Z

4 o4 x: o# A% E  T, |; \) kFunctionEnd
9 b$ a1 ^0 Z. H6 s
后期资源网,打造没有广告、免除隐藏回复的全开放式影视技术交流平台。 你的所求就是我们服务的宗旨!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-23 19:12 , Processed in 0.116670 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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