我在DLL中使用了如下代码创建文件:
HANDLE pHandle = CreateFile("C:\\test",GENERIC_ALL,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (pHandle ==INVALID_HANDLE_VALUE)
cout<<"CreateFile Error:"<<GetLastError()<<endl;
然后将dll注入到explorer.exe中执行。
在xp以及没有开启UAC的win7上都是正常的,但开启了UAC的win7上,会创建失败,GetLastError返回的是5,权限不足。
为什么会失败呢?
explorer.exe难道不是管理员权限运行的吗?哪怕不是,应该也有文件读写的权限吧?
请问该如何处理才能成功创建呢?
高洛峰2017-04-17 15:41:57
Of course explorer.exe does not run with administrator privileges
In the file manager, navigate to the root directory of the system disk and try to create a new file, but it also fails
大家讲道理2017-04-17 15:41:57
The situation when using vs2010 is: Project-Properties-Connector-Manifest File-UAC Execution Level, select requireAdministrator.