複合プリンター更新に伴い、FAXの受信はpdfでハードディスクに格納することになった。しかし、受信したときに「ピー」と音はするが、聞きそびれてしまうと受信したことに気が付かないと事態になってします。
そこで受信したことをパソコンに教えてもらうということにした。
しかし、WindowsのAPIにそのような機能があるということまではネットを検索すればわかるのだが、自分でプログラムを組むにはハードルが高い。そこでMicrosoftのCopilotに聞いてみた。
質問した内容は以下の通り
「開発言語python windows api findfirstchangenotificationでフォルダー監視ソフトを作成」
それで以下のプログラムを出力してきた。
import win32file
import win32con
path_to_watch = "C:\\Users\\user\\Documents\\test_folder"
hDir = win32file.CreateFile(
path_to_watch,
win32con.GENERIC_READ,
win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE | win32con.FILE_SHARE_DELETE,
None,
win32con.OPEN_EXISTING,
win32con.FILE_FLAG_BACKUP_SEMANTICS,
None
)
while True:
results = win32file.ReadDirectoryChangesW(
hDir,
1024,
True,
win32con.FILE_NOTIFY_CHANGE_FILE_NAME |
win32con.FILE_NOTIFY_CHANGE_DIR_NAME |
win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES |
win32con.FILE_NOTIFY_CHANGE_SIZE |
win32con.FILE_NOTIFY_CHANGE_LAST_WRITE |
win32con.FILE_NOTIFY_CHANGE_SECURITY,
None,
None
)
for action, file_name in results:
full_filename = path_to_watch + "\\" + file_name
print(full_filename, action)
です。 (¥ = 逆スラッシュ)
実際にはfindfirstchangenotificationではなくReadDirectoryChangesWで出力したきたのですが、path_to_watchのパス名を修正するだけで実行できてしまいました。
いやいや、すごい時代になったものだ。
※コメント投稿者のブログIDはブログ作成者のみに通知されます