>>429 StringLen, OutputVar, InputVar
を使って、桁数を数えて0を足せばいいんですかね?
>>430 ありがとうございます。無事に動きました。
組み込み変数ってとこに乗っていたんですね。もっとよくサイトを見て回るべきでした。
lengthとらんでも数値範囲でいいのでわ
index := A_Index<10 ? "00" . A_Index : A_Index<100 ? "0" . A_Index : A_Index
439 :
423:2009/07/15(水) 23:46:12 ID:FhFUja4C0
>>424 再変換とautohotkeyの組み合わせを全く考えていませんでした
勉強になりました
ありがとうございます!
無事、Windowsでは認識しないEjectキーをホットキーにすることができた
>>432の英文の意味がわからなくて2時間ぐらい悩んだw
AutoHotKeyすげー、なんでもできるね
Windows/Mac兼用のキーボード買って
Mac用のイジェクトキーがついてたけどWindowsでは何のキーコードも吐かないし
使えないものかと思ってたけど、粘って調べまくったら、
ちゃんとやり方が見つかって、使えちゃうんだもんなあ、、、。
買ったキーボード、何のドライバも必要なくて
WindoowsデフォルトのHIDドライバで動くキーボードだけど
マルチメディアキーのアサインを変更/設定するソフトが付いてなくて
残念に思ってたけど、AHKのおかげで、全部のマルチメディアキーを、
好きな機能のホットキーとして使えてすごくありがたい。
>>440 その成果、見せていただきたいものだ(`・ω・´)
>>440 俺も知りたい。リンク先荒読みしたけど難しすぎる。
概要でいいので解説頼みます。
もしかして、ノートPCのFnキーや、多ボタンマウスのチルト傾斜とかも
専用ドライバ無しでHIDの標準ドライバ経由で直取りできるってこと?
そうなら、チルト機能を認識させるために現状入れざるを得ない、
諸悪の根源「ロジクールSetpoint」と、おさらばできることになる。
ものすごく夢が広がる・・・
次に、FnMapper.ahkを編集する。
まず、EditUsage := 1 EditUsagePage := 12という部分を探して、
それぞれの数値を、さっき調査したUsageとUsagePageの数値に書き換える。
俺はそのまま変更しないでOKだった。
次に、 ;MsgBox, Keystatus: %KeyStatus%という行があるけど、
行頭のセミコロンを消す(コメントアウト状態じゃなくする)
以上が終わったら、FnMapper.ahkをダブルクリックで起動する。
何もダイアログが出てない状態で、
これからホットキー登録したいキーやFnキーコンビネーションを押して、
MsgBoxに出た数値と押したキーとの対応をメモる。
必要なキーの数だけ、どんどんメモる。
あとは、;MsgBox, Keystatus: %KeyStatus%の行頭に
またセミコロンをつけて再度コメントアウトして、
それから、
Transform, EjectValue, BitAnd, 8, KeyStatusの直後ぐらいに、
Keystatusに関して判定するif文を書き、該当キーの処理を書く。
たとえば俺の場合、Windowsで認識しないEjectキーを押した場合に
さきほどMsgBoxに表示された数字が64だったので
if Keystatus = 64
{
MsgBox,EjectKey Pressed!!!
}
を挿入したら、Windowsではキーコードすら吐かないイジェクトキーを押したときに
EjectKey Pressed!!!と表示できた。
他にも、スクリプトの中の必要なさそうなところはコメントアウトしたりした。
俺は、全然知識がないので、試行錯誤でなんとかWindowsで認識せずキーコードも吐かない
Ejectキーに処理を割り当てるという目的を達成できたけど、
実際のところ、ただ動いただけで、トライ&エラーいっぱいやって動いただけなので、あんまりわかってないw
なんにもわからず英語すらぜんぜんわかんない俺が勘でできちゃったぐらいなのでw
知識のある人は、Step1〜Step3と、
>>432の「Concluding」の部分を読んでてきとうに試せば
いろんなことができるかも。。。
ほんと、超初心者なので書いてあることよくわからなかったらごめんw
使えないEjectキーをなんとか使いたい、という一心で数時間粘った結果うまくいったけど、
他の方もなにか少しでも参考になったらうれしいです。
デスクトップのFnキーで試してみたけどやっぱ無理だった
おぉ、ThinkVantageボタン、Fn+F3, Fn+F5, Fn+Home, Fn+End, Fn+Space に機能割り当てでけた
とは言っても FnMapper.ahk じゃキー押しても全部ステータスが 0 だったんで
RemoteController.ahkを実行して、Fn+キーを押すとコードらしきモノをMsgBoxで吐くのでそれをメモって
Ifの羅列の所を書き換えただけだけど。
相当ハードに近い低レベルなところでやらないと無理だって話だったのにすげーな
>>443 ありがとう、非常に参考になったよ。
RemoteControl.ahkで、マウスMX620でSetpointを使わない状態で
マウス左上の検索ボタンを押したら、0321020000 と表示された。
いろんなHIDデバイスが吐き出す数字の中で、この数字が以下の固定定義に
マッチすると、該当のボタン名を表示するみたいね。
ifequal, Vals, 040100, gosub Homepg
ifequal, Vals, 048000, gosub RED
ifequal, Vals, 040800, gosub GREEN
ifequal, Vals, 041000, gosub GELB
ifequal, Vals, 042000, gosub BLAU
ifequal, Vals, 040200, gosub LineTV
ifequal, Vals, 03800000, gosub Record
ifequal, Vals, 03040000, gosub Radio_
ifequal, Vals, 040010, gosub SAP
ifequal, Vals, 040020, gosub TELETEXT
ifequal, Vals, 040040, gosub LastCH
ifequal, Vals, 040008, gosub Subtitle
ifequal, Vals, 040002, gosub Language
ifequal, Vals, 010001, gosub Angle
ifequal, Vals, 03000400, gosub BACK
(略)
肝心のホイールチルトは、残念ながらSetpointが居ても居なくても無反応だった。
いままでは、KeyHistoryで拾えない物は全部あきらめてたから、
解析の幅がかなり広がるのは確実だ。すごい情報をありがとう。
漏れはリモコン関係でその系統のネタ調べてたな。
今のところ
AutoHotkeyRemoteControlDLL.ahk
で、UsageとUsagePageを取得した後は
ttp://www.autohotkey.com/forum/topic23072.html のLexikos氏のスクリプト使って適当に我流で利用してる。
WM_INPUT(wParam, lParam)
{
;中略
if type = 1 ; RIM_TYPEKEYBOARD
{
;中略
StdOut(vk_a " " sc_a " " act " msg: " msg " flags: " flags " dev: " hDevice)
}
else if type = 2 ; RIM_TYPEHID
{
StdOut((count=1 ? "dev: " hDevice " -- " : "") hex)
}
とかなってるStdOutの直後に
ifequal,hex,03 9C 00 00 00 00 00,GOSUB CHANNELUP
ifequal,hex,03 9D 00 00 00 00 00,GOSUB CHANNELDOWN
とかやって関数外に出して。