c++ - win7下CreateFile失败,GetLastError返回5
PHP中文网
PHP中文网 2017-04-17 15:39:57
0
2
1088

我在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难道不是管理员权限运行的吗?哪怕不是,应该也有文件读写的权限吧?
请问该如何处理才能成功创建呢?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
小葫芦

もちろん、explorer.exe は管理者権限では実行されません
ファイル マネージャーで、システム ディスクのルート ディレクトリに移動し、新しいファイルを作成しようとしますが、これも失敗します

いいねを押す +0
大家讲道理

vs2010 を使用する場合の状況は次のとおりです: プロジェクト - プロパティ - コネクタ - マニフェスト ファイル - UAC 実行レベルで、requireAdministrator を選択します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート