One-Touch SearchをPython3.7.3で再現する(Windows10)


One-Touch Searchって何?

ハイライトした文字列をボタンワンクリックでgoogle検索してくれる機能です。
LogicoolのM950というマウスに搭載されている便利機能です。
今回Pythonで再現した理由は、この便利な機能が次の世代のマウスからなくなってしまったからです。

余談ですが、この機能が便利すぎて離れられないためにM950を9年近く使い続けています。途中チャタリングに悩まされましたが、分解して修理して使い続けるくらい便利な機能です。

プログラムの大枠

  1. Pythonでスクリプトを書く。
  2. 1をbatファイルで起動できるようにする。
  3. 2のショートカットを作成し、ショートカットキーで起動させる。

1. Pythonのスクリプト

import webbrowser
import pyautogui
import pyperclip
import time

pyautogui.hotkey('alt', 'tab')
time.sleep(0.03)
pyautogui.hotkey('ctrl', 'c')
time.sleep(0.03)
clipboard = pyperclip.paste()
url = 'https://www.google.co.jp/search?hl=ja&q=' + clipboard

webbrowser.open(url)

流れとしては、
1. pyautoguiでキーボード入力を行い、ハイライトした文字列をコピー。
2. pyperclipでクリップボードの内容を'clipboard'読み取る。
3. 'url= 'の行でgoogleでの検索用の'url'を作成。
4. webbrowserで標準ブラウザで'url'にアクセス
です。
time.sleep()の部分では、これを入れないと私の環境ではうまくコピーができなかったため入れました。
※ここで作成した.pyファイルにスペースを含めないように注意してください。

2. batファイルの作成

任意の場所にbatファイルを作成します。
まずは 右クリック>新規作成>テキストドキュメント を行ってください。
テキストの内容は

python.exeへのパス(半角スペース)1で作成した.pyへのパス

です。
その後、このテキストファイルの拡張子を.txtから.batに変更してください。
その際に表示される警告は無視して構いません。

3. batのショートカットを作成し、ホットキーで実行できるようにする。

  1. 2で作成した.batファイルを右クリックして、「ショートカットの作成」を選択して下さい。
  2. できたショートカットを右クリックして「プロパティ」を選択して下さい。
  3. 「ショートカット」のタブを選択し「ショートカットキー」を選択した後、任意のキーの組み合わせ*を押して下さい。
  4. 「実行時の大きさ」を「最小化」にすると見栄えが良くなります。

これで出来上がりです。
例ではonetouch.batというファイルを作成し、「Ctl + Shift + Alt + K」でショートカットキーを設定しました。
任意の文字列をハイライトして、3で設定したショートカットキーを押してみて下さい。うまく行けば、google検索できるはずです。
このショートカットキーをマウスのボタンに割り当てればマウスのボタンを押すだけで検索ができます。

問題点

  • ハイライトした文字列の始まりが「#」だとうまく検索できない。
  • 純正のOne-Touch Searchより若干遅い。