変更が行われるまでポップアップするイベントのように、ブロックすることなくファイルのセキュリティ権限の変更をキャッチしたい。ブロッキングのないファイルのセキュリティ権限の変更をキャッチ
また、サードパーティのモジュールやソフトウェアをインストールしたくありません。
これの主な要件は、モジュールまたは組み込みモジュールの一部にあることです。
私は現在、この機能により、セキュリティの変更を見ている:
import win32con, win32file
def security_watcher():
specific_file = "specific.ini"
path_to_watch = "."
FILE_LIST_DIRECTORY = 0x0001
hDir = win32file.CreateFile(path_to_watch,
FILE_LIST_DIRECTORY,
win32con.FILE_SHARE_READ |
win32con.FILE_SHARE_WRITE |
win32con.FILE_SHARE_DELETE,
None,
win32con.OPEN_EXISTING,
win32con.FILE_FLAG_BACKUP_SEMANTICS,
None)
results = win32file.ReadDirectoryChangesW(hDir,
1024,
False,
win32con.FILE_NOTIFY_CHANGE_SECURITY,
None,
None)
print results
for action, file_name in results:
if file_name == specific_file:
# wake another function to do something about that
注:私はGUIアプリケーションでは、この機能を使用すると、それはGUIがフリーズするので、私はそれが非ブロックする必要があります。
どのようなOSですか?明らかにWindowsですが、どのバージョンですか?いくつのファイルを見る必要がありますか? (それが単なるものであれば、パイプなどに書き込むブロッキングプロセスをいつでも開始できます) – alexis
Windows 7と1つのファイル。 どうすればいいですか? – justlittlequestion
そして、パイプに書き込むととにかくブロックされます。なぜなら、GUIプロセスがパイプからの読み込みを待つと、何も変更されていなければブロッキングの問題が発生するからです。 – justlittlequestion