易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下的鼠标操作

本不想写这些玩意儿,其实我并不喜欢它们,只不过没办法,谁叫我是靠这些家伙糊口的呢!
若干年前,我自认为很喜欢Linux;若干年后,我发现我当初是何等的天真。
恩,一分钱,一分货!我坚信这一点!所以我现在坚持用MS的Vista,正版的哦!
言归正传,前段时间因为工作,需要在Linux下操作鼠标,当然啦,肯定不会是在X-window下操作,那样的话也就不会有这篇文章的存在了。我要做的就是在Console下面得到鼠标的坐标。百度、谷歌都用上了,可就是找不到相关的资料。无奈之下,只能拿起Linux的内核啃代码了。下面是这段时间的成果:
1. 关于"/dev/input/mice"
相信很多人都用过Linux,也许你发现不管是在X-window下面,还是在Console下面,鼠标都是可以操作的。那么你有没有考虑过这些鼠标都是从哪来的?
不错!他们都是从"/dev/input/mice"这个文件里来的。如果你对Linux比较熟,那么你肯定看得出来这是一个设备文件。"mice"就是Linux下面鼠标的设备文件,不管你用的是PS2的还是USB的,所有关于鼠标的操作都被抽象到"mice"这个文件中。
2. "mice"之母
"mice"之母是谁?female mouse? 当然不是!在linux下面,她是"mousedev.c"这个文件。你可以在内核的"Drivers/input"目录里找到她。在她那里,你可以得到关于"mice"的一切。但是我想99%的人对于"mice"他妈到底是干嘛的是不会感兴趣的。所以我就不废话了。如果你有兴趣,可自行翻阅。
3. 坐标
如何得到mouse的当前坐标值?可通过如下几步:
1)打开"/dev/input/mice"文件。
2)读3个字节。三个字节的值分别是“Button类型”,“X的相对位移”,“Y的相对位移”。这里先用Button, xRel, yRel表示。
3)取Button的低3位(Button & 0x07)。0x00 = LeftButtonUp, 0x01 = LeftButtonDown, 0x02 = RightButtonDown.
4)因为这里取得是相对位移,所以X, Y要分别与上一次的坐标值相加。xPos += xRel; yPos +=yRel.
好了,到这里完成了一次读取操作。具体的代码请参见附录一。附录二介绍一下gpm。
我很奇怪为什么在网上找不到这方面的资料,关于gpm的资料也是寥寥无几。
附录一:
#include
#include
#include
#include
#include
#include
#include
int main()
{
int fd, retval;
char buf[6];
fd_set readfds;
struct timeval tv;
fd = open("/dev/input/mice", O_RDONLY);
if(!fd)
{
printf("Failed to open \"/dev/input/mice\"\n");
re


相关文档:

在linux下如何查看硬件信息

在linux下如何查看硬件信息?
最进想买笔记本,希望在linux下验机。
查看cpu信息可以使用
cat /proc/cpuinfo
查看显卡使用
lspci |grep VGA
我只知道上面两种方法,请问高手还有别的查看方式吗?包括看cpu、内存、显卡、硬盘、主板等信息。
能详细点最好,谢谢各位。
-------------------------------------------- ......

Linux中通过locale来设置字符集


在Linux
中通过locale
来设置程序运行的不同语言环境,locale
由ANSI C
提供支持。locale
的命名规则为<
语言>_<
地区>.<
字符集编码>
,如zh_CN.UTF-8
,zh
代表中文,CN
代表大陆地区,UTF-8
表示字符集。在locale
环境中,有一组变量,代表国际化环境中的不同设置:
1.  & ......

Linux Kernel Linked List Explained

参见:http://isis.poly.edu/kulesh/stuff/src/klist/
Introduction:
Linux kernel is mostly written in the C language. Unlike many other languages C does not have
a good collection of data structures built into it or supported by a collection of standard libraries.
Therefore, you're probably excited ......

Linux 信号(简略笔记)

    一、概要
      详细介绍:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html
       信号是UNIX和Linux系统响应结条件而产生的一个事件。接收到信号的进程会相应地采取一些行动。
    (1) 在系统 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号