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

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

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

[复制链接]
发表于 2013-1-4 11:26:48 | 显示全部楼层 |阅读模式
有时我们用NSis 打包EXE的时候需要获取操作系统的版本,我们可以参考下面的函数
3 V) Q1 p' \5 R  V1 l% N9 W/ v
* Q: y* S8 Y2 \5 j调用方式:
5 [6 l4 L) ]! W) }( g4 n( G- P
call GetWindowsVersion
6 k2 i! F+ F3 g, x+ r( Z) u  Pop $R0$ Q. T, W. ], s& m( O

8 `+ D, J- B4 @0 M! ~8 O7 t3 u. D1 z' ^. n$ [
;获取操作系统类型
" _+ J& q. s" F0 {( P" \. {) l* _# qFunction GetWindowsVersion
) X: F; L$ p9 d2 c3 pPush $R0
$ |" J4 |! b7 \6 Y' d" n  ^Push $R1
# C% @# E+ @' n9 I6 WClearErrors
2 s( D4 b/ W1 |3 W- [* YReadRegStr $R0 HKLM \; M6 `9 |- F/ n* s; \9 n% w
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
' E) @2 a* r" Y% F: y8 i, T. wIfErrors 0 lbl_winnt. a7 {" R3 V; N; |& |
; we are not NT
2 B4 ^* @1 X2 e% qReadRegStr $R0 HKLM \  L+ M6 V) j8 I, d, F4 h# _
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
9 n0 q! L* b: L7 t/ }2 m0 N6 J
, m6 h: t$ }7 D0 y8 C( NStrCpy $R1 $R0 1- K( |% J% a7 h3 _
StrCmp $R1 '4' 0 lbl_error
9 g$ ]6 S- ^. r" q# d! s- i
# I) u) O9 C, ?9 p6 L# {' L  _StrCpy $R1 $R0 3
: f2 g9 z* {$ G9 }$ u; f& y& p- \5 |7 ~6 l4 T
StrCmp $R1 '4.0' lbl_win32_95
: f0 j+ |9 Q. Z* ~% ]StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
; R' b" J/ P1 T" z7 l) ]5 B% Q7 a+ N" K5 h# s
lbl_win32_95:9 K$ O4 R" Z/ f+ }( T
StrCpy $R0 '95'
& H+ m: z, i$ I/ T7 D1 zGoto lbl_done
8 V9 c. ^2 U0 j6 Q' J9 g9 x6 T1 H. @4 ?
lbl_win32_98:# \$ J4 l) ^; o: O$ S; r% H, W
StrCpy $R0 '98'
  M1 G, M2 X9 Q' ^0 n# x3 v8 b, jGoto lbl_done- r# x, Q/ E" P  |+ s% j8 _

" H0 c8 |8 Y1 C- ?+ _0 P4 dlbl_win32_ME:3 o( p* [. k1 X3 }! L
StrCpy $R0 'ME'9 m. T2 O0 o9 A9 v8 l
Goto lbl_done
9 D- U$ V" E+ E+ y% g9 e1 x5 W
- V' N6 t' P; u: z7 y9 Ylbl_winnt:# H! j* c$ s& |# q( R' J
7 V  A' i, I* I# j# X5 m, w
StrCpy $R1 $R0 1
0 Z6 K. B( o1 @+ I, T' u# u  e6 c$ b& r2 m5 d" A3 Q
StrCmp $R1 '3' lbl_winnt_x$ y+ N' V- M' H: B
StrCmp $R1 '4' lbl_winnt_x# h0 {" O# L8 c9 C/ T

7 Q: o! }9 C0 O/ g3 r$ ^# B: SStrCpy $R1 $R0 34 Q- m! K6 w# Q7 q2 f

4 u& Y2 J$ h& d9 ^( MStrCmp $R1 '5.0' lbl_winnt_2000
, V4 s6 f6 i1 YStrCmp $R1 '5.1' lbl_winnt_XP
0 d( c9 o2 B9 {  K! O% rStrCmp $R1 '5.2' lbl_winnt_2003* _& |9 _1 @" F. m. p9 w
StrCmp $R1 '6.0' lbl_winnt_vista1 x4 z/ b5 p$ d2 d! }/ a! {7 m- O
) Z- X' a0 @% B* o9 \, x
StrCmp $R1 '6.1' lbl_winnt_win7 lbl_error
7 h2 _- }6 w" O! x8 _: s0 _- b1 W! [# H: e% G
lbl_winnt_x:0 M4 x, g; f8 t  K5 o2 W/ L* g
StrCpy $R0 "NT $R0" 6
2 `( ^9 r. t# Q3 Y2 _4 YGoto lbl_done6 R# x( S9 Q1 b3 O$ i# r
4 t9 T4 i) W6 X0 t5 V) O+ |& U
lbl_winnt_2000:* @. U+ L8 E5 {/ R
Strcpy $R0 '2000'7 G. v# r0 L8 k
Goto lbl_done8 N* H- b. e3 t0 A+ o
( X! e- q. f6 v4 J) y& m
lbl_winnt_XP:
  d3 P! E2 V5 g3 u9 W/ n8 x/ a* {- r7 qStrcpy $R0 'XP'
/ C- A& j3 q6 j  w  W3 bGoto lbl_done' f6 H( H% H. }; o$ V, b% z: y
1 z7 P; i& Q- J( U, L+ U
lbl_winnt_2003:
% ^& Y% D% }# r6 h: E1 z' {" L/ gStrcpy $R0 '2003'% k# ]; A+ U2 y1 L
Goto lbl_done3 B* R& z; N, v9 }: G

. g/ X8 i: a. |8 P8 h" Olbl_winnt_vista:- w9 n# T3 q- S) N; O/ T! o
Strcpy $R0 'Vista'
' ~- `$ g9 C8 Y, d" z# \( qGoto lbl_done
6 O3 c! j6 k9 M" a
; J6 \; a( s: ^) Nlbl_winnt_win7:( ~! g+ _* A( `* J  |2 B% L6 h
Strcpy $R0 'Win7'
! E+ m+ p# @$ b" x# tGoto lbl_done
; m* ]' |- w% J% v# {! U/ B! y
. x( R) _9 c: w/ T
% r+ A2 [3 A5 Z6 e, t* qlbl_error:
5 P% _! ?, L* v9 ?6 [Strcpy $R0 ''
% d) t7 n! ]' i( O, A3 Q3 P0 B3 }9 dlbl_done:
# z! i& t1 z+ K5 B8 M' r3 `
+ _9 M3 G) e: q% B7 RPop $R1' N1 R2 R: G4 n/ E% f; y
Exch $R0# B9 V& [0 y' B% k+ S

6 a+ H) A: l' R1 cFunctionEnd
: X9 P1 ^, _8 x: T+ g
后期资源网,打造没有广告、免除隐藏回复的全开放式影视技术交流平台。 你的所求就是我们服务的宗旨!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-2 22:19 , Processed in 0.108731 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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