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

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

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

[复制链接]
发表于 2013-1-4 11:26:48 | 显示全部楼层 |阅读模式
有时我们用NSis 打包EXE的时候需要获取操作系统的版本,我们可以参考下面的函数
& X' D  f9 u( b  _2 M; j
- Z8 ^( T' ?) C4 k3 i% M& n4 I- x3 I调用方式:
! g4 I; A' m. ^  y5 g+ i5 T) x
( O: P- A9 u5 P  t2 U9 ?1 Wcall GetWindowsVersion
& z" N2 q+ Z, f- {; O1 k6 ^+ u& F  Pop $R09 M; L6 J# y) b  V0 }4 k! \# I& L
6 t& \4 W2 @( o+ y" m

5 l2 E/ C  r9 `0 G;获取操作系统类型
% d% O, I; N' a6 uFunction GetWindowsVersion
" Y( {& [! _# N8 BPush $R0
, D% z2 }* h+ p6 i4 S! IPush $R14 I$ [; d2 ]- M, }; q% I
ClearErrors. T5 h5 Y0 j, ^- _4 G# ~& `! {
ReadRegStr $R0 HKLM \
* j$ C1 @4 J8 N' l1 T9 s7 N"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
) S# k) j$ |# v0 s4 f$ w/ l. o5 @# w9 yIfErrors 0 lbl_winnt
' N, Z* _0 M/ x/ w( j; we are not NT! m; F- I' L+ J& D1 W+ \% [) V
ReadRegStr $R0 HKLM \4 U$ D5 ~4 O5 T4 [( C
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber- I! x3 k( V, q

" u4 i" U" F* r& j  [3 XStrCpy $R1 $R0 1. E! e- ^; [2 y( {$ q0 Q8 S, D
StrCmp $R1 '4' 0 lbl_error" ~# \5 w# w7 _/ [5 M. Q( F$ ?: C' k, D

# X) W0 k2 h: M7 p9 W6 e2 ^) v5 `6 g, }StrCpy $R1 $R0 35 d- b  a9 V& L% x7 B6 k4 L
2 X+ l0 F% z4 o# m! X; E9 S. s, J
StrCmp $R1 '4.0' lbl_win32_95
! a# \- U( v5 c( A5 ]7 \2 N1 IStrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
+ r6 p3 g/ V$ d) ]' N2 |3 ^9 h. N2 ^- L
lbl_win32_95:' U! V9 j6 {, E, l7 `
StrCpy $R0 '95'6 d2 e1 `, k. B0 \
Goto lbl_done
0 w  {/ x& @4 E, B# p* f. d/ d# d. D7 s2 Y1 [: c
lbl_win32_98:/ W' ~& V$ w/ n8 D6 G) W
StrCpy $R0 '98'
  m0 O. N) s+ LGoto lbl_done
) u" e. _" [: \8 ^0 I9 E% v' s; c
( Q4 t. b" g- k4 ]2 Albl_win32_ME:
  r6 F: Y, B  w& C  n7 tStrCpy $R0 'ME'* ?9 v! a! `4 \0 Y; v
Goto lbl_done7 }; j( r4 Y; l

- ]7 d. P# p2 d) j2 z9 h5 V& Mlbl_winnt:7 f0 o3 s+ S* ~* m- a
  z  ^7 Y& o5 D* u$ S  _
StrCpy $R1 $R0 1  X$ s& e! y" V- a: I3 l# Z6 d

& B$ Q; ]7 K3 p# t% N# K+ HStrCmp $R1 '3' lbl_winnt_x
! U+ ]# S, v) sStrCmp $R1 '4' lbl_winnt_x
# q8 P: E( A& m5 j9 q1 i. z* ?7 v5 l/ C4 j* ?
StrCpy $R1 $R0 3
8 ^/ P$ S; Z& H1 u
) S4 j! u( h1 _" P7 Y- l5 QStrCmp $R1 '5.0' lbl_winnt_2000* t0 Q4 R9 ], J# k+ S& e: D( T) ]7 u
StrCmp $R1 '5.1' lbl_winnt_XP5 c% q( L/ |$ ]' o; H% Y
StrCmp $R1 '5.2' lbl_winnt_2003
$ v0 A; h6 U4 O+ V( f" ]1 d0 t$ KStrCmp $R1 '6.0' lbl_winnt_vista
2 W7 z, U2 T4 `3 z# \
; l' }1 U' k% l2 uStrCmp $R1 '6.1' lbl_winnt_win7 lbl_error
! Z: c5 z- b* ]7 y# O$ s2 [
& L; L" V8 ^! L; Hlbl_winnt_x:
. t' ?3 ?; u; A2 W: BStrCpy $R0 "NT $R0" 6; F- K! D" q) _! o* C1 o
Goto lbl_done
3 G7 z7 A4 D( }- |2 k, K0 U6 ^- b% f. r' [6 z2 i
lbl_winnt_2000:/ J2 c  k9 p- o6 Q$ g) p4 {! e
Strcpy $R0 '2000'
: X, [0 g" ]% Z* NGoto lbl_done7 v' R8 s$ O+ a/ p% N

6 _! Q- p5 m! T. S7 V. Elbl_winnt_XP:
8 P8 {7 t- R4 L2 C- NStrcpy $R0 'XP'
2 r' d# K5 Y1 C' lGoto lbl_done( g/ q" L2 t3 G, G# @- H

$ t6 ~. X" l! @) klbl_winnt_2003:
7 b+ C/ L2 @) _! ]5 `Strcpy $R0 '2003'
% z7 @; p6 y4 R( GGoto lbl_done. a2 j, W/ Y1 _! _8 T# d, W
8 [1 F" G! Q" R
lbl_winnt_vista:/ b: K3 z; \4 E( H: }
Strcpy $R0 'Vista'
! W# i" h8 I( c' X' S% FGoto lbl_done1 A- H0 Q2 y! E

8 s1 [+ D7 E- `  W+ l; \7 T# dlbl_winnt_win7:
' f$ n9 |. n/ ~4 r. RStrcpy $R0 'Win7'
  E+ F! p1 W* G5 s1 eGoto lbl_done) C' ^: l, f2 ]8 [: E) U2 v: [! W# U
0 h( m8 \  O5 t7 r- y( s

$ h& J  ^( {/ D" J4 J; Llbl_error:
* J3 n4 I$ L. h- sStrcpy $R0 ''. l: S+ T, v) w" c
lbl_done:
9 i9 N5 B. ]. \0 A
* R  w5 {: Y" v0 ?% E2 w4 fPop $R1# s3 U6 {' }) d. T3 w8 }- H
Exch $R00 j) M: {, N4 I7 a) o1 m$ H
9 @! h5 `/ S0 Y3 g! `/ N2 d
FunctionEnd6 B# F8 k5 }% W, x) P. e# ~
后期资源网,打造没有广告、免除隐藏回复的全开放式影视技术交流平台。 你的所求就是我们服务的宗旨!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-3 08:52 , Processed in 0.118667 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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