AutoHotkey

じゃぁキー割り当ての情報でも

AutoHotKey一つでS5のほとんどのボタンに
キー割り当て可能

OKボタン+ポインタの4方向それぞれに
ショートカット割り当てで4つの動作ができる
右クリックボタンも同様

ただしMenuボタン長押し時はマウスモードなので
無理でつ

ボリュームボタンもVolume_Downとかのキーなので
割り当て可能

S5はボタン少ないけど、組み合わせしだいで
結構ボタン便利だよ

 

 


 

初心者向けにウインドウネームの調べ方。

Autohotkeyをとにかく起動する。

 タスクバーのAutoHotKeyのHを右クリックしてみる
Windows Spyをクリック

なんか出たと思う。

そして調べたいウインドウをクリック
ahk_clsss ********なんたらかんたら
ってなんか出た中に表示されると思う

 

#IfWinActive,ahk_clsss ********なんたらかんたら
{
この間にコマンドを書きます
Tab::Enter とかね!
}
#IfWinActive

 

このウインドウの時だけ、コマンドが効きますよって意味です。

ブラウザでもバージョンが違うとこのank_class表示も変わることがあるから

ちゃんと調べないと参考の通りに書いたけど動かないってことがあるから注意です。

 


 

マンガミーヤと青空文庫ビューア「扉」の時だけ、側面のボリュームをページ送りにする
電源キーが上に来るように画面回転させて使うと便利な感じ。

#IfWinActive,ahk_class MangaMeeya
{
Volume_Mute::Right
Volume_Down::Right
Volume_Up::Left
}
#IfWinActive

#IfWinActive,ahk_class TfrmTVT
{
Volume_Mute::Left
Volume_Down::Left
Volume_Up::Right
}
#IfWinActive

Start ボタンからメニューをたどっている時に、スティック押し込みで「決定」


;Start Menu
#IfWinActive ahk_class Shell_TrayWnd
{
Tab::Enter
}
#IfWinActive

Explorer 操作中に、スティック押し込みで「決定」


;Explorer
#IfWinActive ahk_class CabinetWClass
{
Tab::Enter
}
#IfWinActive

右クリックボタン([C]ボタン)を押しながらスティック左右でタスクローテーション (キーボードで ALT+Tab に相当)


~RButton & Left::ShiftAltTab
~RButton & Right::AltTab

FirefoxZoom(拡大縮小・リセット) 右クリックボタン+スティック上下(拡大縮小)

右クリックボタン+スティック押し込み(Zoomリセット)

 

;Firefox
#IfWinActive,ahk_class MozillaUIWindowClass
{
~RButton & Up::Send,^=
~RButton & Down::Send,^-
~RButton & Tab::Send,^0
}
#IfWinActive

 

Firefox スティックを押しながらクリックでホイールクリックになる。

 

#IfWinActive ahk_class MozillaUIWindowClass
{
Tab::Shift                 ;スティック押し込みをシフトキーに
+LButton::MButton    ;シフト+左クリックをホイールクリック
}
 #IfWinActive


Chromeでスティック押し込みでエンターとホイールクリックの両立

 

#IfWinActive ahk_class Chrome_WidgetWin_0
Tab up::Send {Enter}                   ;スティックを離したらエンターキー
Tab & LButton::Send {MButton}    ;スティックを押しながらクリック(左クリック)をホイールクリックに
 return
#IfWinActive
 

これでジョイスティックを押して離した時にEnter、ジョイスティック押しながらタップでホイールクリック出来る
ホイールクリックで新しいタブにフォーカスをあてて開くには{MButton}の前に+を足してね

 Tab & LButton::Send +{MButton}    ;スティック押し込みながらクリックでシフト+ホイールクリック

 

スティック2度押し(ダブルクリックみたいな)したらEnterを押したことに

~Tab up::
{
if (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 500)  ;数字はダブルクリックのタイムms 小さ過ぎると判定してくれない
Send {Enter}
return
}

   Tabに別のキーを割り当ててると使えないので実用性はない

 

