Before you read
本文大概是我写的第一篇博文吧,09年,那年我应该是小学五年级。文本有经过改动,代码没有修改。
前言
有这么一篇文章:《利用thinkpad aps重力感应系统玩游戏!!!》,不知道用小黑的朋友有没有看过,www.douban.com/note/39019617/ 通过调用APS来玩游戏。
APS是ThinkPad内置的一套硬盘保护系统,原理是利用加速度传感器来检测冲击,并在冲击发生时暂停硬盘操作以保护硬盘。本文讨论的是如何自己编程来读取APS的数据。
数据调用
在类型定义里加入:
ACCElREPORT = record
PresentState:integer;
LatestRawAccelDataX:word;
LatestRawAccelDataY:word;
LatestAccelDataX:word;
LatestAccelDataY:word;
Temperature:char;
LatestZeroG_X:word;
LatestZeroG_Y:word;
end;
PACCELREPORT=ACCELREPORT;
HDAPS_API = Integer;
ReadHDAPS = function(pAcceleration:PACCELREPORT):HDAPS_API;stdcall;
变量定义:
HDAPS: ReadHDAPS; hDLL: THandle; HDAPSData: ACCElREPORT; OffsetX: Integer; OffsetY: Integer; LoadOK: Boolean;
DLL加载:
try
{Get DLL}
hDLL := LoadLibrary('Sensor.dll');
if hDLL <> 0 then
HDAPS := GetProcAddress(hDLL,'ShockproofGetAccelerometerData');
except
on ex:Exception do
begin
ShowMessage('Error:'+ex.Message);
Close;
end;
end;
if (HDAPS(@HDAPSData)=1) then
LoadOK := True;
DoubleBuffered := True;
#演示应用
我写了个鼠标控制器,可以用来玩仓鼠球。图: