找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 14157|回复: 6

屏幕旋转快捷键

[复制链接]
发表于 2009-4-20 10:24:09 | 显示全部楼层 |阅读模式
各位可能都知道NB中一般都会做一个快捷键来实现屏幕切换,该切换一般是利用ACPI Video Extension中相关method来做的。而小弟最近需要实现屏幕旋转的热键,我的平台用的是Intel的internal gfx, 看了GMA驱动中已经默认定义了Ctrl+Alt+Up,Ctrl+Alt+Left,Ctrl+Alt+Down,Ctrl+Alt+Right来分别实现逆时针旋转0度,90度,180度,270度。我想的方案如下:
3 h- r# C' c  {5 }: q( a$ k在EC内可以为定义的热键Hook一个函数,该函数可以模拟向host发出Ctrl+Alt+Up,Ctrl+Alt+Left,Ctrl+Alt+Down,Ctrl+Alt+Right对应的扫描码,从而让GMA驱动来实现旋转功能。# P* B" e2 m- p0 a  E4 [9 p6 K+ \( j
但是我这个方法有个缺点就是GMA驱动的应用程序中可以让用户自定义各种旋转的快捷键组合,一旦改变,原来EC模拟出的Ctrl+Alt+Up,Ctrl+Alt+Left,Ctrl+Alt+Down,Ctrl+Alt+Right可能就无效了。
2 z* |) b" z6 V- P4 M; G; S所以我想请问各位先达者,是否能给我指教一下,是不是有更好的方法来实现屏幕旋转的快捷键?
 楼主| 发表于 2009-5-6 15:09:01 | 显示全部楼层
各位帮忙给点建议吧,我来顶贴!
回复

使用道具 举报

发表于 2009-5-6 20:08:51 | 显示全部楼层
建议EC发Q事件,让ACPI BIOS通知Driver来做切屏。
回复

使用道具 举报

 楼主| 发表于 2009-5-7 22:25:42 | 显示全部楼层
原帖由 bini 于 2009-5-6 20:08 发表
& w7 I6 d) K9 M( Z建议EC发Q事件,让ACPI BIOS通知Driver来做切屏。

  C, A- @1 B% r# e# O! a. o2 K( ]) W* }3 K% @
! b- F" m* F! [' [1 s. r2 D8 J
To bini:8 {: u5 D) \! u4 c; N! O
谢谢bini的关注!切屏是EC发Q事件让ACPI BIOS通知Driver来作的,其中涉及到ACPI规范中video extension中定义的一些method用来指示下一个显示屏。但是我问的是旋转屏幕,ACPI规范有提到相应的method方法吗?请bini大哥解释详细些,呵呵。
回复

使用道具 举报

发表于 2009-5-21 13:56:14 | 显示全部楼层

旋转如何获取旋转顺序?

Windows下可以进行设置旋转的顺序,如可以在控制面板中-》移动PC-》更改屏幕方向,在弹出对话框中可以设置旋转的顺序,如:主要横向,次要横向,主要纵向,次要纵向等。在用户设定后,如果我想获取用户设置的旋转顺序,有什么方法或者API可以获得到吗?多谢解答。
回复

使用道具 举报

发表于 2009-5-26 18:44:50 | 显示全部楼层
1#,
9 i( j$ r  |& e0 n7 t0 r想省事的话,或许可以和驱动沟通一下,关掉自定义的功能 # t6 l  ?* _$ z' N" F3 m' y
要不然,就做个AP,存放用户修改后的值,EC只是发固定的值,只不过对应关系由AP来做,AP去call GMA driver
# j" ]5 e# F* H+ p: z8 W+ v5#,
1 j& g4 |, Y) G3 I& x做成固定的不可以吗? 90->180->270->0->90... 这样可以省很多事情的,事实上也不影响用户的使用,最多只是多按几次而已
回复

使用道具 举报

发表于 2009-7-31 15:50:09 | 显示全部楼层
旧事重提,请问楼主有解决问题了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2025-3-5 03:05 , Processed in 0.039601 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表