APIを持たないWindows専用の業務アプリを自動化する
使うタイミング: 社内アプリのベンダーがAPIを公開しない;Claudeに日次データを入力させたい場合。
前提条件
- 対象アプリがインストールされたWindows 10/11 — 通常のインストール
- uvx用Python 3.10以上 — winget install Python.Python.3.12
フロー
-
UIツリーを調査Launch the app
BookingSystem.exe, then dump the UI tree of the main window. I want to see automation IDs.✓ コピーしました→ ツリーにAutomationIDを持つコントロールが表示される — 無名のボタンではない -
正常系を1回実行Now: open the New Booking dialog, fill customer 'Acme Inc', date 2026-05-12, save. Take a screenshot at the end.✓ コピーしました→ 予約が保存される;スクリーンショットで確認
-
汎用化してループRead /work/bookings.csv. For each row, repeat the booking flow. Save screenshots into /work/runs/.✓ コピーしました→ 各行が処理される;予約ごとにスクリーンショットが保存される
結果: CSVから再実行可能なベンダーアプリのヘッドレス自動化。
注意点
- カスタムコントロールを使用するアプリ(AutomationIDのないWinForms ListViewなど) — 固定ウィンドウ位置での座標クリックにフォールバック;脆弱性をドキュメント化する
- ループ中にモーダルダイアログがフォーカスを奪う — send_keysの前に常にアクティブウィンドウを確認;予期しない場合は中断する