PrintScreenを押すだけのスクショアプリをAIと作った

プログラミング初心者の私が、AIに手伝ってもらいながらWindows向けのスクリーンショットアプリを作り、GitHubに公開しました。

「こんなツールがあれば便利なのに」と思ったものを、AIと相談しながら形にしていく過程はとても楽しく、勉強にもなりました。この記事では、作ったアプリの紹介と、作ってみて分かったことをまとめます。

作ったもの:Quick Screenshot

PrintScreenキーを押すだけで、各ディスプレイの画面を、1枚ずつ別々の画像ファイルとして自動保存するツールです。軽量で、すぐに動くことを目指しました。

Windows標準の「Snipping Tool」が個人的に使い勝手が悪く、ただただ「Print Screen」キーを押す度に画面をフォルダに突っ込んでくれるツールを想像して作成しました。

主な機能

1. マルチモニターに対応

ディスプレイごとの解像度やスケーリング(100%、125%など)を個別に認識し、縦横比を保ったまま、画面ごとに1枚ずつきれいに保存します。複数のモニターを使っていると、1枚の画像に全部つながって保存されて困ることがありますが、それを避けられます。

2. Windows標準のスクショ機能を自動で切り替え

起動するとPrintScreenキーの割り当てがこのアプリ優先になり、アプリを終了すると元の設定に自動で戻ります。設定を手作業でいじらなくて済みます。

3. システムトレイに常駐

タスクバー右下の通知領域に常駐するので、作業の邪魔になりません。ワンクリックで保存先のフォルダを開けます。

4. 設定画面(GUI)つき

保存先フォルダの指定と、保存形式(PNG / JPEG)の切り替えが、画面上の操作でできます。

使っている技術

動作環境は Windows 10 / 11、Python 3.10以上です。使っている主なライブラリは次のとおりです。

  • mss:画面のキャプチャ
  • pynput:キーボードの入力を常に監視(PrintScreenキーの検知)
  • pystray:システムトレイへの常駐
  • customtkinter:設定画面のGUI
  • Pillow:画像の処理

パッケージ管理には、高速で扱いやすい uv を使っています。

苦労したところ

一番の山場は、システムトレイ(pystray)とGUI(CustomTkinter)を同時に動かしたときの競合でした。両方を別々のスレッドで動かすと、画面がフリーズしてしまいます。

最終的には、メインスレッドでフラグを監視し続けるループを作ることで解決し、固まらない快適な動作になりました。

作ってみて

自分の困りごとから始めたので、完成したあとも実際に使い続けられるのがうれしいところです。

おわりに

初心者でも、AIと一緒なら、欲しいツールを形にしてGitHubで公開するところまで進められました。コードはGitHubで公開しているので、気になった方はぜひのぞいてみてください。

https://github.com/ino-inori/quick-screenshot

コメントを残す

プロフィール

inoinori

オジサン

人気記事

  1. PCスペック紹介 ゲーム
  2. PrintScreenを押すだけのスクショアプリをAIと作った プログラミング
  3. Hello world! 未分類
  4. 日帰り仙台旅行記 日記

月間アーカイブ