CPUDesc plug-in: Difference between revisions
(made it clear the numbers are not part of the string returned by cpudesc) |
(resolve octal conversion issue) |
||
Line 30: | Line 30: | ||
Pop $0 ;full identification string in $0 | Pop $0 ;full identification string in $0 | ||
StrCpy $1 $0 4 | 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 | MessageBox MB_OK "Ram (megs): '$1'" | ||
StrCpy $ | 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 | |||
IntCmpU $ | MessageBox MB_OK "CPU speed (MHz): '$2'" | ||
StrCpy $3 $0 1 22 ;pull out one character after PPRO= | |||
IntCmpU $3 1 +1 +3 +3 ;pick a BLOG dep on PPro compatibility | |||
File /oname=blog.exe "blog_source_directory\blog_gen.exe" | File /oname=blog.exe "blog_source_directory\blog_gen.exe" | ||
Goto +2 | Goto +2 |
Revision as of 11:12, 28 August 2006
Author: menakkis (talk, contrib) |
Links
Cpudesc.zip (12 KB)
Description
Version: 1.2.
A plugin by Peter Mason (menakkis) that can tell you quite a lot about the cpu in the system your installer is running on.
It's uses one function called tell(). This DLL function returns a string giving some information about the CPU on the computer where your setup program's being run. This info string always has the same fields in exactly the same place, so it's easy to pull it apart. The info string looks like this:
INTELP=d AMD=add PPRO=b MMX=d SSE=b SSE2=b 3DNOW=d ARCH=dd LEVEL=dd NCPU=dd MHZ=ddddd RAM=dddd
"d" means a decimal digit (0..9), "a" means a letter (A..Z), and "b" means a boolean digit (0 or 1).
For convenience, here's the string with running serial number below each character.
INTELP=d AMD=add PPRO=b MMX=d SSE=b SSE2=b 3DNOW=d ARCH=dd LEVEL=dd NCPU=dd MHZ=ddddd RAM=dddd 0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
In case the above line 'wraps, note that MHZ is at the 81st character at offset 80, and RAM is at the 91st character at offset 90
Usage
(e.g. in your Install section): unzip file and put cpudesc.dll in plugin directory
; ... cpudesc::tell Pop $0 ;full identification string in $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'" StrCpy $3 $0 1 22 ;pull out one character after PPRO= IntCmpU $3 1 +1 +3 +3 ;pick a BLOG dep on PPro compatibility File /oname=blog.exe "blog_source_directory\blog_gen.exe" Goto +2 File /oname=blog.exe "blog_source_directory\blog_pro.exe" ; ... the rest of your Install section
See cpudesc.txt for more info.