キーボード操作で画像を半自動でクリックしたりできる
「clip click keyboard」Windows用フリーソフト
開発のきっかけ
Youtube動画を見てますと広告が表示されますが、[スキップ >|]ボタンを毎回マウスカーソルを移動させてクリックするのが面倒なので、キーボード操作だけで半自動的に出来ないものかと考えてました。
残念ながらYoutubeのキーボードショートカットの割り当てはスキップボタンにはなさそうです。
アプリで対応するとしてもマウスカーソルの絶対座標を指定する方法ではボタン位置が変わると対応できないですから、AI的な画像認識でのクリック位置特定が必要です。
それを実現するアプリを開発しました。
Youtube動画の広告スキップボタンをキータイプでクリックできる体験をしてしまいますと、かなり便利なことに気が付きます。
(とはいえ、しかし、近年ではスキップボタンなしのスキップできない広告が出るようにもなってきているようですので、そのタイプには対応しておりません)
他のフリーソフトでも似たようなものはあるとは思うのですが、簡単に使えるものを開発しました。
本アプリはあくまで人の操作を半自動的に行う汎用的な便利ソフトですから、いわゆる広告カットのプラグインなどとはコンセプトが異なりますので、Youtube側から禁止されることもないだろうと思います。(保証できるものではないですが。)
参考までにこのアプリはクレイジースモールシリーズ開発販売元の日本在住善良な一般庶民日本人が作成してますので、個人情報などを外国へ抜かれる心配もなく安全度は高いです。変なことをやっていたら製品販売に悪影響しかないですから信用してもらって大丈夫です。
使用ライブラリも世界中で学術用途でも産業界でも広く使われているものですので安心です。
本アプリではクリックだけでなく操作のカスタマイズもできるようにしましたので法人様向け産業用途での汎用性もあります。(クレイジースモールシリーズは法人様のリピート購入も多いです)
画像の位置を探してくれるのでマウス移動の手間がありません。
通常のキーボードでも使えますが、
クレイジースモールシリーズと連携させることで様々な操作を手元のガジェットで動かすことができます。
クレイジースモールシリーズでは例えば足で操作することも出来る製品もあります。従来のマウスやキーボードでは不可能だった操作性を出すこともできます。
Youtube操作専用ガジェットは最後にご紹介します。
仕組み
デスクトップ画面全体から、指定した画像と一致する部分を検出して、なんらかの動作(初期値はマウス左クリック)をさせます。画像は複数登録できます。
たとえばYoutube動画のSKIPボタンは半透明なので背景が透けてますから完全に一致する場合はまれです。そのような場合を想定して一致度(初期値は60%)を指定できるようにしてます。
キーを押した時点で画面全体をキャプチャして、その画像をサーチします。位置を特定して画像の中心位置をクリックします。
使用したライブラリ
画像サーチのためにOpenCVを利用してます。以下がライブラリのライセンスとなります。
opencvLICENSE.txt
Apache License ver2というもので、商用利用可のものです。
本アプリについて
無料で機能制限なしでご利用いただけます。商用利用可です
ただし、本アプリを使用してなんらかの不利益や損害があった場合でも自己責任でお願いします。
動作確認OS
Windows10,11
確認済デバイス
通常のキーボードおよびcooyou.org クレイジースモールシリーズ
インストール方法
アプリダウンロードは下記からできます。
clip click keyboard ver1.0.0
clipclickkeyboard100.zip
zipを解凍して任意のフォルダへ置いてください。インストーラーはありませんので、解凍して配置するだけです。
以下ではC:/clipclickkeyboardというフォルダに配置したとして説明します。そこに実行ファイルもあるとします。
この他にOpenCVのopencv_world4100.dllというランタイムライブラリが必要です。それは以下からダウンロードできるファイル中に含まれてます。
https://opencv.org/releases/
ここで、OpenCV – 4.10.0という(バージョン間違いのないように)表示枠内のWindowsというボタンをクリックしますとopencv-4.10.0-windows.exeがダウンロードできます。
この実行ファイルを実行しますと中身が解凍されます。その中のbuild/x64/vc16/binの場所にopencv_world4100.dllファイル(末尾が4100d.dllのファイルとは違います)があります。
エクスプローラで拡張子が表示されない場合は次の設定で表示させると分かりやすいです。
そのopencv_world4100.dllファイルをclipclickkeyboardの実行ファイルと同じフォルダ内にコピーしてください。
コピー後はopencvの解凍されたフォルダ一式は不要です。opencv-4.10.0-windows.exeも不要です。
画像クリップの準備
半自動的にクリックしたい画像のファイルをインストールフォルダ(実行ファイルがあるフォルダ)に配置してください。
画像のファイル名はclipXX.jpgとしてjpeg形式の画像を保存してください。XXは任意ですので01などの数字がよろしいかと思います。
ファイル名は半角小文字にしてください。
つまりclip01.jpgやclip02.jpgのようなファイル名です。複数登録できます。
ただし、一回のキータイプでははじめにヒットした1つの画像に対してのみ操作が適用されます。
YoutubeのSKIPボタンのような半透明なボタンは、背景が異なるものを複数登録しますとヒット率が上がります。
画像は画面キャプチャを利用して作成すると簡単です。[PrtScr] キーもしくは[Win]+[Shift]+[S]キーでマウスで範囲指定でキャプチャできますので、
あとは、Windowsに標準で付属する「ペイント」ソフトに貼り付けて、clip01.jpgのようなファイル名で保存してください。
※異なるPCで画像は使いまわさないほうがいいかもしれません。デスクトップ解像度が異なる場合は画像サイズも変わる場合があるためです。文字フォントも違うかもしれません。
※実行中に画像を追加、削除、編集しても大丈夫です。キータイプの時点で毎回再読み込みします。
ショートカットとオプション
実行ファイルはclipclickkeyboard.exeというファイルです。実行ファイルを右クリックしてメニューからショートカットを作成しておきましょう。
ショートカット作成のメニューがでない場合は、「その他のオプションを確認」を選ぶと表示されます。
次に作成したショートカットを右クリックしてメニューからプロパティを選びます。
リンク先という入力欄の最後に半角スペースをあけてから、次の2つを半角数字で指定するとオプションが有効になります。
1つ目が一致率(%)です。画像との一致率を指定します。高いほど厳密にサーチします。初期値は60です。ここでは例として50を指定します。
2つ目がキーコードです。これはこちらのキーコード表を参考にして設定してください。インストールフォルダ内にもあります。
vkcode.txt
ここでは例としてF4キーの場合は0x73を指定します。0xというのは16進数を表わしますが0xがない場合は10進数での指定となります。
初期値はPAUSEキーの0x13となってます。
オプションが指定できましたら、「OK」ボタンをクリックして閉じてください。オプション未指定の場合は初期値での動作となります。
※キー打ちが無効になるわけではありません。画像にヒットした場合にはキー打ち後にクリック(または指定動作)が実行されますので、キー打ちが不要の場合はPAUSEボタン等のなるべく使用頻度の低いキーを指定したほうがいいと思います。
※指定キーはキー打ちがあるたびごとに画像ヒットサーチの処理が動きますのでCPUの負荷が一時的に増えます。どのアプリ上のキー打ちにも反応して動作します。
※ちなみにキーボードのPAUSEキーは例えばコマンドプロンプトでの実行を一時停止させる動きもあります。その場合はESCキーで実行再開できます。
実行確認
実際に使ってみましょう。サンプルとして下記ではSKIPという画像を用意してます。
clipclickkeyboard.exeのショートカットをダブルクリックして実行します。
特になにも変化はありませんが裏で動作してます。2重起動はしないようにお願いします。2重起動かどうかは後述のタスクマネージャーで確認できます。
セキュリティや権限の警告画面が出るようでしたら、「このファイルを開く前に常に警告する」チェックはOFFにしてから実行するように操作してください。
または、青画面で「詳細情報」をクリックしてから実行ボタンを押す場合もあります。
つぎに、ペイントソフトで画像を表示させた状態で、F4キーを押しますと、マウスカーソルが画像に移動してクリックされたことが確認できます
うまく動かない場合はキーボードのF4キーが左下のFnキーを押しながら操作しないといけないキーボード設定になっているのかもしれません。F4キーだけではそのキーの特殊機能のほうが有効になっている場合があります。
※画像を適時追加しても結構です。その場合に実行ファイルを再起動させる必要はありません
ユーザー定義動作
次に、マウス移動+クリックという動作ではなくユーザー定義のスクリプトを動作させてみましょう。
clipapp.vbs.txtというテキストファイルがありますが、これはサンプルです。
このファイル名をclipapp.vbsにリネームしますと、VBSのスクリプトとして実行可能となります。
clipapp.vbsという固定のファイル名が存在した場合はこちらを実行する仕組みになってます。
さて、F4キーを押してみましょう。すると、ダイアログが表示されて数字一覧が表示されたかと思います。
※実行ファイルを再起動させる必要はありません
ここでもセキュリティや権限の警告が出ましたら、許可する設定にしてください。
このスクリプトではこのように7つのパラメータが渡ります。
1つめ:設定した一致率
2つめ:設定したキーコード。上記の場合は10進数で115で、16進数ですと設定した0x73と同値です。
3つめ:画像との一致率
4つめ:デスクトップ画面上での画像の左上横座標
5つめ:デスクトップ画面上での画像の左上縦座標
6つめ:デスクトップ画面上での画像の右下横座標
7つめ:デスクトップ画面上での画像の右下縦座標
となってます。左上と右下の平均位置が画像の中心位置となります。
例えば、このスクリプトをカスタマイズすることで、任意の実行ファイルを実行することも可能ですし、様々な動作を行うことができます。
ひとまずこのスクリプトは以下では使用しませんので、再びファイル名をclipapp.vbs.txtとして無効にしておきましょう。そうすればマウス左クリックの動作になります。
※実行ファイルを再起動させる必要はありません
Youtubeで実験
「SKIP」ボタンの画像やYoutube画面で勧誘の「参加しない」ボタンの画像を作成して試してみましょう。ファイル名はclipXX.jpgです。
ブラウザでYoutube動画を表示しまして、広告のSKIPボタンが表示されましたらF4キーを押すと、その部分にマウスカーソルが自動的に移動してクリックされることを確認できます。
感動ですね。
クリックされない場合は、半透明の背景が一致しにくかったためかもしれません。コツとしてはSKIPの文字範囲ギリギリだけの画像のほうがいいようです。
背景の違いで何種類か画像をつくっておきましょう。ちなみに画像一致はモノクロで処理されますから、色の違いよりも濃淡で判別してます。
設定した一致率を下げてみてもいいかもしれません。40でやってみるとヒットすると思いますが、おすすめは初期値の60です。あまり低いと誤認識される場合があります。
クレイジースモールシリーズのガジェットで手元で操作できるようにするとYoutube視聴が楽になります。
実行終了方法
実行中かどうかは、タスクマネージャーからしか確認することができません。
タスクマネージャーはデスクトップ下のバーの空欄を右クリックして「タスクマネージャー」を選択することで起動できます。
左ペインでユーザーを選択してからユーザー名をクリックしますとタスク一覧が表示されます。その中にclipclickkeyboard.exeがあれば起動中です。
終了するにはその部分を右クリックして「タスクの終了」を選択します。すると、一覧から消えます。これで実行は終了してます。
スタートアップへの登録
毎回起動するのも面倒ですので、PC起動時に起動するようにスタートアップへショートカットを登録しておくと楽です。
スタートアップは左下Windowマークを右クリックして「ファイル名を実行」を選択して、入力欄にshell:startと入力して「OK」ボタンをクリックします。
すると、スタートアップのフォルダが表示されますので、そこにショートカットをコピーしてください。これで自動的に起動されるようになります。
実行したくない場合は、そのショートカットを削除してください。
複数のキーに対応させる方法
インストールフォルダをコピーして別フォルダにして、別のフォルダでオプション指定して実行してください。
※画像処理でCPU負荷が高まりPCのパフォーマンスに影響する可能性があります。なるべく使用頻度の低いキーに割り当てましょう。
Youtube専用ガジェット
クレイジースモールシリーズのYoutube専用ガジェット「クレイジースモールYTB」は以下のリンクからご参照ください。とても便利です。
「クレイジースモールYTB」
cooyou.orgホームページ
created by cooyou.org