マウス・キーボード操作を受け付けないプログラムを操作する

  • このエントリーをはてなブックマークに追加

1. 何ができるの?

UWSC, 自動操作ライブラリを使っても操作できないプログラム・ゲームを操作できます。
マウスのポインタは動くけど、クリックができない場面に遭遇したので作ってみました。

※マウス・キーボードが誤動作して、PCの設定が変わった、Amazonで変なの買っちゃった、
などの動作をするかもしれなので、ご承知の上ご使用ください。
作者は責任を負いません。

(1)仕組み

作成したPythonライブラリからシリアル経由でArduino Pro Microを制御し、Arduino Pro Micro内部でHID機能を実行します。Arduino Pro Microからマウス・キーボード操作としてWindows・ゲーム等のプログラムを制御します。

Windows・ゲーム等のプログラムから見ると、USBでつながった物理的なマウス・キーボードで操作されている様にしか見えないので、UWSC, 自動操作ライブラリを使っても操作できないプログラム・ゲームも操作できるはずです。

2. 用意するもの

(1) Arduino Leonardo もしくは Arduino Pro Micro

Amzoznだとこれとか
ATmega32U4 5V 16MHz Arduino互換ボード (Leonardo)
Arduino Leonardo 開発ボード 超小型 USB ダイレクト ATmega32U4 ピンヘッダ付

楽天だとこれとか

created by Rinker
¥2,654 (2020/07/08 06:16:56時点 楽天市場調べ-詳細)

Pro Micro 3.3V / 8MHz Arduino互換マイクロコントローラ

(2) 実行プログラム

SerialHID.zip

3. 環境構築

(1) Arduino環境構築

https://www.arduino.cc/en/Main/SoftwareからArduino IDEをダウンロードしてインストール。

② [ファイル] – [環境設定] を開き、追加のボードマネージャのURLに以下を追加
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

③ [ツール] – [ボード] – [ボードマネージャ]を開く

SparkFun AVR Boardsで検索しインストール

⑤ [ツール] – [ボード] から、SparkFun Pro Microを選択

⑥ [ツール] – [プロセッサ]から、手元のArduino Pro Microにあった設定(3.3V or 5V)を選択

⑦ Arduino Pro MicroをPCにつなげる

SerialHID.zip内のSerialHID.inoを開く

⑨ [ツール] – [シリアルポート]から、⑦でつなげたArduino Pro Microのポートを指定

⑩ 左上の「→」(書き込みボタン)を押下

⑪ 書込み完了すればOK

(2) Python環境構築

① PySerialをインストール

SerialHID.zip内のSerialHID.pyをアクセス可能なディレクトリに配置

4. 使い方

基本的な使い方は、ArduinoのMouse, Keyboardライブラリを踏襲しています。
https://www.arduino.cc/reference/en/language/functions/usb/mouse/
https://www.arduino.cc/reference/en/language/functions/usb/keyboard/

(1) SerialHIDのインポート

(2) ポート番号を指定

(3) マウス、キーボードを作成

(4) マウスクリック

(3) マウスを動かす

(4) マウスのホイールボタンを押下後、1秒たったら離す

(5) キーボード入力

(4) 左Shiftキーを押下し、aを入力後、左Shiftキーを離す

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメント

  1. min より:

    SerialHID.zipをいただけないでしょうか。
    2台のPCから別のブラウザでDLできませんでした。

    1. t.uchida より:

      記事内のファイルを直リンクにしてみました。ダウンロードできるかご確認の程よろしくお願いいたします。

      1. min より:

        ダウンロードできました。ありがとうございます!

コメントを残す

*