AutoHotkey スレッド part8

このエントリーをはてなブックマークに追加
689名無しさん@お腹いっぱい。
普通の記述で、リマップと同じ動作を行う方法はありませんか?
JoyStickだと、方向キーはGetkeyStateを使うしかなく、他のボタンも何故かリマップが使えなくなってしまいます。
知ってる方いましたら教えて下さい
方向キーの入力やボタンの入力には下記のスクリプトを書きましたが、
やはりリマップとは少し違うようになってしまうので


#Persistent
SetTimer,JoyTimer,50
return

JoyTimer:
GetKeyState, JoyXkey, JoyX
GetKeyState, JoyYkey, JoyY
if JoyXkey=100 ;右ボタン
Send,{Right}
if JoyXkey=0 ;左ボタン
Send,{Left}
if JoyYkey=100 ;下ボタン
Send,{Down}
if JoyYkey=0 ;上ボタン
Send,{Up}
return

Joy2::
send,{enter}
return

Joy3::
send,{BackSpace}
return
690名無しさん@お腹いっぱい。:2009/08/11(火) 20:40:00 ID:74mR/8bv0
ホットキー:: Send じゃ動作が微妙→リマップ搭載
の流れでバージョンアップしてった記憶があるので
完全な置換方法はないんじゃないかね。
691名無しさん@お腹いっぱい。:2009/08/11(火) 22:11:13 ID:JmmleByF0
窓の杜 - 【NEWS】Windows 7の新機能を利用できるライブラリ「Windows API Code Pack」v1.0が公開
http://www.forest.impress.co.jp/docs/news/20090811_308454.html
692名無しさん@お腹いっぱい。:2009/08/11(火) 22:58:29 ID:UZtW8Eo90
右コントロールとカンマ で発動させたいのですが、
下記ではうまく動きません。
 RCtrl & ,::

こうすると、構文エラーになってしまいました。
 RCtrl & `,::

ちなみに同じ方法で、ピリオド「RCtrl & .::」は、認識できました。
カンマはどのように記述すればOKでしょうか?
693名無しさん@お腹いっぱい。:2009/08/11(火) 23:04:13 ID:54xM/3pc0
>^,::MsgBox, Hoge hoge
694名無しさん@お腹いっぱい。:2009/08/11(火) 23:05:24 ID:54xM/3pc0
あ…、行頭の ">" はアンカーでなく、キー左右を識別する修飾子
695名無しさん@お腹いっぱい。:2009/08/11(火) 23:35:27 ID:PgOnvXDv0
>>690
そうなのですか(´・ω・`)
ありがとうございます
696名無しさん@お腹いっぱい。:2009/08/12(水) 00:47:33 ID:4ijfawZ40
>>689
俺もそれとほぼ同じ方法使ってるよ
キーリピート以外は困らないからそれでいっかって
697名無しさん@お腹いっぱい。:2009/08/12(水) 01:02:55 ID:SXoefWZw0
>>693
ありがとうございます。
さっそく変えてみましたが・・・やはりカンマのキーは反応しませんでした。

カンマの部分をピリオドに変えてみたところ 「>^.::」 は、反応しました。
698名無しさん@お腹いっぱい。:2009/08/12(水) 01:09:05 ID:xEgUlF6y0
>>697
>^vkBC::MsgBox, Hoge hoge
699名無しさん@お腹いっぱい。:2009/08/12(水) 01:13:48 ID:xEgUlF6y0
;JoyStickでキーをリピート。
;※全角スペースをTabスペース(半角スペース)に置き換える。
SetTimer,JoyTimer,20
return

JoyTimer:
JoyStickNumber=1
GetKeyState, JoyXkey, %JoyStickNumber%JoyX
if JoyXkey=100 ;右ボタン
 JoyStickRepeat(JoyStickNumber . "JoyX", JoyXkey, "Right")
return

1Joy2::JoyStickRepeat(A_ThisHotkey, "D", "Enter")
1Joy3::JoyStickRepeat(A_ThisHotkey, "D", "Bs")

JoyStickRepeat(JoyStick, n, key) {
 loop, {
  send, {Blind}{%key%}
  if(A_Index=1){
   loop, 20 { ;リピートされるまでの待ち時間約200ms(20*10ms)
    sleep, 10
    GetKeyState, Joykey, %JoyStick%
    if Joykey!=%n%
     break
   }
  }else
   sleep, 30 ;リピート間隔
  GetKeyState, Joykey, %JoyStick%
  if Joykey!=%n%
   break
 }
}