一个WINDOWS的核心问题,望与大家一起讨论,进来就算你不回也肯定也有收获

fyx010641 2009-08-18 11:34:20
在开发一款U盘时,想与PC机进行自定义命令的通信(例如:从PC发一个命令控制指示灯的亮与灭,U盘上的监测和处理程序已经写好),可是在非管理员用户下调用CreateFile()设备不能打开,用GetLastError()发现错误值为5,我应该怎么实现呢?请高手们指点吧,谢谢了!
在管理员用户下是没有问题的,而且在非管理员下访问硬盘也是没有问题的,急呀。不知道从哪里着手了。

HANDLE hDevUSB=NULL;
hDevUSB = CreateFile(
devInterfaceDetailData->DevicePath,//&guidHID_1,//
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,//FILE_ATTRIBUTE_NORMAL
NULL);
...全文
177 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingxx78 2009-09-19
  • 打赏
  • 举报
回复
没弄过,帮顶下。
a452325305 2009-09-19
  • 打赏
  • 举报
回复
学习下 每做过
fyx010641 2009-09-18
  • 打赏
  • 举报
回复
怎么就没人来回答呢!
fyx010641 2009-08-25
  • 打赏
  • 举报
回复
mymtom
说得很有道理
那样的话就是一定要在管理员下先运行服务
现在我们的做法是想直接在飞管理员下就使用了,哪怕管理员从来没登陆过
呵呵!很大的挑战呀 很久了还没解决
主要是现在国外有人做到了 台湾也有一家公司实现了
不知道怎么弄的 我们反汇编出来就是直接调用的CreateFile()呀
苦等大家一起讨论...
wzyzb 2009-08-24
  • 打赏
  • 举报
回复
。。。。
mymtom 2009-08-24
  • 打赏
  • 举报
回复
用户程序不能直接访问设备,这是很正常的。
写个service设置为自动运行。
用户程序通过service访问设备(打开,关闭,发送命令)
ysysbaobei 2009-08-24
  • 打赏
  • 举报
回复
顶下
fyx010641 2009-08-24
  • 打赏
  • 举报
回复
怎么还没有人俩回答我呢!
等呀!
改为另一种方法 fread()和fwrite()也不成呀 !
zeerd 2009-08-18
  • 打赏
  • 举报
回复
应该有办法在非管理员权限下,强性提升程序自身的运行权限。
这样可能会解决你的问题。

去google/baidu搜索一下,提升权限的文章很多。
fyx010641 2009-08-18
  • 打赏
  • 举报
回复
在我做了义个小处理,先在管理员用户下把监测到得设备权限都提升为管理员的权限(做的一个服务程序),也可以实现了,但是那样太麻烦,一定要先从管理员用户下启动,还另外要做一个额外的程序,
高手们有没有什么更好的办法!谢谢!

用的 MASS STORAGE协议,其实我也想过先用MASS STORAGE做U盘的功能,然后再用HID做通信,那样好像也不是很科学,看同志们有么有更好的办法推介!
fyx010641 2009-08-18
  • 打赏
  • 举报
回复
楼上的兄弟,应该是可以的,因为已经有案列实现了,只要能在非管理员下能把CREATEFILE()这个函数能调用起来就OK了,可是一时半会真想不出好法子!

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