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
@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
EXEC !%SystemRoot%\system32\cpu.cmd
@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
[General]
Manufacturer=
Model=
EXEC !%SystemRoot%\system32\cpu.cmd
原帖由 NicTense 于 2010-3-9 16:14 发表
cpuz判断单双核很简单,但是cpuz的运行在加载notskrnl.exe之后,这是个矛盾
其实我不知道pe判断单双核有什么意义,除非是用来看电影玩游戏什么的,如果就维护而已,只要能启动到基本功能状态就够了
原帖由 NicTense 于 2010-3-9 16:05 发表
你的sysdm.cpl 显示这2行信息的地方设置得短了点,看样子应该是100左右,信息没显示完
最好设长一点,200-220就差不多了
原帖由 964220 于 2010-3-9 22:04 发表
楼主上次进行了这方面调查,原来目的在这里,开创PE识别计算机型号和CPU的先河。明白了调查目的。把编程运用得随心所欲,真是聪明极了。
这些源代码怎样看呢?有没有教材?我现在看不懂。
原帖由 NicTense 于 2010-3-9 22:24 发表
呵呵,因为我用过的pe没几个,不知道是只有我的pe不显示,还是都不显示,所以就调查调查,我比较喜欢干别人没干过的事情
教材,你指cmd批处理吗,如果是的话,看这个
http://bbs.wuyou.net/viewthread ...
原帖由 NicTense 于 2010-3-9 22:24 发表
呵呵,因为我用过的pe没几个,
不知道是只有我的pe不显示,
还是都不显示,
所以就调查调查,
我比较喜欢干别人没干过的事情
http://bbs.wuyou.net/viewthread ...
原帖由 NicTense 于 2010-3-10 22:36 发表
接下来最后的一步就是在pecmd.ini中添加一句,让系统在启动时执行
QUOTE:
EXEC !%SystemRoot%\system32\cpu.cmd
这个做了没
原帖由 wenjx5228 于 2010-3-10 22:39 发表
哦,
欠了这步啊!
没有,
补上看看!
这句的位置有讲究么?
放:
EXEC !=CMD.EXE /C "REGSVR32 /S X:\WXPE\SYSTEM32\SEND.DLL"
后面,
可以忽略延迟是吧?
谢谢天使!
原帖由 wenjx5228 于 2010-3-10 22:52 发表
这样对么?
FIND Explorer.EXE,!TEAM SHEL %WinDir%\EXPLORER.EXE|LOGO|TEXT
EXEC !%SystemRoot%\system32\cpu.cmd
原帖由 azhong123456 于 2010-3-10 23:12 发表
1.ExeScope 下载地址:http://www.onlinedown.net/soft/9594.htm
2.Replacer 下载地址:http://www3.telus.net/_/replacer/Replacer.zip
3.Regedit 这三个都可以
原帖由 NicTense 于 2010-3-9 16:14 发表
cpuz判断单双核很简单,但是cpuz的运行在加载notskrnl.exe之后,这是个矛盾
其实我不知道pe判断单双核有什么意义,除非是用来看电影玩游戏什么的,如果就维护而已,只要能启动到基本功能状态就够了
原帖由 lxl1638 于 2010-3-10 23:26 发表
注册表中有更详细的信息,不知位置是否固定:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\GenuineIntel_-_x86_Family_1
原帖由 NicTense 于 2010-3-11 00:40 发表
如果cpuz在外置包里,
那行不能加到pecmd.ini了
要加到加载外置包的ini文件里了,
放到moun语句后
路经改为moun后能访问到cpuz的实际路经
这种情况下由于cpuz不在内核中,
而在外置包中,
所以必须加载了外 ...
原帖由 wenjx5228 于 2010-3-11 01:10 发表
照道理,
应该可以将OP.WIM中的cpuz提取,
放到SYSTEM32根目录下,
然后再依天使指示,
应该没问题呃!
但天使曾提出水先生的SYSDM.CPL设置问题,
个人推测难道水先生的PE,
还要设置SYSDM.CPL么?
原帖由 NicTense 于 2010-3-11 11:10 发表
呵呵,这个版本的sysdm.cpl被我改的有点特殊,第一项跑最上面去了,本来是为了方便更新版本号
今天(最迟明天)我会发布更新补丁,到时候更新一下
据我所知,大部分PE的系统属性都是显示不了计算机型号和cpu信息的,因为缺乏相关驱动
而添加这些驱动用处不大,麻烦却不小
原帖由 NicTense 于 2010-3-12 00:17 发表
方法是没错的,220足够显示52个字符以上了,绝对足够了
我手头上没有amd的cpu,
等有空我再研究一下,
有可能抓取别的字段可以显示这个频率
原帖由 NicTense 于 2010-3-12 00:24 发表
在cpuz.exe的目录建一个批处理 test.cmd,
内容如下
cpuz.exe -txt=amdcpu
就一行,
保存,
执行它,
等几秒钟,
会生成一个 amdcpu.txt
把这个文件打包上传上来我看一下
2010-3-12 08:54 上传
点击文件名下载附件
下载积分: 无忧币 -27.6 KB, 下载次数: 61, 下载积分: 无忧币 -2
原帖由 NicTense 于 2010-3-12 10:55 发表
用这个替换你的cpu.cmd试试问题解决了没有
如果没问题我就将1楼更新为这个
增加一个判断,当cpu信息里面不包含频率时,从另外的字段获取频率值并加到cpu信息上去
84251
如果cpuz.exe在system32里 ...
原帖由 wenjx5228 于 2010-3-12 13:22 发表
谢谢!
但不知哪有问题,
换上你修改的CPU.CMD,
又无法显示了!
换回你昨晚提示后修改的CPU.CMD就能不完全显示
怪事。
天使请诊断!
原帖由 NicTense 于 2010-3-12 13:36 发表
没道理啊,
你确定cpuz.exe在system32目录下,
而且你下载了cpu.cmd之后路径没改,
即那行为
cpuz.exe -txt=temp
如果都没错的话,
没道理不显示阿
for /f "tokens=1,*" %%i in (temp.txt) do (
if /i "%%i"=="Specification" set t=%%j
if /i "%%i"=="product" set m=%%j
if /i "%%i"=="Stock" set f=%%j
)
set t=%t:(TM)=%
set t=%t:(R)=%
set t=%t:)=%
set t=%t:(=#%
if "%t:@=%"=="%t%" if "%t:Hz=%"=="%t%" (
for /f "tokens=1,2,3" %%i in ("%f%") do set c=%%j %%k
set t=%t% @ %c%
)
原帖由 NicTense 于 2010-3-12 14:31 发表
84276
想了一下,有一种可能,就是你的pe默认没有打开命令扩展
再试一下这个,直接替换,不用改路径
对了,测试的时候可以不用重新打包那么麻烦的
只要把这个文件复制到pe的system32目录下, ...
原帖由 slore 于 2010-3-11 20:39 发表
呵呵,记得注册表XP在这里
[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0]
"ProcessorNameString"=" Intel(R) Pentium(R) 4 CPU 2.20GHz"
那能否加点简单的驱动让他能识别, ...
原帖由 slore 于 2010-3-12 19:19 发表
我错了,其实你可以抛弃cpuz了。。。
注册表这个地方开始以为是你ISO里面的注册表,发现其实这里就是当前电脑的CPU信息!
我在不同的电脑上进PE这里内容是当前电脑的CPU信息。
所以不用cpuz了, ...
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) | Powered by Discuz! X3.3 |