|
据我所知,大部分PE的系统属性都是显示不了计算机型号和cpu信息的
有什么简单快捷的方法能实现这个功能吗?
答案是有的,这里提供几个方案,请自行选择。
方案一:此方案为slore原创,由于帖子被合并了,所以在这里一并列出
此方案仅能显示cpu信息,优点是利用系统本身的功能,不占用oeminfo的字段
方法是直接修改sysdm.cpl的指定字节
xp的sysdm.cpl 搜索
CC 8B FF 55 8B EC 81 EC 24 04 00 00 83 7D 18 00
然后将最后一个00改为02即可。
2003的sysdm.cpl 搜索
8B 75 1C 89 85 E8 FB FF FF 8B 45 0C 33 DB 39 5D 18 57
改为
8B 75 1C 89 85 E8 FB FF FF 8B 45 0C EB 03 39 5D 18 57
方案二:纯注册表方案,不需要额外的软件支持,缺点同方案一,只能显示cpu信息
根据slore提供的注册表信息,对其进行后期处理后利用OEMINFO.INI显示出来,此方案无需改动sysdm.cpl,且显示效果较为美观
首先创建一个cpu.cmd文件,放于system32目录下,源代码如下:
cpu1.rar
(659 Bytes, 下载次数: 224)
@echo off
::用于获取CPU信息,并显示在系统属性页面
::NicTense 写于 2010.03.12
setlocal enableextensions
setlocal enabledelayedexpansion
for /f "tokens=1,2,*" %%i in ('reg query HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0 /v ProcessorNameString') do (
set t=%%j
set t=%%k
)
set t=%t:(TM)=%
set t=%t:(R)=%
set t=%t:)=%
set t=%t:(=#%
set c=
for %%k in (%t%) do if "!c!"=="" (set c=%%k) else set c=!c! %%k
if not "%c:~52%"=="" set c=%c:~0,52%
set t=%c%
set n=0
:loop
set /a n+=1
if /i %n% GEQ 20 goto next
if "%t:~-1%"=="#" goto next
set t=%t:~0,-1%
goto loop
:next
if "%t:~-1%"=="#" set c=%t:~0,-1%
if not exist OEMINFO.INI (
echo [General]>OEMINFO.INI
echo Manufacturer=%c%>>OEMINFO.INI
goto end
)
if exist temp.txt del temp.txt >nul
for /f "delims== tokens=1,*" %%i in (OEMINFO.INI) do if /i "%%i"=="Manufacturer" (
echo Manufacturer=!c!>>temp.txt
) else (
set t=%%i
set t=!t: =!
if "!t:~0,1!"=="[" ( echo %%i>>temp.txt ) else echo %%i=%%j>>temp.txt
)
move /y temp.txt OEMINFO.INI >nul
:end
接下来最后的一步就是在pecmd.ini中添加一句,让系统在启动时执行(加在启动项里也一样)
EXEC !%SystemRoot%\system32\cpu.cmd
方案三:CPUZ增强方案,此方案需要cpuz这个cpu检测软件,优点是可以显示计算机型号等信息
由于大部分PE中都集成了CPUZ这个CPU系统检测软件,利用它可以很简单地实现这一功能,
只要创建一个CMD文件,命名为cpu.cmd,放入system32目录下,代码如下:
cpu.rar
(679 Bytes, 下载次数: 237)
@echo off
::用于获取计算机型号和CPU信息,并显示在系统属性页面
::NicTense 写于 2010.03.10
setlocal enabledelayedexpansion
set c=
%SystemDrive%\tools\cpuz\cpuz.exe -txt=temp
for /f "tokens=1,*" %%i in (temp.txt) do (
if "%%i"=="Specification" set t=%%j
if "%%i"=="product" set m=%%j
)
set t=%t:(TM)=%
set t=%t:(R)=%
set t=%t:)=%
set t=%t:(=#%
set c=
for %%k in (%t%) do if "!c!"=="" (set c=%%k) else set c=!c! %%k
if not "%c:~52%"=="" set c=%c:~0,52%
set t=%c%
set n=0
:loop
set /a n+=1
if /i %n% GEQ 20 goto next
if "%t:~-1%"=="#" goto next
set t=%t:~0,-1%
goto loop
:next
if "%t:~-1%"=="#" set c=%t:~0,-1%
if exist temp.txt del temp.txt >nul
if not exist OEMINFO.INI (
echo [General]>OEMINFO.INI
echo Manufacturer=%c%>>OEMINFO.INI
echo Model=%m%>>OEMINFO.INI
goto end
)
for /f "delims== tokens=1,*" %%i in (OEMINFO.INI) do if /i "%%i"=="Manufacturer" (
echo Manufacturer=!c!>>temp.txt
) else (
if "%%i"=="Model" (
echo Model=!m!>>temp.txt
) else (
set t=%%i
set t=!t: =!
if "!t:~0,1!"=="[" ( echo %%i>>temp.txt ) else echo %%i=%%j>>temp.txt
)
)
move /y temp.txt OEMINFO.INI >nul
:end
注意红色部分要换成实际的路径,这里利用了OEMINFO.INI这个文件
所以system32中如果有这个文件,必须符合规范,即必须存在这几行
[General]
Manufacturer=
Model=
接下来最后的一步就是在pecmd.ini中添加一句,让系统在启动时执行(最好是跟在shel后面,这样不会感觉到延迟,或者放于启动项)
EXEC !%SystemRoot%\system32\cpu.cmd
(注:如果你的cpuz.exe是在外置包中,则上面这行必须加到加载外置包的ini文件中,若外置包为wim格式,必须
在moun语句之后,即确保cpuz.exe可以访问之后,并请对应修改cpu.cmd中的路经,若pe中没有pecmd也
没关系,只要让pe在启动时执行这个批处理即可)
好了,大功告成,打开系统属性看看吧,测试成功了不妨抓个图贴上来,看看显示的什么
下载 记得先打开修改cpuz.exe的实际路经,参见上方红色字体部分
如果将代码中用蓝色粗体表示的c和m对调,可交换cpu和计算机型号的显示位置,见下图
下载这个版本:
cpu1.rar
(679 Bytes, 下载次数: 204)
记得打开修改cpuz.exe的实际路经,参见上方红色字体部分
原文出处:http://hi.baidu.com/nictense/blog/item/c6ce6d1ef922c3fee0fe0b5d.html
ps: 如果sysdm.cpl未经处理,由于每行显示数字有限,方案三的第二个版本中cpu信息可能会显示不完全,解决方法:
修改sysdm.cpl的101对话框的以下2行,别忘了重新编译(工具可用reshacker)
CONTROL "", 63, "Link Window", 0x50000000, 141, 149, 110, 18
CONTROL "", 64, "Link Window", 0x50000000, 141, 170, 110, 9
将其中的110改大一点就可以了,改为160以上应该就可以了,但是要注意位置是否允许
未修改的sysdm.cpl该位置左侧有一大图片,所以你只能调整布局,或者将图片位置改小
要不就采用方法1
附上一个改好的sp3的sysdm.cpl sysdm.rar (81.08 KB)
方案四:方案一和方案三的结合体,利用方案一解放出oeminfo.ini的一个字段,多出来的这个字段可以用显示显卡信息或自定义信息
由于这个方案操作起来比较麻烦,具体方法不写了,有兴趣的可参考方案一和方案三自行编写,或参考TangoPE的0311Patch中的sysdm.cpl和cpuz.cmd
显示效果如下:
本人近期发布帖子汇总,方便查询
【下载】Tango WinPE 2010 虎年珍藏版,32M新版XP3内核PE
【原创】为你的PE系统添加计算机型号和CPU识别功能
【原创】TXTSETUP.SIF减肥和检查错误批处理TSLite
【原创】玩转PE墙纸(开机随机显示墙纸+一键切换循环显示)
【下载】通用型PE一键美化工具PEBeautify+TangoPE美化包(PE美化,只需10秒)
【分享】利用PECMD和MSPAINT实现零体积一键截图功能
【原创】shell32.dll的终极精简&美化教程 (这个是很久前的了)
[ 本帖最后由 NicTense 于 2010-3-23 18:57 编辑 ] |
评分
-
查看全部评分
|