💡
AutoHotkeyを使ってワンストロークでSuperPuttyのターミナルをフォーカスする
SuperPuttyでリモートの計算機にログインしつつ,エディタでリモートのファイルを編集するなどの作業をは比較的多いと思います.エディタからSuperPuttyへ戻る際,いつものようにAlt+TabでアクティブアプリをSuperPuttyへ切り替えても,ターミナル画面をクリックされるまではフォーカスされない点に不満を感じていた.今回AutoHotkeyで解決できることに気づいたので,その設定内容を紹介します.
私はAutoHotkeyの設定ファイルに以下のようなショートカットを登録することで,ワンストロークでのフォーカス切り替えを実現しました.
<^F12:: ;L-Ctrl+F12でSuperPuttyのウィンドウをアクティブにする
Process, Exist, SuperPutty.exe
If ErrorLevel = 0 ;起動してなかったら起動する
{
Run "C:\[SuperPuttyがインストールされてるフォルダ]\SuperPutty.exe"
WinWait, SuperPuTTY, , 2 ;Windowが出るまで最大2秒待機
If ErrorLevel <> 0 ; 待機後にまだWindowsが出なかった場合
{
MsgBox, WinWait timed out.
Return
}
Process, Exist, SuperPutty.exe ;プロセスIDを取得
}
;SuperPuttyが起動していればErrorLevel変数にプロセスIDが格納されているはず
If ErrorLevel <> 0
{
WinActivate,ahk_pid %ErrorLevel% ;SuperPutyYのウィンドウをアクティブにする
WinGetActiveStats, Title, Width, Height, X, Y ;ウィンドウのタイトルや位置情報取得
WinMaximize, %Title% ;ウィンドウを最大化
WinGetActiveStats, Title, Width, Height, X, Y ;最大化後の情報を再度取得
MouseMove, 200, 200, 0 ;だいたいこの辺にターミナルのウィンドウがある.
Click, ;直ちにキー入力できるようにターミナルをアクティブにする(ターミナル起動時のみ)
}
Return
AutoHotkeyで複数行のコマンドを書くのは初めてなので,冗長な部分もあると思います.より良い実現方法があればアドバイスいただけると幸いです.
Discussion