★☆★☆★☆★delphi 如何获取CUP风扇转速和温度!!急!!! delphi 如何获取CUP风扇转速和温度 越简单越详细越好!!!!!急!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读CMOS,可能用到汇编,如同dos下用debug解除CMOS密码一样 1、读BIOS信息2、根据不同主板芯片,分别调厂商API。这个是正途,厂商自带的监测工具,Everest等应该是这样实现的。 這是KTOP網站上討論的結果。如果說, 你想要寫一支程式可以得到所有desktop & notebook主機板上的CPU溫度, 風扇轉速, 主機板溫度, 那麼, 我可以給你很肯定的答案---No way.但是如果針對單一主機板, 是不是就能讀呢? 那麼, 我可以給你很肯定的答案---You got it!有差這麼多嗎? 以下解析目前主機板在業界的作法概念:1. 所謂風扇速度, CPU溫度/主機板溫度, 並不在於MicroSoft的標準規範內, 所以沒有所謂的API2. 雖然Windows有所謂的ASL code, 但是OS要取得這此information也是透過BIOS vendor寫好ASL code report給OS, 所以不同板子的ASL code會有所不一樣3. 為什麼ASL code的report方法會不一樣? 以Thermal而言, 各家主機板H/W放了Thermal sensor在CPU/南橋/北橋/VGA chipset or 主機板上覺得要防過熱的方法, 而這些Thermal sensor會接到一個總管Thermal的chipset. 你只要回contrl這個thermal chipset那你就可以讀到所要的Fan Speed or Thermal4. 重點是Thermal chipset大部份是使用SMBus來接的, 而不是使用PCI介面(因為SMBus只要4根電線, 以H/W成本考量, 是比PCI介面來的超低價)5. SMBus是接在那裡? Notebook可以接在KBC上, 或是接到南橋上6. 若是接到南橋上, 現今市場上比較可以看見的有Intel/VIA/SIS/ALI等四家廠商各位只要看到第5&第6點就知道為什麼沒有辦法用同一支程式就能讀到所有主機版的Informaion了吧! 重點在於你不知道廠商是接在那一個SMBus上, 你不知道SMBus的device ID, 你也不知道Thermal sensor的device是byte read還是word read! 或許你會想說, 那我寫個程式來scan 好了 ^^", 很好的觀念, 但是, 如果你沒玩過SMBus, 你就不知道SMBus是多麼的Weak, 可能相對應的事沒處理好, 就把你系統Q住了, 看到這.....你有沒有覺的SMBus很xx呢 ^^寫到這裡. 如果只是一個PCI的device, 我想, 你只要對IO 0xcf8, 0xcfc會read/write就可以scan出主機板上所有的PCI device, 所以要知道你主機板上的South Bridge是Intel/VIA/SIS/ALI 不是很難的事那SMBus呢?這裡我只寫個概述, 詳細請參考你要access的device是接到那一個KBC or South Bridge, 去看他的Spec, 大同小異囉.1. SMBus Address Register: 最多只能接128個device2. SMBus Protocol Register: 可分為 byte read/byte write/word read/word write/byte block read/byte block write/word block read/word block write3. SMBus Data Register: 依照你要read/write的data去讀寫相對應的位置, 一般都會有Data 0 Register, Data 1 Register4. SMBus Command Register: 雖然名字叫作Command Register, 但其實就是你要讀寫device裡面的第幾個offset data, 這個Register一般作完時會清成零, 你只要填入非零值, SMBus就開始動起來啦....一直wait for zero 才表示作完了5. SMBus Status Register: 雖然Command Register清成零時, 表示作完一次動作, 但是你也要check 這個register是不是time out之類的 ^^以上SMBus如與Spec有所不同, 當然是以Spec為主. 而且device是byte access or word access都要參考相關的device spec.不然...Spec上明明寫著Word protocol, 不要問為什麼用byte read/write會fail要玩SMBus的人.....我只能精神上支持你 关于DevExpress问题:为什么菜单上的图标都被拉大,影响美观? 求助 DLEPHI 预编译指令 技术支持---重分奖励 今天去面试了,郁闷…… 如何监控打印机状态,当打印时把打印内容保存到文件? 辞职大散分贴,UP的都有分,两天一贴直到找到工作为止(老鱼) 请问如何在ToolBar的按钮上添加文字 用delphi如何对网页的访问速度做统计。 我做了个打印预览,但是不知道怎么才能连接?? 浮点数的小问题 Delphi调用SQL Server 2000存储过程提示:“SQL Error:Error mapping failed.”
2、根据不同主板芯片,分别调厂商API。这个是正途,厂商自带的监测工具,Everest等应该是这样实现的。
1. 所謂風扇速度, CPU溫度/主機板溫度, 並不在於MicroSoft的標準規範內, 所以沒有所謂的API
2. 雖然Windows有所謂的ASL code, 但是OS要取得這此information也是透過BIOS vendor寫好ASL code report給OS, 所以不同板子的ASL code會有所不一樣
3. 為什麼ASL code的report方法會不一樣? 以Thermal而言, 各家主機板H/W放了Thermal sensor在CPU/南橋/北橋/VGA chipset or 主機板上覺得要防過熱的方法, 而這些Thermal sensor會接到一個總管Thermal的chipset. 你只要回contrl這個thermal chipset那你就可以讀到所要的Fan Speed or Thermal
4. 重點是Thermal chipset大部份是使用SMBus來接的, 而不是使用PCI介面(因為SMBus只要4根電線, 以H/W成本考量, 是比PCI介面來的超低價)
5. SMBus是接在那裡? Notebook可以接在KBC上, 或是接到南橋上
6. 若是接到南橋上, 現今市場上比較可以看見的有Intel/VIA/SIS/ALI等四家廠商各位只要看到第5&第6點就知道為什麼沒有辦法用同一支程式就能讀到所有主機版的Informaion了吧! 重點在於你不知道廠商是接在那一個SMBus上, 你不知道SMBus的device ID, 你也不知道Thermal sensor的device是byte read還是word read! 或許你會想說, 那我寫個程式來scan 好了 ^^", 很好的觀念, 但是, 如果你沒玩過SMBus, 你就不知道SMBus是多麼的Weak, 可能相對應的事沒處理好, 就把你系統Q住了, 看到這.....你有沒有覺的SMBus很xx呢 ^^寫到這裡. 如果只是一個PCI的device, 我想, 你只要對IO 0xcf8, 0xcfc會read/write就可以scan出主機板上所有的PCI device, 所以要知道你主機板上的South Bridge是Intel/VIA/SIS/ALI 不是很難的事那SMBus呢?
這裡我只寫個概述, 詳細請參考你要access的device是接到那一個KBC or South Bridge, 去看他的Spec, 大同小異囉.1. SMBus Address Register: 最多只能接128個device
2. SMBus Protocol Register: 可分為
byte read/byte write/word read/word write/byte block read/byte block write/word block read/word block write
3. SMBus Data Register: 依照你要read/write的data去讀寫相對應的位置, 一般都會有Data 0 Register, Data 1 Register
4. SMBus Command Register: 雖然名字叫作Command Register, 但其實就是你要讀寫device裡面的第幾個offset data, 這個Register一般作完時會清成零, 你只要填入非零值, SMBus就開始動起來啦....一直wait for zero 才表示作完了
5. SMBus Status Register: 雖然Command Register清成零時, 表示作完一次動作, 但是你也要check 這個register是不是time out之類的 ^^以上SMBus如與Spec有所不同, 當然是以Spec為主. 而且device是byte access or word access都要參考相關的device spec.不然...Spec上明明寫著Word protocol, 不要問為什麼用byte read/write會fail要玩SMBus的人.....我只能精神上支持你