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

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

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

[复制链接]
发表于 2013-1-4 11:26:48 | 显示全部楼层 |阅读模式
有时我们用NSis 打包EXE的时候需要获取操作系统的版本,我们可以参考下面的函数
% V  U/ @0 k- n% S1 X
7 c8 M8 K% ]# @$ t调用方式:
7 y* q  T9 ]6 x; q' S: t& \8 t. j3 G- e; S' E
call GetWindowsVersion% m# Y( ]  D- S6 P# K6 J8 R5 G, i
  Pop $R0
! J) m- a# n7 q
* U2 X! `4 {1 h
( a1 h. G3 ^) z2 i- ?3 Y7 a8 J;获取操作系统类型
+ b- ?; C! S; j! Y$ L% ^5 t9 IFunction GetWindowsVersion
; S8 f/ ]2 E9 ~5 R7 S. J4 EPush $R0  A. Y# T9 J+ x# W, j1 z
Push $R1. G3 x1 k8 X; M( E$ D4 {& H, T
ClearErrors% h2 R7 d& F, x( K5 d
ReadRegStr $R0 HKLM \
/ z  c. W& g% t& O: Q' I: J. d& n+ J"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
( y1 C2 ]' |4 f; UIfErrors 0 lbl_winnt7 u2 [. e5 ^; R3 F- z* \
; we are not NT) a) ?, C( Q" `0 v: a8 I
ReadRegStr $R0 HKLM \$ X  U  Q: A- ?3 j( P3 X
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber' n8 O3 n. W/ Q/ U" I6 C3 a

9 Z' m4 K0 M. T3 c0 i  Z; J( r* kStrCpy $R1 $R0 1
2 r! \  i7 U7 C& ~StrCmp $R1 '4' 0 lbl_error
6 @* s# ]! X+ M+ ?$ W$ c5 h; ]
6 y# ^+ h6 R3 C4 I+ H5 jStrCpy $R1 $R0 3
  A! Y1 z, E2 ]3 s* N7 z+ e  ^; T4 ?  z% ?9 s: [
StrCmp $R1 '4.0' lbl_win32_95/ Q( b: B' o7 j1 p( {
StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
, q, `9 K4 H  Y+ ?, r( o
8 V- a* V8 n5 }9 x4 _& nlbl_win32_95:
% G( M5 d: K9 f7 TStrCpy $R0 '95'# K( |, o) E# F8 S: X3 j8 @& s
Goto lbl_done
; E+ J3 l" e/ u' e1 V: d. H% V, L
% }& o3 {9 {+ H# P. p- Z( Xlbl_win32_98:0 c  U! v7 h9 y# W% k5 s, ?
StrCpy $R0 '98'
5 P" A3 e* I$ vGoto lbl_done! I: N6 \* k5 R+ P. |# n
- a8 z9 ]& _- S7 K4 W
lbl_win32_ME:
& }( [* x1 j5 z+ Z) i8 ?/ }5 y$ }; GStrCpy $R0 'ME'
' ]/ J! S7 j. U/ wGoto lbl_done
7 f  K& l* V; X  p2 g: w, O
" {7 G6 V7 t8 Qlbl_winnt:
7 @8 p) m- V9 D9 g( B$ |7 K6 t9 A+ f: q& r
StrCpy $R1 $R0 1% q8 e. K5 a4 ^! ~3 j6 N: Q
( q  P- h9 I9 _0 o0 v
StrCmp $R1 '3' lbl_winnt_x1 |4 ]9 F2 E3 ^7 b- N2 u! M
StrCmp $R1 '4' lbl_winnt_x
0 j$ N$ c! [& y+ S) ]5 [( M3 F
! R0 |% L" `7 S/ R8 eStrCpy $R1 $R0 3
- i6 M9 |4 ]3 p* i. f% S
) b& e: U9 W% UStrCmp $R1 '5.0' lbl_winnt_2000
' S) x4 B( Y& `  D  [' sStrCmp $R1 '5.1' lbl_winnt_XP
; c0 x( [. b# O0 r" ~9 v6 h0 x' r3 PStrCmp $R1 '5.2' lbl_winnt_2003
  X8 A+ G. X- t/ g: Q9 @$ CStrCmp $R1 '6.0' lbl_winnt_vista
: _/ i$ e: g- b6 n. m2 u1 n  J! ]9 Y; z! G1 n+ j2 s& H4 J$ J
StrCmp $R1 '6.1' lbl_winnt_win7 lbl_error6 P( f: u6 ^, C7 k/ s9 R7 j

# m) Z% g/ N4 J+ {/ E$ p1 H* {, `lbl_winnt_x:
% y; Z8 \$ Y: [; A& p2 \StrCpy $R0 "NT $R0" 6% j. v0 _* g& o' Q8 s3 I' r
Goto lbl_done/ \3 y9 }4 r; D$ h

1 T0 i9 N' K3 z3 f5 m3 J& Blbl_winnt_2000:2 V" S2 D) t4 K. g
Strcpy $R0 '2000'
0 V  x6 J/ o" _5 R6 _Goto lbl_done
' m3 Y% o& O( V- q& u2 r1 j7 E. J# S/ E$ i. ^( E6 {+ J3 y. ^* `0 |
lbl_winnt_XP:+ D9 H+ P- f6 E  P. W- d
Strcpy $R0 'XP'9 H5 h. w$ \4 k/ N, f9 S
Goto lbl_done2 c2 B+ P+ I/ _* O# o& W

7 J. ]; ^% E2 O2 }; Qlbl_winnt_2003:
* ], {' T5 @, c2 C# g- ^Strcpy $R0 '2003'
  d$ ?/ K& F; O6 W) }& [, z& pGoto lbl_done
+ X: ~9 S/ E0 |
0 Y: W! E- ?4 v- y0 llbl_winnt_vista:: K, N$ l$ w: s
Strcpy $R0 'Vista'" Z% k4 B" F5 m$ I  n4 f) ?) z7 ~
Goto lbl_done
- s" C* \6 C+ q0 S. W( ]  O$ T5 I$ |9 u6 |5 ?( c3 g8 P8 I
lbl_winnt_win7:
9 W7 I' u+ V' W3 C# J5 ]Strcpy $R0 'Win7'
7 C' S+ o9 J( a- f* y7 zGoto lbl_done9 g8 L6 e+ S* Q  h6 o2 A

* B- U! z- H" q9 v
. t4 ?, h+ I6 tlbl_error:) R3 `& U, _* T( ^+ ^
Strcpy $R0 ''
' ^. y/ R* u2 i& i/ plbl_done:: k. b: N" n/ W. b( k

1 ~- R* M' W  A. IPop $R1
7 Y- Q7 R- w) f& MExch $R0
( ]9 f6 F2 M5 L. `2 [1 F! [) T1 m: p0 o) h' O, N
FunctionEnd. h5 t0 Z0 Q; a
后期资源网,打造没有广告、免除隐藏回复的全开放式影视技术交流平台。 你的所求就是我们服务的宗旨!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-18 17:05 , Processed in 0.111384 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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