0

システムのルート ドライブ (C:\) で、すべてのファイルとフォルダーの変更通知を監視しています。ReadDirectoryChangesW() WIN API を使用して、VC++ を使用してこれを実現しています。これで、名前の変更、削除、作成など、ファイルのあらゆる種類の変更通知を監視できるようになりました。

ただし、私の問題は、プロセスやプログラムではなく、ユーザーが手動で行うファイルとフォルダーの変更のみを監視したいということです。

ReadDirectoryChangesW() WIN API を使用してルート フォルダーを監視すると、ほとんどの一時ファイルとデータ ファイルが OS またはサード パーティがインストールしたアプリケーションによって作成されるため、ほんの数分で何千もの変更通知を受け取るためです...

ユーザーが手動で行ったファイルの変更のみを監視するにはどうすればよいですか (つまり、ユーザーがマウスまたはキーボードを使用して開始した変更のみ)。

4

2 に答える 2

3

ユーザーが開始したアクティビティとアプリケーションが開始したアクティビティを区別する方法はありません。考えてみれば、ユーザーが開始したアクティビティは、Windows エクスプローラー自体、DOS プロンプト、メモ帳など、プログラムによって実行されます。OS の観点からは、すべてが最終的に監視が行われる同じファイル システム API を通過します。

于 2013-01-03T18:05:23.293 に答える
1

手がかりは最終的にファイルの場所にあります。ユーザー ドキュメントは適切にマイ ドキュメントに属します。アプリケーションに属するファイルは CommonAppData に属し、1 人のユーザーの一時ファイルは AppData に格納されます。

もちろん、ユーザーが「手動で」メモ帳を使用して AppData のログ ファイルを開くと、これを発見する方法はありません。

于 2013-01-04T09:51:03.013 に答える