找回密码
 注册
快捷导航
123
返回列表 发新帖
楼主: b_wind

[笔记本整机] 【原创软件】ThinkPad or Wii? APS独特用法新鲜出炉!!

[复制链接] |自动提醒
阅读字号:

1266

回帖

15

积分

1135

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2009-9-5
发表于 2009-9-15 14:46:25| 字数 4| - 中国–四川–成都 电信 | 显示全部楼层
支持一个
ThinkPad X61 (2007-2016)
ThinkPad X230 (2013-2016)
ThinkPad T460S (2016-丢
ThinkPad T490   
ThinkPad P1 隐士
回复 支持 反对

使用道具 举报

504

回帖

0

积分

509

资产值

入门会员 Rank: 1

注册时间
2006-3-25
发表于 2010-5-21 15:28:04| 字数 13| - 中国–河北–保定 联通 | 显示全部楼层
感谢楼主,,很强大的说。。
回复 支持 反对

使用道具 举报

2793

回帖

47

积分

8058

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-7-1
银牌荣誉勋章(注册10年以上会员)
发表于 2010-5-21 15:46:08| 字数 43| - 中国–北京–北京 联通 | 显示全部楼层
可以把累计偏移量计算出来然后返回给窗口,这样计算机怎么倾斜,里面显示的内容都是水平的!
曾经拥有::T600>R31>A21P>X32>X60S>W500>X60T>T400s>X200>T61P>X240>X1C 2014>T560>P51s>X1_YOGA_2019
老骥伏枥::X41  T60Q  X201s  X1_Carbon_2017
当家花旦::X1_Extreme_Gen4  & HP_Zbook_Fury_17_G8
回复 支持 反对

使用道具 举报

834

回帖

8

积分

701

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2007-12-2
发表于 2010-5-21 15:52:07| 字数 10| - 中国–江西–新余 电信/渝州科技学院 | 显示全部楼层
一般用谁动来动去的?
回复 支持 反对

使用道具 举报

5154

回帖

95

积分

8254

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2008-3-21
发表于 2010-5-21 16:15:53| 字数 14| - 中国–浙江–金华 电信 | 显示全部楼层
此帖mark,以备不时之需。
t500
8g
256M ati
100g7.2K
320G5.4k
1920x1200
可以接受宽屏,接受不了16:9
精英不爱,五毛不疼
回复 支持 反对

使用道具 举报

84

回帖

0

积分

144

资产值

入门会员 Rank: 1

注册时间
2009-1-5
发表于 2010-6-30 13:39:18| 字数 97| - 中国–广东–广州–番禺区 广州海之光通讯技术有限公司 | 显示全部楼层
大家搜索一下SDLAccel,neverball,tuxracer,可以下载到利用IBM笔记本加速度传感器的游戏,还是蛮有意思,拿着笔记本晃来晃去,可以控制滚球、滑雪的企鹅,达到锻炼身体的目的。
回复 支持 反对

使用道具 举报

84

回帖

0

积分

144

资产值

入门会员 Rank: 1

注册时间
2009-1-5
发表于 2010-6-30 13:48:43| 字数 3,476| - 中国–广东–广州–番禺区 广州海之光通讯技术有限公司 | 显示全部楼层
用Delphi写了个程序,利用这个传感器,当把笔记本竖起来的时候,屏幕自动旋转垂直,就像Thinkpad TabletPC,完整源代码如下。注意:程序运行时不显示窗体。附件是exe和源代码。该程序在T61p上测试通过。

视频:http://v.youku.com/v_show/id_XMTg1ODIwNjI4.html

program AutoRotate;
uses

  Windows, Messages;

const
  szAppName : PChar = 'AutoRotate';
  ENUM_CURRENT_SETTINGS = $FFFFFFFF;
  DMDO_DEFAULT = 0;
  DMDO_90 = 1;
  DMDO_180 = 2;
  DMDO_270 = 3;

type
  ACCELREPORT = record
                PresentState: DWORD      ;        // Current internal state (stable: 0, unstable1: 1: unstable2: 2)
                LatestRawAccelDataX: WORD   ; // latest raw acceleration data of X axis    <-- works!
                LatestRawAccelDataY: WORD   ; // latest raw acceleration data of Y axis    <-- works!
                LatestAccelDataX: WORD   ;    // latest acceleration data of X axis (average in 40ms)   <-- Works even better?
                LatestAccelDataY: WORD   ;    // latest acceleration data of Y axis (average in 40ms)   <-- Works even better?
                Temperature: CHAR     ;         // latest temperature
                LatestZeroG_X: WORD   ;       // latest zero-G offset of X axis  <-- Seems to be the current notion of "center"
                LatestZeroG_Y: WORD   ;       // latest zero-G offset of Y axis  <-- ""
        end;

  PACCELREPORT = ^ACCELREPORT;

var
        sensorFunction: procedure (pAcceleration: PACCELREPORT); stdcall;
        centerX, centerY: WORD;

  wc : WNDCLASS;
  HMainWnd : HWND;
  AMsg : MSG;
  nTimerId: THandle;  //时钟标识

//窗体回调函数
function WndProc(AWnd:HWND; message:UINT; wp:WPARAM; lp:LPARAM):LRESULT;stdcall;
begin
  Result := 0;
  case message of
    WM_DESTROY:
    begin
      KillTimer(0, nTimerId);
      PostQuitMessage(0);
    end
    else
      Result := DefWindowProc(AWnd, message, wp, lp);
  end;
end;

procedure RotateScreen(nDegree: Integer);
var
  dm: DEVMODE;
  nOld: Integer;
  dwTemp: DWORD;
begin
  ZeroMemory(@dm, SizeOf(DEVMODE));
  dm.dmSize := SizeOf(DEVMODE);
  if EnumDisplaySettings(nil, ENUM_CURRENT_SETTINGS, dm) then
  begin
    nOld := dm.dmScale;
    if nOld <> nDegree then
    begin
      if (((nOld = DMDO_DEFAULT) or (nOld = DMDO_180)) and ((nDegree = DMDO_90) or (nDegree = DMDO_270))) or
      (((nOld = DMDO_90) or (nOld = DMDO_270)) and ((nDegree = DMDO_DEFAULT) or (nDegree = DMDO_180)))
      then
      begin
        dwTemp := dm.dmPelsHeight;
        dm.dmPelsHeight := dm.dmPelsWidth;
        dm.dmPelsWidth := dwTemp;
      end;
      dm.dmScale := nDegree;
      ChangeDisplaySettings(dm, 0);
    end;
  end;
end;

//加速传感器数据采集
function GetAccelDirect: ACCELREPORT;
var
  hSensor: HMODULE;
begin
  ZeroMemory(@Result, SizeOf(ACCELREPORT));

  if @sensorFunction = nil then
  begin
    hSensor := LoadLibrary('Sensor.dll');
    if hSensor <> 0 then
    begin
      sensorFunction := GetProcAddress(hSensor, 'ShockproofGetAccelerometerData');
      if(@sensorFunction <> nil) then
      begin
        sensorFunction(@Result);
        centerX := Result.LatestZeroG_X;
        centerY := Result.LatestZeroG_Y;
      end;
    end;
  end;

  if @sensorFunction <> nil then
    sensorFunction(@Result);
end;

//时钟回调函数
procedure MyTimerProc(hWnd: HWND; uMsg: UINT; idEvent: UINT; Time: DWORD); stdcall;
var
  data: ACCELREPORT;
begin
  ZeroMemory(@Data, SizeOf(ACCELREPORT));
  data := GetAccelDirect;

  if data.LatestAccelDataY - centerY < -60 then
    RotateScreen(DMDO_270)
  else
  if Abs(data.LatestAccelDataY - centerY) < 20 then
    RotateScreen(DMDO_DEFAULT)
  else
  if data.LatestAccelDataY - centerY > 60 then
    RotateScreen(DMDO_90);
end;

//主程序
begin
  with wc do
  begin
    style := CS_VREDRAW or CS_HREDRAW;
    lpfnWndProc := @WndProc;
    cbClsExtra := 0;
    cbWndExtra := 0;
    hIcon := LoadIcon(0, IDI_APPLICATION);
    hCursor := LoadCursor(0, IDC_ARROW);
    hbrBackground := GetSysColorBrush(COLOR_WINDOW);
    hInstance := HInstance;
    lpszMenuName := nil;
    lpszClassName := szAppName;
  end;

  RegisterClass(wc);
  HMainWnd := CreateWindow(szAppName,
                           szAppName,
                           WS_OVERLAPPEDWINDOW,
                           Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
                           Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
                           HWND_DESKTOP, 0,
                           HInstance, nil);

  ShowWindow(HMainWnd, SW_HIDE);//CmdShow);
  UpdateWindow(HMainWnd);

  nTimerId := SetTimer(0, 1, 100, @MyTimerProc); {每 100ms 调用一次 MyTimerProc}

  while GetMessage(AMsg, 0, 0, 0) do
  begin
    TranslateMessage(AMsg);
    DispatchMessage(AMsg);
  end;

end.

[ Edited by  madfish on 2010-7-1 11:34 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

879

回帖

16

积分

2万

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2008-6-23
月全勤勋章
发表于 2010-6-30 14:10:02| 字数 13| - 中国–陕西–西安 电信 | 显示全部楼层
开发几个类似重力感应的游戏
回复 支持 反对

使用道具 举报

297

回帖

0

积分

254

资产值

入门会员 Rank: 1

注册时间
2007-6-16
发表于 2010-6-30 14:16:43| 字数 6| - 中国–广东–深圳 电信 | 显示全部楼层
有想法有创新
卖了可耻的T61,换了行货X200
回复 支持 反对

使用道具 举报

976

回帖

13

积分

6936

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2010-5-10
银牌荣誉勋章(注册10年以上会员)
发表于 2010-6-30 14:32:40| 字数 15| - 中国–上海–上海–徐汇区 电信 | 显示全部楼层
都是高手啊 不知道应用前景怎么样
回复 支持 反对

使用道具 举报

976

回帖

13

积分

6936

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2010-5-10
银牌荣誉勋章(注册10年以上会员)
发表于 2010-6-30 14:36:02| 字数 8| - 中国–上海–上海–徐汇区 电信 | 显示全部楼层
X200测试可用
回复 支持 反对

使用道具 举报

667

回帖

0

积分

848

资产值

入门会员 Rank: 1

注册时间
2009-5-4
发表于 2010-6-30 14:49:43| 字数 21| - 中国–江苏–南通 电信 | 显示全部楼层
已经不新鲜了,早就有用aps玩游戏的例子了
X200 74574AC 4G DDR3 160G 5400RPM P8400 2.66G
回复 支持 反对

使用道具 举报

1666

回帖

26

积分

6890

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2009-12-1
发表于 2010-6-30 14:58:09| 字数 20| - 中国–江西–南昌 电信 | 显示全部楼层
强烈支持楼主,太有意思了!呵呵!好炫啊!
回复 支持 反对

使用道具 举报

181

回帖

0

积分

184

资产值

入门会员 Rank: 1

注册时间
2007-11-5
发表于 2010-6-30 16:03:33| 字数 31| - 中国–江苏–苏州 电信 | 显示全部楼层

回复 #67 madfish 的帖子

好用,要是触摸板和小红点的操作也能和外接鼠标一样适应竖屏就好了
回复 支持 反对

使用道具 举报

367

回帖

0

积分

3141

资产值

入门会员 Rank: 1

注册时间
2008-9-28
发表于 2010-6-30 16:21:57| 字数 11| - 中国–湖北–武汉 联通 | 显示全部楼层
膜拜楼主~~~~~~~
回复 支持 反对

使用道具 举报

703

回帖

17

积分

9525

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2010-5-6
发表于 2010-6-30 17:21:23| 字数 80| - 中国–北京–北京–门头沟区 光环新网联通数据中心 | 显示全部楼层
1、对楼主这种勇于创新的精神,表示赞赏。
2、不要认为大家基本用不到而不去想,不去做。当你研究了,做出成果了,就会发现,你比别人已经超出很远了。
    这个贴子必须要顶。
1.回帖实事求是。2.技术贴必顶。
回复 支持 反对

使用道具 举报

97

回帖

3

积分

158

资产值

中级会员 Rank: 2Rank: 2

注册时间
2008-1-7
发表于 2010-6-30 17:50:23| 字数 31| - 中国–江苏–苏州–常熟市 电信/常熟理工学院 | 显示全部楼层
顶,不过aps以前IBM有一个应用的,不知道哪位大侠能够找出来
回复 支持 反对

使用道具 举报

11

回帖

0

积分

23

资产值

入门会员 Rank: 1

注册时间
2009-8-8
发表于 2010-7-1 00:02:36| 字数 12| - 中国–广西–南宁 电信 | 显示全部楼层
niubility必须顶
回复 支持 反对

使用道具 举报

611

回帖

0

积分

579

资产值

入门会员 Rank: 1

注册时间
2009-11-25
发表于 2010-7-1 00:14:13| 字数 14| - 中国–上海–上海–长宁区 电信/普陀区电信 | 显示全部楼层
实践是检验小黑的唯一标准!!
X61T: 高分/手写/手触/4G/X25-M 160G
R60/T2300/2.5G/60G/高分/9C 给老爸斗地主去了
回复 支持 反对

使用道具 举报

99

回帖

0

积分

143

资产值

入门会员 Rank: 1

注册时间
2009-8-21
发表于 2010-7-1 23:33:04| 字数 63| - 中国–辽宁–沈阳 联通 | 显示全部楼层
一年前 看到这样一个APS 应用视频 http://v.youku.com/v_show/id_XNDYxNzc2NzY=.html
回复 支持 反对

使用道具 举报

122

回帖

1

积分

180

资产值

初级会员 Rank: 1

注册时间
2010-5-16
发表于 2010-7-17 21:49:21| 字数 179| - 中国–四川–成都 电信 | 显示全部楼层
QUOTE:
Posted by madfish on 2010-6-30 13:48
用Delphi写了个程序,利用这个传感器,当把笔记本竖起来的时候,屏幕自动旋转垂直,就像Thinkpad TabletPC,完整源代码如下。注意:程序运行时不显示窗体。附件是exe和源代码。该程序在T61p上测试通过。

视频 ...


x41 完全失败,呵呵。
多年不搞DELPHI了。不过还能看懂
回复 支持 反对

使用道具 举报

505

回帖

8

积分

1319

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2009-9-14
发表于 2010-7-18 07:52:02| 字数 14| - 中国–山东 联通/数据上网公共出口 | 显示全部楼层
又没用用都得支持楼主 楼主加油
T43 1.86g 2g金泰克 160g三星 v2rapoo
回复 支持 反对

使用道具 举报

3433

回帖

57

积分

7万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2008-1-12
银牌荣誉勋章(注册10年以上会员)铜牌荣誉勋章(注册8年以上会员)月全勤勋章
发表于 2010-7-18 08:05:31| 字数 4| - 中国–四川–成都 联通 | 显示全部楼层
路过帮顶
T430s i5 3210M 8G 256G NVS 5200M 蓝指摄 WIN10
T480s i5 8250U 16G 752G 960Pro MX150 蓝指摄 WIN11
P15v G2 i9 11950H 64G 2.5T A2000 蓝指摄 WIN11
回复 支持 反对

使用道具 举报

416

回帖

0

积分

993

资产值

入门会员 Rank: 1

注册时间
2006-12-11
发表于 2010-7-18 09:21:15| 字数 7| - 中国–山东–济南–莱芜区 联通 | 显示全部楼层
找个好玩啊
呵呵
服役机型:T400 C14 P8600(2.4GHz), 4GB,320GB 1280*800 LCD
回复 支持 反对

使用道具 举报

31

回帖

0

积分

16

资产值

入门会员 Rank: 1

注册时间
2010-7-16
发表于 2010-7-19 21:47:23| 字数 11| - 中国–广东–广州 电信 | 显示全部楼层
看不懂,怎么办?帮帮忙
回复 支持 反对

使用道具 举报

77

回帖

0

积分

209

资产值

入门会员 Rank: 1

注册时间
2009-2-7
发表于 2010-9-21 16:48:00| 字数 10| - 中国–北京–北京 联通 | 显示全部楼层
家用版地震仪!顶你!
ThinkPad X200 AG1 国行
ThinkPad X1 Helix 3701
回复 支持 反对

使用道具 举报

427

回帖

0

积分

471

资产值

入门会员 Rank: 1

注册时间
2008-11-27
发表于 2010-9-21 17:12:05| 字数 14| - 中国–浙江–宁波 电信 | 显示全部楼层
我怕楼主代码里面有木马程序。
T400 P8400 160G\5.4K 3G\DDR3 3470HD 14.1WXGA Wifi\Wwan\Bt 4Cell DVDrw FR
回复 支持 反对

使用道具 举报

1

回帖

0

积分

61

资产值

入门会员 Rank: 1

注册时间
2007-11-5
发表于 2012-2-18 14:58:45| 字数 10| - 中国–浙江–杭州 电信 | 显示全部楼层
看不到啊,谁能看看?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-10-13 08:01 , Processed in 0.183942 second(s), 76 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部