cpudesc为NSIS提供获取cpu信息的插件

/*
cpudesc为NSIS提供获取cpu信息的插件
ITELP: Values range [0..4].
 0: Not a genuine Intel CPU (or a very, VERY old one).
 1: Pentium or Pentium with MMX.
 (Check the MMX field if you want to know about the CPU's MMX support.)
 2: Pentium Pro, II or Celeron.
 (May or may not have MMX - PPros don't, the others do. Check the MMX field.)
 3: Pentium III or P3 (old) Xeon. (Always has MMX and SSE.)
 4: Pentium IV or (new) Xeon. (Always has MMX, SSE and SSE2.)
AMD: A bit more complicated...
 000: Not an authentic AMD CPU (or a very, VERY old one).
 Kdd: An old K-series. "dd" is either 05 for a K5 or 06 for a K6.
 (Pentium compatible. K5s have no MMX or 3DNOW. K6s have standard MMX,
 and later models have basic 3DNOW.)
 Add: An Athlon or a Duron. "dd" is the model number (goes from 01 to 10).
 (Pentium II compatible. All of these have extended MMX and extended 3DNOW.
 None have any SSE.)
 Odd: An Opteron. "dd" gives the model number.
 (Pentium IV compatible. This CPU's got everything, it seems.)
PPRO: Values range [0..1].
 0: Not compatible with the Intel Pentium Pro processor.
 1: Compatible with the Intel Pentium Pro processor.
MMX: Values range [0..2].
 0: No MMX support.
 1: Standard Intel MMX support.
 2: Standard MMX support plus AMD MMX extensions.
SSE: Values range [0..1].
 0: No SSE support.
 1: Supports SSE (Intel's Streaming SIMD extensions, P3-style).
SSE2: Values range [0..1].
 0: No SSE2 support.
 1: Supports SSE2 (Intel's Streaming SIMD extensions 2, P4-style).
3DNOW: Values range [0..2].
 0: No 3DNOW support.
 1: Standard AMD 3DNOW support.
 2: Standard AMD 3DNOW support plus AMD 3DNOW extensions.
ARCH: Values range [00..10].
 00: 32-bit Intel or compatible
 01: MIPS (did NT 3.5, apparently)
 02: DEC Alpha. (Yes, DEC. I can't bring myself to call it COMPAQ.)
 03: PowerPC
 04: SHX (?)
 05: ARM (Acorn Risc Machine, I presume. Running Windows?)
 06: 64-bit Intel.
 07: 64-bit Alpha
 08: MSIL (?)
 09: 64-bit AMD
 10: 32-bit Intel doing Win64 (?)
LEVEL: "Processor level", like what you see in the main processor environment
 variable. Sort-of useless for Intel architecture.
NCPU: The number of processors available. (Affected by that "Hyper" business
 that the new XEONs can do, I think.)
MHZ: The CPU's internal clock speed in MHz (Approx).
RAM: The amount of RAM (physical memory) in megabytes (rounded).
*/
!AddPlugindir "."
OutFile "cpudesc.exe"
Section ""
 cpudesc::tell
 Pop $0 ;full identification string in $0
 MessageBox MB_OK "$0"
 StrCpy $1 $0 4 90 ;pull out four characters after RAM=
 IntOp $1 1$1 - 10000 ;ignore any leading zeros, the number is not octal
 MessageBox MB_OK "Ram (megs): '$1'"
 StrCpy $2 $0 5 80 ;pull out five characters after MHZ=
 IntOp $2 1$2 - 100000 ;ignore any leading zeros, the number is not octal
 MessageBox MB_OK "CPU speed (MHz): '$2'"
SectionEnd
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容