firefoxで検索したい文字列をドラッグしてジョイスティックを押し込むと検索結果を新しいタブで開く(現在のタブに開きたいなら{Enter}の前の「!」を消す)

 #IfWinActive ahk_class MozillaUIWindowClass
Tab::
{
Send ^c ^k ^v !{Enter}
Return
}
#IfWinActive

   ahk_classの後をChrome_WidgetWin_0に変更すればGoogle chromeでも出来る

 

 小技応用例

Google Chrome 拡張機能Grab and Dragを入れておくと便利(手のひらツールみたいなもの)

 

#IfWinActive ahk_class Chrome_WidgetWin_0
{
    Volume_Up::PgUp        ;ボリュームアップでページアップ
    Volume_Down::PgDn    ;ボリュームダウンでページダウン
    Volume_Mute::        ;ミュートキーでShiftキーを押したことに
    {
        Send {Shift Down}
        Sleep 3000    ;ミュートキーは押し込み持続判定されないので3秒押したことにする
        Send {Shift Up}
        Return    ;
    }
        +LButton::MButton    ;ミュートキー押しながらクリックならShift+ホイールクリック(リンクを別のタブで開く)

    ~RButton & Up::Send,^-    ;Cキー+スティック↑で文字を小さく
    ~RButton & Down::Send,^;    ;Cキー+スティック↓で文字を大きく
    ~RButton & Tab::Send,^0    ;Cキー+スティック押し込みで文字大きさリセット

    Tab up::Send {Enter}    ;スティック押し込みで決定(Enter)
        Tab & LButton::Send +{MButton}    ;スティック押し込みながらクリックでホイールクリック(リンクを別のタブで開く)
        Tab & Enter::Send {F11}        ;スティック押し込み+OKキーでF11(全画面表示)
    return

    ~LWin up::            ;Menuキー
    {
        if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 500)    ;0.5秒以内ならダブルクリック
        Send ^w        ;MenuキーダブルクリックでCtrl+w(タブを閉じる)
        else send {BS}    ;MenuキーシングルクリックでBS(戻る)
        return
    }
}
#IfWinActive

 

 

 


 

Adobe Readerで PDF 表示中に、スティック押し込みでドラッグで拡大/縮小

もう一度スティック押し込みで、手のひらマークに戻って画面をドラッグできる
(レスポンスが悪い時には、ちょっとコツがいるが、かなり便利)


;adobe reader
#IfWinActive ahk_class AdobeAcrobat
{
^F5::+^F6
Volume_Up::+Enter
Volume_Down::Enter
Tab::
if (pdf_press = 1)
{
Send,!tsh
pdf_press = 0
}
else
{
Send,!tzd
pdf_press = 1
}
return
}
#IfWinActive

 


とりあえず東方用にautohotkey用スクリプト組んでみた


#IfWinActive ahk_class BASE
Volume_Down::x
Volume_Up::LShift
Volume_Mute::Esc
^!h::z
#IfWinActive

z(ショット):ソフトキーボード呼び出しキー
x(ボム):ボリュームダウン
左Shift(低速):ボリュームアップ
Esc(メニュー):ミュート


