关于键盘过滤驱动中写入文件乱码的问题的解决!
2011-04-15 12:52
615 查看
能获取到扫描码,并成功转化为字符,但写入文件,打开却是乱码,调试无果,很是郁闷,哪位朋友帮看下是哪里没写好?
//----------------------
首先:获取扫描码
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也一样,能获取转化后的字符,但在写入文件时都是乱码
2.后来我又把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); //执行写入,打开都是乱码
.....
实在郁闷了。
后来改了:
改成:
char keys[3]="0/0";
.....
keys[0]=chn;
ZwWriteFile( //写入文件
hfile,
0,
0,
0,
&ioStatus,
&keys,
strlen(keys),
0,
0);
就通过了.再也没有乱码了,天空一片睛朗!
//----------------------
首先:获取扫描码
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也一样,能获取转化后的字符,但在写入文件时都是乱码
2.后来我又把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); //执行写入,打开都是乱码
.....
实在郁闷了。
后来改了:
改成:
char keys[3]="0/0";
.....
keys[0]=chn;
ZwWriteFile( //写入文件
hfile,
0,
0,
0,
&ioStatus,
&keys,
strlen(keys),
0,
0);
就通过了.再也没有乱码了,天空一片睛朗!
相关文章推荐
- python写入csv文件中文乱码问题解决办法
- php fwrite写入文件bom头导致的乱码问题解决
- PHP写入EXCEL文件,解决了乱码的问题
- ECLIPSE 关于.properties文件中文乱码问题解决
- Python 2.7 解决写入文件的中文乱码问题
- 写入文件以及解决文件名中文乱码问题
- Java底层代码实现单文件读取和写入(解决中文乱码问题)
- 关于Spring boot中读取属性配置文件出现中文乱码的问题的解决
- 解决关于打开plist文件乱码问题,plist转换为xml文件的txt文件!
- 关于eclipse导入项目properties文件中文编码乱码问题的解决
- Java读取、写入文件如何解决乱码问题
- 解决文件过滤驱动安装失败,提示依赖的 fltmgr.sys 不存在的问题
- Java中按照行读取和写入文件 日志常用操作 解决中文乱码问题
- Java读取、写入文件如何解决乱码问题
- Java 读取写入文件乱码问题解决
- php中隐形字符65279(utf-8的BOM头)问题和fwrite写入文件bom头导致的乱码问题解决
- 关于jsp include文件时的一个乱码解决的问题
- php中隐形字符65279(utf-8的BOM头)问题和fwrite写入文件bom头导致的乱码问题解决
- php fwrite写入文件bom头导致的乱码问题解决