c++ - win7下CreateFile失败,GetLastError返回5

 哈哈不会玩NO1 发布于 2022-10-31 14:14

我在DLL中使用了如下代码创建文件:

HANDLE pHandle = CreateFile("C:\\test",GENERIC_ALL,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (pHandle ==INVALID_HANDLE_VALUE)
cout<<"CreateFile Error:"<

然后将dll注入到explorer.exe中执行。
在xp以及没有开启UAC的win7上都是正常的,但开启了UAC的win7上,会创建失败,GetLastError返回的是5,权限不足。
为什么会失败呢?
explorer.exe难道不是管理员权限运行的吗?哪怕不是,应该也有文件读写的权限吧?
请问该如何处理才能成功创建呢?

2 个回答
  • 用vs2010的情况就是:项目-属性-连接器-清单文件-UAC执行级别,选择requireAdministrator。

    2022-10-31 22:33 回答
  • explorer.exe当然不是以管理员权限运行的
    你在文件管理器中,定位到系统盘根目录,试试新建一个文件,同样失败

    2022-10-31 22:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有