大富翁上有没有电脑硬件爱好者,能用DELPHI得到和改变硬件信息及设置的?(200分)

  • 主题发起人 主题发起人 weiliu
  • 开始时间 开始时间
W

weiliu

Unregistered / Unconfirmed
GUEST, unregistred user!
本人是一个电脑硬件爱好者,喜欢DIY,有兴趣的话,跟本人来讨论关于这方面的问题。也想一起讨论有关DELPHI得到和改变硬件信息及设置的技术,有熟悉硬件汇编的即为老师。
 
我也想知道!不过delphi好象对硬件控制的例子太少了;根本没办法了解更深!
 
楼上的,其实DELPHI能嵌入汇编已经是非常万幸了,但是,哪怕是汇编,我也很验证见到一些硬件控制方面的资料。比如,控制CPU电压,得到和控制CPU的外频及PCI频率等等。
各位如果有汇编方面的资料,也可以来这里探讨,本人也略懂一些。
 
你想干坏事呀?
 
很多骗子将垃圾机改成高档机,很多人上当
 
to 清新空气:
你认为我要这个就是为了干坏事吗?
我想自己写个软件超频程序不可以啊?
 
你要控制的东西,跟芯片有关,没有统一标准,所以超频软件都是针对芯片的,或者自己按主板选择,查找主板芯片的资料,慢慢研究。
 
kinneng,
谢谢,你说的我也知道,比如CLOCKGEN这样的程序,就采取了不同型号PLL来控制频率,这个资料肯定很难找,但是我现在只想得到CPU的外频和倍频都太困难。
 
各种主板,没有统一的。
 
用户DELPHI开发的程序都是WIN32的,而WIN32是禁止应用程序直接访问硬件的,
因此用DELPHI修改硬件设置实现起来是比较麻烦的。
 
现在还不谈设置什么东西,想要像CPUZ或EVEREST那样准确地得到CPU的外频及倍频都很困难。
 
老大你可以的,估计以你现在的水平看汇编的书也不过是小菜。。
 
好高深啊,不懂
 
我只是略懂汇编,但是我到处去找也找不到取得CPU外频与倍频的汇编资料。
 
[:D]都是高手
 
这个不知道能不能帮到你
话题2002326的标题是:请教各位如何获得CPU的类型、主频、倍频、外频、缓存等参数的值!急!(100分)
分类:非技术问题(Delphi)凌(2003-07-04 11:08)
请教各位如何获得CPU的类型、主频、倍频、外频、缓存等参数的值!急!

aolo(2003-07-04 11:13)
----很多软件可以判断所运行的电脑类型而自动做不同的处理。如PhotoShop5可以探测CPU是否有MMX支持而调用不同的处理函数,《金山词霸》发现有MMX支持会产生半透明的翻译提示,很多软件可以区分Intel,Cyrix,AMD的CPU...

----现在,且让我细细道来如何让你在自己的程序中取得CPU信息。

----主要可利用CPUID汇编指令(机器码:0FHA2H,如果你的编译器不支持CPUID指令,只有emit机器码了)该指令可以被如下CPU识别

Intel 486 以 上 的CPU,

Cyrix M1 以 上 的CPU,

AMD Am486 以 上 的CPU


(1)取CPUOEM字符串,判断CPU厂商

先让EAX=0,再调用CPUID

Inel 的CPU 将 返 回:

EBX:756E6547H 'Genu'

EDX:49656E69H 'ineI'

ECX:6C65746EH 'ntel'

EBX,EDX,ECX 将 连 成"GenuineIntel", 真 正 的Intel。

Cyrix 的CPU 将 返 回:

EBX:43797269H

EDX:78496E73H

ECX:74656164H

"CyrixInstead","Cyrix 来 代 替"。

AMD 的CPU 将 返 回:

EBX:41757468H

EDX:656E7469H

ECX:63414D44H

"AuthenticAMD", 可 信 的AMD。


----在Windows98中,用右键单击"我的电脑",选择"属性-常规"在计算机描述处就可看见CPUOEM字符串。

(2)CPU到底是几86,是否支持MMX

先让EAX=1,再调用CPUID

EAX的8到11位就表明是几86

3 - 386

4 - i486

5 - Pentium

6 - Pentium Pro Pentium II

2 - Dual Processors

EDX 的第0位:有无FPU

EDX 的第23位:CPU是否支持IA MMX,很重要啊!如果你想用那57条新增的指令,先检查这一位吧,否则就等着看Windows的"该程序执行了非法指令,将被关闭"吧。

(3)专门检测是否P6架构

先让EAX=1,再调用CPUID

如果AL=1,就是PentiumPro或Pentium II

(4)专门检测AMD的CPU信息

先 让EAX=80000001H, 再 调 用CPUID

如 果EAX=51H, 是AMD K5

如 果EAX=66H, 是K6

EDX 第0 位: 是 否 有FPU

EDX 第23 位,CPU 是 否 支 持MMX,

程序如下:是C++Builder的控制台程序,可以给出你的"心"的信息。如果把这个技术用于DLL中,便可以使VB程序也知道"心"的信息。

//------CPUID Instruction Demo Program------------
#include < conio.h >
#include < iostream.h >
#pragma hdrstop
//------------------------------------------------

#pragma inline
#pragma argsused

int main(int argc, char **argv)
{
char OEMString[13];
int iEAXValue,iEBXValue,iECXValue,iEDXValue;

_asm {
mov eax,0
cpuid
mov DWORD PTR OEMString,ebx
mov DWORD PTR OEMString+4,edx
mov DWORD PTR OEMString+8,ecx
mov BYTE PTR OEMString+12,0
}

cout< < "This CPU 's OEM String is:"< < OEMString< < endl;

_asm {
mov eax,1
cpuid
mov iEAXValue,eax
mov iEBXValue,ebx
mov iECXValue,ecx
mov iEDXValue,edx
}

if(iEDXValue&0x800000)
cout < < "This is MMX CPU"< < endl;
else
cout < < "None MMX Support."< < endl;

int iCPUFamily=(0xf00 & iEAXValue) > >8;

cout < < "CPU Family is:"< < iCPUFamily< < endl;

_asm{
mov eax,2
CPUID
}

if(_AL==1)
cout < < "Pentium Pro or Pentium

barton(2003-07-04 11:17)
SystemInfo这样的控件满世界都是,随便找一个装上就行了。当然,这样的控件一般非常
简单,将核心代码剪下来更好。

wr960204(2003-07-04 11:19)
CPU的类型、主频、缓存我都能获得。但是外频和倍频我不知道如何取到,我想应该用到主板的信息才能得到吧!


aolo(2003-07-04 11:22)
function GetCPUSpeed: Double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
try
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
asm
dw 310Fh // rdtsc
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh // rdtsc
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Result := TimerLo / (1000.0 * DelayTime);
except
Result := 0;
end;
end;






wr960204(2003-07-04 11:37)
给你一个我写的东西
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2002449
 
to 楼上的,
你那些我早就看过了。
我现在就想得到CPU的外频及倍频,其他的我也能弄出来。
 
我见过一套控件,可以得到电脑所有硬件信息,类似优化大师的那种,名字忘了,明天告诉你
 
to 啊啊啊啊啊,
如果你说的是 MiTeC System Information Component Suite,就不用告诉我了,呵呵。
 
汗~~~~~~
找了一下还真是MiTeC System Information Component Suite一个咚咚
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
948
DelphiTeacher的专栏
D
后退
顶部