0

UAC を有効にして、システム ドライブに RegisterDeviceNotification() を使用することは可能ですか? UAC なしで完全に動作しますが、UAC を使用すると CreateFile() は Access Denied で失敗します。

CreateFile の呼び出し方法は次のとおりです。

aHandle:=CreateFile(PChar(sDevice), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

CreateFile() パラメーターを調整して、ドライブの最小限の読み取りアクセス許可を取得する方法はありますか、それとも管理者権限がないと不可能ですか?

前もって感謝します。

4

2 に答える 2

0

GENERIC_READ 以外のものを使用してみましたか? 0 でも機能する場合があります。FILE_SHARE_READ も少し制限的です。ループで実行し、すべての共有モードを試す必要があるかもしれません...

于 2011-02-14T17:31:34.863 に答える
0

ファイル システムの変更については、FindFirstChangeNotification(MSDN)が役に立ちます。関心のあるディレクトリの通知を設定するだけで、すぐに利用できます。これを StackOverflow で検索すると、このトピックに関する多数のヒットが得られます。

ディスク容量を監視するには、GetDiskFreeSpaceEx(MSDN)が便利です。ボリュームの現在の状態が必要なときに呼び出すだけです。

于 2011-02-14T18:42:01.597 に答える