情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

AutoHotkeyでマウスカーソルを操作してツイートボタンを押す方法 このエントリーを含むはてなブックマーク

tweetbutton.png

今回は、マウスカーソルを操作して、TweetDeckのボタンをクリックする方法をメモしておきます。

「現在のマウスカーソルをツイートボタンへ移動→クリック→元あった位置にマウスカーソルを戻す」を高速で行うことで実現します。GUIの操作をショートカットキーに割り当てる原始的な方法というか力業ですね。

どうしてこんなことが必要なのか

TweetDeckには、Enterでツイートする機能があるのですが、間違って送信する原因になるのでOFFにしたほうが良いです。しかし、OFFにしてしまうとショートカットキーが無くなってしまい(未発見)、毎回ツイートボタンをクリック必要が出てきて不便です。はい、AutoHotkeyの出番ですね。

スクリプト

現在利用しているスクリプトがこちら。

#IfWinActive TweetDeck ahk_class ApolloRuntimeContentWindow
vk1Dsc07B & t::
	MouseGetPos, x0, y0
	WinGetPos, X, Y, Width, Height
	MouseMove, Width - 50, 160
	MouseClick, left
	MouseMove, x0, y0
	Return
#IfWinActive

以下、このスクリプトの解説をします。

特定のアプリケーションでのみ有効なホットキーを設定する

TweetDeckでのみ動くホットキーを設定するため、

#IfWinActive TweetDeck ahk_class ApolloRuntimeContentWindow
(…)
#IfWinActive

で囲んでいます。一行目の「TweetDeck」がアプリケーションのタイトルで、「ApolloRuntimeContentWindow」がアプリケーションのクラス名です。タイトルはよいとして、アプリケーションのクラス名は、AutoHotkeyに付属するWindow Spyでアプリケーションを選択することで知ることが出来ます。

無変換+tに割り当てる

無変換+tに割り当てるために

vk1Dsc07B & t::

と書いています。「vk1Dsc07B」は「vk1D」や「sc07B」で十分かも。いずれにせよ、無変換キーを指します。

現在のマウスの位置を取得する

現在のマウスの位置をあらかじめ取得しておきます。

MouseGetPos, x0, y0

MouseGetPosは、現在のマウスのX、Y座標を変数「x0」「y0」に格納してくれます。ちなみに、マルチモニタでもちゃんと動きます。

現在選択中のウィンドウの位置と大きさを取得する

現在選択中のウィンドウ、つまりTweetDeckアプリケーションの現在位置(X,Y座標)とそのサイズ(縦横の長さ)を次のコードで取得します。

WinGetPos, X, Y, Width, Height

これにより、座標と横幅・高さがそれぞれ変数「X」「Y」「Width」「Height」に格納されます。

マウスカーソルの移動

いよいよ、マウスカーソルをツイートボタンの位置に移動します。今回は、ボタンの位置の「右上の角からの相対的な位置はウィンドウのサイズに依存しない」という特徴を利用して、次のように記述しました。アプリケーションの左上の角を原点(0,0)として扱うため、Widthを使って右上からの相対座標っぽく書いています。

MouseMove, Width - 50, 160

クリック

マウスカーソルの移動とクリックは別々に行われます。ここでは、もう移動は終わったので、クリックを次のように実行します。

MouseClick, left

マウスカーソルの位置を元に戻す

あとは位置を戻すだけです。簡単ですね。

MouseMove, x0, y0

まとめ

この方法を利用することで、GUI操作を強引にショートカットキーに割り当てることが出来ます。ショートカットキーがそもそも存在しないアプリケーションの操作自動化に効果を発揮します。

AutoHotkey | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。