博文

目前显示的是 六月, 2009的博文

AllowEmptyInput

不晓得从什么时候起,xorg中多了AllowEmptyInput这个选项,而且默认是打开的。一旦这个选项启用,它就会忽略xorg.conf中驱动为kbd和mouse的设定(但是vmware的vmmouse不会被忽略),并尝试使用hal来自动检测鼠标键盘的配置。事实是我不知道我已经装了hal和dbus,更不知道如果没有启动它们将会导致xorg找不到鼠标键盘(尽管我已经在xorg.conf中手动指定了)从邮件列表(freebsd-x11)中摘一段话:“As I understand, currently user is required to do one of following:Make sure hald is running (if xorg is compiled with it)Add AllowEmptyInput "0" to xorg config otherwiseThus, extra action is ALWAYS required from user.”

如何在C语言中输出int64_t?

假如,现在有一个64位的整数,需要被输出到stdout或者某个文件里。该怎么写?先毙掉一个:
int64_t i=9;
printf("%lld\n",i);GCC会报警。warning: format '%lld' expects type 'long long int', but argument 2 has type 'int64_t'。传说这个警告已经在gcc中存在了15年以上,但是我在linux以及cygwin下编译并不会报告这个,在freebsd下会(我在amd64的8-current上测的)相比而下,C++的ostringstream简直万能的完美无瑕。但是……我还是希望能找到一个简洁点的方案。

被支付宝流氓了一把

因为最近机器里多了很多软件,上周打开SysinternalsSuite的autoruns查看下有没有什么多余的东西。发现支付宝的一个驱动是开机自动加载运行的,我想,支付宝我一个月也用不到一次,况且,这种驱动肯定是会监听键盘,干嘛呢!犹豫是删掉还是改成手动启动,最后选择了后者。昨天诺顿防火墙竟然意外死了,于是我强关了机器,然后重起。结果发现,在启动xp前键盘还是好的,但是xp启动后,键盘彻底不能用,touchpad也不能用,小红帽也不能用。幸好我有外接的鼠标,这个可以用。但是外接的键盘还是不能用,无论如何我都没有办法输入用户名密码进入系统。之后试了很多方法,包括命令行的安全模式,也不行。万分绝望,准备找xp安装盘进故障恢复台。这个时候突然想到,可以试下启动F8的时候选最后一次成功配置。因为后来尽管数次都启动成功,但是没有登录也没有进行任何注册表修改操作,所以它保存的应该是我修改驱动之前的配置。果然,成功了。接下来,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet下面搜alipay,然后在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}的UpperFilters那里找到了它,干掉,只留下原始的kbdclass和我的vmware的vmkbd。哈哈,世界清静了。之后HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services也把alipay删掉,重启,一切ok.支付宝照样可以登录。只是我没明白为何它做的这么狠。因为它在键盘的upperfilters中,所以它没有启动就导致系统根本收不到任何键盘输入?