動作確認したので報告。
ただ。。斜め移動ができないのでイージーモードくらいしかできない?;
あと画面の向き変えるホットキーをOFFにする必要あり(タスクで変えれる

 

 


  

NextTextの autohotkey のスクリプト

両手持ち派でなく、スタイラスペン派なので、
vilivSoftKeyboardでなく、画面を占有しない小さな別ソフト(NextText)を
起動するようにしました。

1.NextTextをインストール
2.AutoHotKeyをインストール
3.以下のスクリプト作成して、softkeyboad.ahk とかで保存

--------------------------
#SingleInstance IGNORE

!^h::
IfWinExist, NextText
WinHide , NextText
else
Run,NextText.exe
return

--------------------------


softkeyboad.ahk を実行して、AutoHotKeyが常駐している間は、
別のソフトキーボードが、ハードボタンで起動すようになります。

softkeyboad.ahkをスタートアップに登録すれば、いいかと思います。

NextTextは、文字認識もできていいですよ。

 


 

autohotkeyについてまとめてみた。

 

■ボタンリスト

[十字key]
Up Down Left Right
[十字key押し込み]
Tab
[Menu]
LWin
[OK]
Enter(KeyMode)
LButton(MouseMode)
[C]
RButton(Key/MouseMode)
[SoftwareKeyboard]
h
※実際はCTRL+ALT+Hだが、以下問題対策のため"h"で判定

[Volume]
Volume_Down Volume_Mute Volume_Up


■問題

 A.[MENU]、[OK]ボタンにキーイベントを登録してもうまく動かない。
→ ボタンを離したとき、キーイベントが発行されるが、一瞬過ぎるため判定が間に合わないことがある。
B.[SoftKeyBoard]ボタンを使うと、CTRLとALTが押しっぱなしになることがある。[十字key]と一緒に押すと画面が回転してしまう(ディスプレイドライバのホットキー)。
→ viliv s5の仕様。

■回避策
A.ある程度押下している時間を作る(Sleepの単位はms)。
"対象ボタン"::
{
Send {"対象キーイベント" Down}
Sleep 100
Send {"対象キーイベント" Up}
Return
}

 B.CTRL/ALTの動作を無効にする。
Ctrl::Return
Alt::Return
^Alt::Return
h::"対象キーイベント"

 

これで自由にキー設定ができると思う。 

 

設定例

 WindowsMediaPlayer12

#IfWinActive ahk_class WMP Skin Host
   {
      Tab::Media_Play_Pause
      Enter::F11
      Left::Media_Prev
      Right::Media_Next
   }
#IfWinActive
#IfWinActive ahk_class WMPTransition
   {
      Tab::Media_Play_Pause
      Enter::F11
      Left::Media_Prev
      Right::Media_Next
   }
#IfWinActive
#IfWinActive ahk_class CWmpControlCntr
   {
      Tab::Media_Play_Pause
      Enter::F11
      Left::Media_Prev
      Right::Media_Next
   }
#IfWinActive

 英雄伝説Ⅵ

#IfWinActive 英雄伝`説Ⅵ
   {
      Ctrl::Return
      Alt::Return
      ^Alt::Return
      h::d
      Tab::x
      RButton::s
      Enter::
         {
            Send {z Down}
            Sleep 100
            Send {z Up}
            Return
         }
   }
#IfWinActive

 英雄伝説 空の軌跡 SC

#IfWinActive 英雄伝`説 空の軌跡 SECOND CHAPTER
   {
      Ctrl::Return
      Alt::Return
      ^Alt::Return
      h::d
      Tab::x
      RButton::s
      Enter::
         {
            Send {z Down}
            Sleep 200
            Send {z Up}
            Return
         }
   }
#IfWinActive

 SNESGT

#IfWinActive ahk_class ATL:004ED808
   {
      Ctrl::Return
      Alt::Return
      ^Alt::Return
      h::b
      Tab::y
      RButton::a
      Enter::
         {
            Send {y Down}
            Sleep 100
            Send {y Up}
            Return
         }
      LWin::
         {
            Send {x Down}
            Sleep 100
            Send {x Up}
            Return
         }
   }
#IfWinActive

 SNESGT#DQ6

#IfWinActive SNESGT - DRAGONQUEST6
   {
      Ctrl::Return
      Alt::Return
      ^Alt::Return
      h::r
      Tab::a
      RButton::b
      Enter::
         {
            Send {y Down}
            Sleep 100
            Send {y Up}
            Return
         }
      LWin::
         {
            Send {x Down}
            Sleep 100
            Send {x Up}
            Return
         }
   }
#IfWinActive

■その他

 ・window spyでターゲット名の取得してもうまく動作しな場合、AutoScriptWriterで取得すると良い。(英雄伝説のWindowTitle名を誤取得していた)。

 ・アプリケーション名(ahk_class)と、そのアプリケーションで開いたファイル名(Title名)で、それぞれキー設定を変えたい場合、Title(詳細)→ahk_class(汎用)の順で記述する必要がある。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年12月30日 00:35
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。