マカロニペンギンの健忘録

特にテーマを決めているわけじゃないが、私が気になったことを書いていく予定です。

MicrosoftのCopilotを使ってみた

2024年01月12日 | プログラミング
複合プリンター更新に伴い、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のパス名を修正するだけで実行できてしまいました。
 
いやいや、すごい時代になったものだ。