2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

パソコン操作を記録して RPA プログラムを自動生成してみた

Last updated at Posted at 2024-11-07

はじめに

デスクトップアプリのシミュレータの操作を自動化して結果を外部送信したくなったので、Python で PC 操作を自動化する必要が出てきました。しかし環境の異なる複数台のパソコン用に対して RPA プログラムを作成するのは非常に面倒です。
そこで今回、パソコン操作を記録して、その操作内容を再現する Python プログラムを自動生成するツールを開発してみました。土日の2日で開発したので、合計開発時間は15時間くらいだと思います。

やりたいこと

キーボード入力とマウス入力、そしてその間の時間をそれぞれ取得し、記録し、Python の RPA プログラムを自動で生成するアプリを作成する。また、アプリの作成はパイプラインを通して自動で実行する。

コンセプト

基本コンセプトとしては、①手軽で便利な言語(Python)で、② Rust 製のパッケージ管理ツール(uv)を使いつつ、③オシャレなフレームワーク(flet)でデザインを作成し、④入力取得用のツール(pynput)を元に操作を記録し、⑤自動操作用のライブラリ(pyautogui)で自動操作"実現します。そして、GitHub Actions を用いて実行ファイルの生成は自動で実行します。

ちなみにこちらのアプリの操作性を参考にさせていただきました。

環境周り

①言語
Python 3.12.5

②パッケージ管理
uv 0.4.2

③デスクトップアプリ開発用フレームワーク
flet 0.22.1

④入力取得
pynput 1.7.7

⑤自動操作
pyautogui 0.9.54

開発

アプリのデザインは Claude Artifacts と相談しながら、ほぼ全て Cursor Composer を使って開発しました。デバッグのタイミングで若干 ChatGPT を使ったりもしました、ライブラリの新しい情報などは SearchGPT の機能の方が強いように感じます。生成 AI の開発能力は凄いもので、正直プログラムは1行も書かずに作りきってしまいました。
成果物やデモは下記リンク先にありますのでご興味ある方は是非みてみてください。

成果物のアプリはこちらからダウンロードできます。リンク先画面下部の「(OS名)-build-artifact.zip」です。
https://github.com/MySweetEden/operata/releases/tag/v1.0.0

何かバグや改善案あれば Issue にください。

初期画面はこちらです。
image.png

Record ボタンを押してぽちぽちクリックするとこんな感じで操作が記録されていきます。
image.png

この操作記録に応じて、Python での RPA プログラムがリアルタイムに自動生成されます。
image.png

Run Code ボタンを押すとこのプログラムを実行し、実際に先ほどと全く同じパソコン操作を実施します。こちらで正しく操作が記録されていたか確認できます。
image.png

Export Code からプログラムはダウンロードできます。
image.png

Reset から全ての出力を消すこともできます。
image.png

自動ビルド

僕自身は Mac で開発していたんですが、Windows と MacOS の両方用の実行ファイルを作成したいと思っていました。ビルド時に複数環境の仮想マシンを使うなら、自分で環境をホストするか、どこか有料の SaaS サービスでも使うか、いずれにしろ大変そうだなと思っていました。しかし、どうやら今年から GitHub Actions を使えば無料で各環境の仮想マシンを使ってパイプラインを実行できると聞き(!)、使ってみることにしました。

GitHub Actions は触ったことがなかったので、flet をビルドする用の既存ワークフローのこちらを参考にさせていただきました。

GitHub Actions でのワークフロー作成の流れはだいたいこんな感じだったと思います。(うろ覚えでごめんなさい)

  1. Actions を開いて New workflow を押す
    image.png

  2. set up a workflow yourself を押す
    image.png

  3. コードをコピペして調整する
    初めて使う人でも結構簡単だと思います。雰囲気は Dockerfile に近い気がしました。
    image.png

  4. ワークフローの結果を確認する
    image.png

  5. 成果物を見る
    下の方に成果物が作られるのでダウンロードして起動したら使えます
    image.png

  6. 別 OS についても 1~5 を実施する
    必要に応じてこちらを参照しました。

振り返り

短期間でパッと開発できて楽しかったです。ただ、Cursor や Claude、ChatGPT あたりが凄すぎて正直プログラム書いた記憶がないんですよね。新しい技術を触るハードルが驚くほど低くなっているので、また何か近いうちに作りたいなと思いました。

参考

https://github.com/axel-magard/PyAutoGUI-Recorder
https://github.com/ndonkoHenri/flet-github-action-workflows/tree/main/.github/workflows

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?