阅读:2744回复:2
【求助】【求助】关于键盘过滤驱动中写入文件的问题
能顺利获取到扫描码并转化成字符,
可是在工作线程中将字符写入文件时,打开却都是乱码,不知为何? 求教各位大侠! //---------------------- 首先:获取扫描码 buf = (PCHAR)Irp->AssociatedIrp.SystemBuffer; ch1=(CHAR)buf[2]; //这里扫描码要转换为CHAR型 再通过一个表将扫描码转化成字符: CHAR chn=ascii; 调用工作线程: VOID ThreadFunc(..) { ...... DbgPrint(("Get a char:%c\n",chn)); //在这里还能输出正常,获取转化后的字符成功 ZwWriteFile( //写入文件 hfile, NULL, NULL, NULL, &ioStatus, &chn, 1, NULL, NULL); //执行写入,打开都是乱码 ..... } 问题: 1.就算把CHAR改成UCHAR也一样,能获取转化后的字符,但在写入文件时都是乱码 后来我又把char转存到Ansi_String中: CHAR *p=&chn; RtlInitAnsiString(&keys,p); //以P指针指向的chn字符(串)来初始化ansi string DbgPrint(("buffer is %Z\n",&keys)); DbgPrint(("buffer2 is %s\n",keys.Buffer)); //到这里。所有的输出都正常,都获取到了按键字符, 可是接下来,,恶梦又来了: ZwWriteFile( //写入文件 hfile, NULL, NULL, NULL, &ioStatus, keys.Buffer, keys.Length, NULL, NULL); //执行写入,打开都是乱码 ..... 实在无奈,只能上网来求教各位大侠,还请不吝赐教!谢谢! |
|
沙发#
发布于:2011-04-16 12:26
没有大侠帮一下吗?谢谢
|
|
板凳#
发布于:2012-03-12 23:42
我想问你的键盘过滤驱动是如何安装到系统里的啊 WIN7的系统
|
|