
2003-10-17 11:15
plmqaz
PWS DRV WIN 求助:ThinkPad硬件编程帮助
我不太喜欢IBM的电池电量显示方式。我想写一个调整ThinkPad音量、亮度以及显示电池容量等信息的小程序(用C++),仅作为个人使用方便,用于Windows XP下。我在网上找了许多地方,除了Linux没有找到关于Windows的API或SDK之类的资料,我想请教高手,在那里可以找到这些资料?如果能提供,我愿意贡献出程序作为回报,共广大ThinkPad Fans使用。我的机子是T30,所以其他机型我就没多大兴趣了,关键是无法测试。
IBM倒是出了一个WPHKEY.EXE类似我的想法的小工具,但是用起来老出错,且没有电池显示。请高手指点一二。
[[i] Last edited by 折腾 on 2004-1-6 at 17:32 [/i]]
2003-10-17 11:31
hsz76
microsoft网站上面有全套的SDK/DDK,怎么会找不到?:)
去www.microsoft.com/msdn看看,这里是开发资料。
2003-10-17 11:38
bart
可以查找SMAPI的手册,这是IBM自己制定的。简而言之,你需要一个kernel driver和一个user-mode app。当thinkpad上的扩展键按下时,cmos的某些位会发生变化,kernel driver负责定时读cmos的这几个字节,发生变化就通知user-mode app,然后user-mode app把结果显示出来。大概去年的时候我写过这么一个driver,一不小心删掉了。
电池显示不同,我没有资料。
2003-10-17 12:22
plmqaz
bart,能谈具体点吗?SM API是IBM viavoice用的,和ThinkPad的音量调节应该没关系吧!另外,IBM的音量调节和其他brand的NB不太一样,它在DOS下就可工作,所以我认为这里面文章很大,应该有一个现成的API可用,只不过我不知道!可我又找不到资料,您能给我指点一二吗。
我需要ThinkPad的CMOS硬件位址,您能提供个链接吗?
谢谢你的热心!
我打算去其他Brand的NB技术服务里碰碰运气,看看他们是怎么做的,一会儿回来。
2003-10-19 11:26
xRAIN
以前TP 是有技术参考手册的,pdf 的可以自由下载,里面有硬件接口的定义,还有编程的例子,但是ATRX 新系列机器出来后都没有这个手册。
2003-10-19 15:37
lc82111
我也想知道 ,NB的BIOS接口定义
2003-10-23 13:27
bart
不好意思,几天没来,在赶一篇论文。
SMAPI(System Management API)不是Viavoice的那个(那个是sapi,是不是?)。你可以找一个叫Thinkpad 600 Technical Reference的文件,里面有SMAPI的介绍,不用担心ATRX的兼容问题,他们是一样的。
关于CMOS,我试着说详细些 (linux下使用watch --differences=cumulative -n 0 xxd /dev/nvram 观察得到,机型Thinkpad A20P, 功能键较少)
Thinkpad: 第0x57字节,右数第4位(即bitmask 0x08), 每按一下触发变换状态,00->08->00....
volume:第0x60字节,第8位(bitmask 0x80)为按键事件,每按一下音量上或者下触发状态变换。该字节低4位是音量大小,从0到e表示15个音量等级
mute: 第0x60字节, 第8位是按键触发,第7位表示是否静音,1是静音,0是不静。应该指出,音量和静音按键是在硬件级别控制声卡,和os无关,但是windows版本的TPHotKey在响应mute键时通过MMSystem吧windows系统的声音关闭,也许是为了systray里面的喇叭上能出现那个红色的叉。
屏幕亮度:第0x5F字节,第6位是按键触发,低4位是亮度(0-7)。
另外一些供参考:
zoom: 0x57字节,第6位
display: 0x57字节,第7位
home: 0x56字节,第1位
search: 0x56字节,第2位
mail: 0x56字节,第3位
thinklight: 0x58字节,第5位
hibernate: 0x58字节,第1位 ... (有用吗?)
display state: 0x59字节,后两位(不明白,sorry)
expand: 0x59字节,第5位
如果有兴趣,可以参考一下linux下tpb的源码,有介绍的。
2004-5-21 08:18
dominic2012
不知道Linux下现在有没有win下的ThinkPad Configuration那样的软件?
还有,
请问哪里有linux下的源码?
谢谢!
2004-8-1 09:27
pyh88
有兴趣上一份吧
2004-9-9 19:01
果子
附件是我写的一个显示电池信息的工具的源代码
如果真的要做,考虑一下对IBM的工具做反汇编吧.配合动态跟踪,要找到关键的地方应该也不是太难.不过实在是没必要了.
2004-9-10 12:44
nmd
都是高人啊.
2004-12-13 21:14
没有原因
佩服,望能提供源代码?我也是学编程的,给个学习的机会,好吗?
2004-12-31 18:43
ghfsxs
去[url]www.microsoft.com/msdn[/url]看看,这里是开发资料。
2005-3-19 10:04
小黑屋
强人啊,pfpf
2005-3-29 23:39
not_xx
最简单的方式是做一个tpb的windows移植版
tpb([color=Red]T[/color]hink[color=Red]P[/color]ad [color=Red]B[/color]uttons)是linux下显示thinkpad按钮信息的程序。
看截图:
[img]http://www.nongnu.org/tpb/screenshot.jpg[/img]
2005-3-29 23:42
not_xx
电池信息等等可以参考最新的2.6.10核心中有关的几个模块。
现在可以参考的信息大多数都在linux平台上。
2005-3-30 15:31
dennislew
IBM BIOS
This issue is regarding HDD password.
I saw expert here for programming. That why I seek help here.
Anyone can programming a program simmilar BIOS to read the password on HDD. Then we can crack the password. That is base a HDD password not store in :
1> The secue chip EEprom
2> The BIOS
3> The PCB of HDD
Thanks for any idea.
2005-4-30 16:50
kmlhust
参考你实验机种的ASL CODE,(ACPI 的DSDT)
参考你实验机种的ASL CODE,(ACPI 的DSDT)。要会写WINDOWS下ACPI drivers
2005-4-30 16:51
kmlhust
主要针对THINKPAD ACPI里虚拟的HKEY DEVICE。
主要针对THINKPAD ACPI里虚拟的HKEY DEVICE。代号为IBM0068的这个设备
2005-5-24 15:18
zhenbotang
楼主强!!!
2005-6-6 11:18
liio
不行`编译不过!!
Cannot open include file: 'batclass.h': No such file or directory
#include <batclass.h>
2005-6-23 20:49
ferando
可以找到IBM官方程序进行反汇编,应该有用的
2005-6-28 22:46
birdluo00
强啊
2005-7-4 13:07
xiaohuhu
学习一下
2005-7-4 16:49
fay2003hiend
[quote]Originally posted by [i]tauruschen[/i] at 2005-4-21 14:14:
顶一下! [/quote]
水原来是这样灌的,NB原来是这样赚的!:D:D
2005-7-17 14:20
odqpbo
不错!但是逆向工程别人的代码可能会有法律问题。
2005-7-18 00:51
jjhjj88
高人,学习。。。。。
2005-7-21 19:55
notebook8
不错 ^_^
2005-7-29 11:02
xiaohuhu
帮顶一下
2005-8-27 12:01
阿亚
高,正在学习
2005-10-8 21:29
birdluo00
顶一下。。。
2005-11-30 08:27
jonescheng
强人阿,不顶不行阿。。。。。。。。。。。。。。。。。。
2005-12-28 12:18
lotusheart
顶一下!
2005-12-28 12:19
lotusheart
我再顶一下!
2006-4-7 17:00
东怡
顶一下,比较有个性
2006-4-14 07:40
hhhhh1
顶顶顶顶
2006-10-7 23:48
phoneg
不知道那里出错,我不是高手。
2006-11-1 09:38
vinvin
巍巍专门,卧虎藏龙!
2006-11-9 08:19
icecubi
感觉不一定需要编写driver 吧 搞到ibm 驱动的 IOCTRL 更方便吧
2007-1-20 10:37
haowoqi
我也不会编还是学一下吧
页:
[1]
Powered by Discuz! Archiver 5.6.0
© 2001-2006 Comsenz Inc.