oyxd
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2807回复:12

键盘的设备名是什么?如何获得驱动程序的设备名?

楼主#
更多 发布于:2002-07-31 14:05
用CreateFile打开一个设备时,不知道设备名是什么?
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-31 14:47
如果是系统提供的驱动程序,可以用如下设备名:
\\\\\\\\.\\\\KeyboardClass
Where there is a will, there is a road.
oyxd
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-31 15:11
可是我试过了,为什么总是不行呢?
CreateFile(\"\\\\\\\\.\\\\KeyboardClass\",GENERIC_READ|ENERIC_WRITE,FILE_SHARE_READ, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
上面的结果总是返回:INVALID_HANDLE_VALUE

[编辑 -  7/31/02 by  oyxd]
wangxdong
驱动小牛
驱动小牛
  • 注册日期2002-07-08
  • 最后登录2003-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-31 17:30
应该是KeyboardClass0
请多多指教!
oyxd
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-31 19:46
还是不行,怎么回事?
肯定是系统提供的驱动
oyxd
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-31 20:02
但是我在打开其他设备时,例如:com1,lpt1,A:,等等都成功了?
究竟怎么回事????
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-01 10:53
要不你打开注册表,在
HKLM\\System\\CurrentControlSet\\Service\\KbdClass
中看看有没有确切的设备名称。
Where there is a will, there is a road.
oyxd
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-08-01 11:55
没找到,还有别的办法能获得键盘的设备名吗?
能不能从它的GUID入手
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-01 15:02
没找到,还有别的办法能获得键盘的设备名吗?
能不能从它的GUID入手

当然可以,请参照DriverStdio中得例子。
Where there is a will, there is a road.
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
9楼#
发布于:2002-08-01 16:29
键盘设备名是KeyboardClass0,但是它好像没有在DosDevice建立符号链接,所以在应用程序中用CreateFile打不开。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
oyxd
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-08-01 16:56
我从新写了一个键盘驱动,把IoCreateDevice函数的第三个参数改成了我自己定义的设备名(原来的是NULL),并且建立了DosDevice符号链接。安装上以后,该键盘驱动运行正常,但CreateFile仍然打不开,是不是还要在注册表里添加什么东西,能手工添加吗?
oyxd
驱动牛犊
驱动牛犊
  • 注册日期2002-07-29
  • 最后登录2003-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-08-01 17:03
我发现可以用CreateFile以设备名打开的设备在注册表里确实都有这样的键值“\\DosDevice\\***”,例如Com1:“\\DosDevice\\com1”。
那我怎样添加键值才能保证系统找到的是我重写的键盘驱动的设备名?
wangxdong
驱动小牛
驱动小牛
  • 注册日期2002-07-08
  • 最后登录2003-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-08-02 09:52
我写的键盘过滤驱动程序,用createfile也打不开,是不是键盘设备本来就打不开呀?不过过滤驱动也完成我的任务了,关注一下。
请多多指教!
游客

返回顶部