AutoHotkey スレッド part25 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ f977-fKjf)
垢版 |
2017/09/14(木) 11:52:40.84ID:uijNj4qb0

■配布元
http://ahkscript.org/download/

■前スレ
AutoHotkey スレッド part24
http://egg.2ch.net/test/read.cgi/software/1487149472/

■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/

■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2017/12/27(水) 16:27:33.29ID:Aacf2UtF0
>>652
UTF-8のBOM付きやSJISしたら動作した。

ウィンドウタイトルの日本語を探すのは初めてだから、ごめんちょ。
2017/12/30(土) 03:58:59.09ID:gls+cAd20
マウスの中ボタン+右クリックにホットキーを当てると
中ボタン単体では動作しなくなってしまうので

Mbutton::send,{Mbutton}
return

としていたのですが、これだと中ボタンでドラッグアンドドロップできなくなることに気付いて

Mbutton::MouseClick,middle,,,,,d
return
Mbutton up::send,{Mbutton Up}
return

と書いてみたのですがうまくドラッグアンドドロップ出来ません
どのように書けば良いのでしょうか?
2017/12/30(土) 04:20:23.50ID:b6YqK2p70
>>654
中ボタン+右クリックにホットキーを当てた時点で
中ボタン単体の判定は中ボタンを離した時に行われる様になるので
通常の方法ではドラッグは出来なくなる
別の対処策としては2度押しでドラッグにするとか、別のボタンにドラッグ割り当てるとか幾つかやりようはあるけど
どうしても普通にドラッグしたいなら中ボタン+右クリックを諦めた方が良い
2017/12/30(土) 05:26:41.98ID:xIT/wV5A0
Hotkeyコマンドでホットキーをトグルさせるのは?
特定のウィンドウがアクティブ時、または中クリック長押しで切り替えとか
2017/12/30(土) 09:28:37.04ID:mI1ieLxE0
>>654
中ボタンでドラッグアンドドロップ出来るアプリを持っていないので確認できないけど、
オートスクロールのキャンセルはCtrlで出来るから、
#if GetKeyState("MButton","P")
RButton::
Send,{Ctrl}
ToolTip,M+R
Sleep,1000
ToolTip
return
#if
こんな感じでどうだろ
2017/12/30(土) 10:20:44.83ID:gls+cAd20
>>657
出来ました!ありがとうございます
GetKeyStateを使えばホットキーとして割り当てなくて済むのですね!
2017/12/30(土) 13:31:53.23ID:fvgI/zHL0
>>658
それだと中+右ボタンを押す時にも中ボタン単体押しが送信されるのでは?
それで構わないならば
~MButton & RButton::
にすればいいだけだな
2017/12/30(土) 21:59:48.99ID:gls+cAd20
>>659
>>657でも出来るのですが  ~MButton & RButton:: でも出来ますね
~ の意味を調べたら イベントを乗っ取らず、そのままシステムに通す って書いてあったのですが
元のキーの機能を殺さずに的なことなんでしょうか?
2017/12/31(日) 12:27:31.81ID:cHZnLDz90
v1.1.27.01が公開されたよ

●Changes & New Features
https://www.autohotkey.com/docs/AHKL_ChangeLog.htm
2017/12/31(日) 15:22:16.33ID:VvllMHuur
>>661
vkF3SC029::rerurn ;全半角
vkF4SC029::rerurn ;全半角up
でエラー出る
俺環かな
スキャンコードなし指定ならokだた
2017/12/31(日) 17:48:52.87ID:iRBxU1N10
>>662
久しぶりにアップデートしたら自分もInvalid hotkeyってエラー出たわ
とりあえず1.1.26に戻した
2017/12/31(日) 17:56:20.08ID:iRBxU1N10
仕様変更あったのね
チェンジログ読んだらちゃんと書いてあったや
Scripts containing hotkeys of the form VKnnSCnnn:: will need to be corrected by removing SCnnn, which was previously ignored.

しかし互換性持たせてくれればいいのになぁ
2018/01/01(月) 22:19:27.79ID:Yv5Bp8s50
エラーが出るかと何かと思った
スキャンコード全部削除したけど動作がおかしくならないか不安
2018/01/02(火) 00:23:22.16ID:cBxV7kcZ0
え?scxxxのみで何も問題ないけど…
2018/01/05(金) 23:03:42.41ID:l4zNz2Hg0
あー、先にここ見とくべきだった。更新したら動かなくて何だろうかと
せっかくなので、これからverup予定の方に、自分が修正したキー一覧を以下に
変換…vk1Csc079
無変換…vk1Dsc07B
:(コロン)…vkBAsc028
:(コロン)…vkBAsc03A
;(セミコロン)…vkBBsc027
;(セミコロン)…vkBBsc03B
,(コンマ)…vkBCsc033
\(バックスラッシュ)…vkE2sc073
CapsLock…vkF0sc03A
ひらがな/カタカナ…vkF2sc070
全角/半角…vkF3sc029
全角/半角…vkF4sc029
grepツールで済ませてそんなに時間はかからなかったけど、久しぶりに面倒な更新作業だった
668sage (ワッチョイ 9f13-fYpg)
垢版 |
2018/01/06(土) 01:51:53.58ID:gHX87yO10
vkxxscxxxが使えなくなって
vkxxまたはscxxxのどちらかで指定と理解してるんだけどいいんかな?

使ってる人いるかわからないけど・・・
vkff系のscはkeywaitでエラー出たので
sc056::
keywait,vkff
return
としたらエラー無しで動いた。

sc05eは使えなくなったが、こいつだけvkff::をアテた。
とりあえず他とバッティングしてない。
2018/01/06(土) 22:19:48.65ID:L9VE7V/R0
こんばんはー、ホットストリングって機能に初めて手を出してみたんですけど、
ちょっと???な部分があるのでお伺いしたいです。
「[[」って打ったら「『」、「[[[」って打ったら「【」になるようにするにはどう書けばいいんでしょう?
Z0オプションでバッファが残るっていうならそれ指定するだけでいいのかなーと思ったら思うように動かず。
フラグを変数に格納するなり、複数行書かないとダメでしょうか?
2018/01/06(土) 23:15:38.82ID:G7wFYGrJ0
ここ↓見るとか具体的にスクリプト晒すとかしないとレス付かないぞ
ホットストリング - AutoHotkey Wiki
http://ahkwiki.net/Hotstrings
2018/01/07(日) 00:56:44.38ID:JkICX0vw0
ああいえ、読んだんですがイマイチ仕様を把握できず、
シンプルな構文で書けるのか書けないのか書けないのか、単にそれだけを慣れている人に聞きたかったんです。
必要ないでしょうけど一応晒すと、
:*Z0:[[::『
:*:[[[::【
で[を3回押したら【になりそうだなーと思ったのですがならないなーってことでして。
2018/01/07(日) 01:23:31.75ID:rPkuxGOZ0
ホントにちゃんと読んだのか?
特に「終了文字」の項目を・・・
2018/01/07(日) 01:54:30.71ID:JkICX0vw0
>>672
……? *で不要化してますよね?
2018/01/07(日) 12:54:08.50ID:vRDST1RB0
本当にちゃんと読んだか?
「置換後のテキストに2バイト文字を使うことはできないので、スクリプト実行型でクリップボードを経由して貼り付けるなどの方法を取る必要がある」
2018/01/07(日) 16:17:48.05ID:JkICX0vw0
>>674
ご自分で試されましたか?
大分前から2バイト文字送信も実装されているようですが
そもそも質問の方向性が全く違います
676名無しさん@お腹いっぱい。 (ワッチョイWW 2b87-8bQF)
垢版 |
2018/01/07(日) 16:59:29.06ID:TEnpSFgY0
>>671
『が入力される時に[[がBSで消されたことになるので、続けて[を打っても:*:[[[::が実行されない。
677名無しさん@お腹いっぱい。 (ワッチョイWW 2b87-8bQF)
垢版 |
2018/01/07(日) 17:03:26.18ID:TEnpSFgY0
ホットストリングでやっても出来なくはないけど、ややこしいし色々問題あるからおすすめしない
2018/01/07(日) 17:41:28.22ID:JkICX0vw0
>>677
あー、簡単に上手いことはいかないんですね。
B0にして、かつスクリプト実行型に変えたらようやく入力バッファ残りました。
しかもバグなのか、必要とされるBackspaceの量(置換後に本来消す文字数)まで引き継がれてしまい、
後続もB0で手動でBackspaceの数を調整しないといけないハメに。
さらに言うと、「:B0 O*:abc::」のあとは「:B0 O*:bcd::」では反応せず、「:B0 O*:abcd::」のみ受け付けると仕様がよーわからん…。
とりあえず↓のように出来ましたけど、もっとスマートな書きかたあります?

:B0 O*:[[[::{Backspace}【
:B0 O*:[[::
Send, {Backspace}『
Return
679名無しさん@お腹いっぱい。 (ワッチョイWW 2b87-8bQF)
垢版 |
2018/01/07(日) 18:35:00.89ID:TEnpSFgY0
>>678
?オプション付けないとa〜z打った直後に動いてくれないから付けた方が良い
ちなみに、他にキー入力をいじるソフト(やまぶきRとか)使ってるとちゃんと動かない事がある
2018/01/10(水) 01:51:34.06ID:BCaOYMAn0
ゲームにAHKを利用しているのですが以下はQキーを押したとき
@Iキーを送る
A指定座標上で右クリ
B再びIキーを送る
という単純なものです

Q::example() ;
examplel(){
BlockInput On
Send {i}
Click right 1305,829
Send {i}
BlockInput Off
return
}

ここで質問なのですが、このマクロによる操作(@〜Bですね)が一通り終わった後、マウスポインタをもとの位置に戻ってこさせるということは可能でしょうか?
2018/01/10(水) 02:51:37.30ID:4l+dsFFh0
>>680
移動する前に座標取得
MouseGetPos
2018/01/10(水) 10:42:20.97ID:JKf1Cq3D0
>>681
ありがとうございます
683名無しさん@お腹いっぱい。 (ワッチョイ ea67-zHNy)
垢版 |
2018/01/11(木) 22:19:09.67ID:HG8U+U2Z0
RegExReplaceでファイルパスのファイル名だけを置き換えようとしたんですけどこう書いてしまうと

NewStr := RegExReplace("C:\a\b", "([^\\]+?)?$", "c")
tooltip,%NewStr%

結果が「C:\a\cc」となってしまいます。なぜか置き換え文字に指定した文字が二重で入力されます
以下のように置き換え回数を1に制限すると「C:\a\c」となってくれます

NewStr := RegExReplace("C:\a\b", "([^\\]+?)?$", "c",,1)
tooltip,%NewStr%

使っている正規表現がまずいのかRegExReplaceの記述の仕方がまずいのかわかりませんが置き換え文字が二重に入力されないようにするにはどうしたらいいんでしょうか?
2018/01/11(木) 22:55:45.09ID:8RyCoUmG0
>>683
RegExReplace("C:\a\b", "(.*\\).*", "$1c")
2018/01/12(金) 02:04:04.29ID:+j8QRcK60
>>683
拡張子、ファイルかフォルダの考慮も忘れずに
2018/01/13(土) 13:16:34.08ID:aFWvyjXJ0
>>683
正規表現がまずくて、量指定子"?"とグループ化"()"の使い方が迷走してるんだと思う
個人的にはこう
RegExReplace("C:\a\b", "[^\\]+$", "c")
2018/01/13(土) 13:50:09.04ID:NZPiUPRF0
いつの間にかバグフィックスが進んで
1.1.27.04になっとるやないかい
688名無しさん@お腹いっぱい。 (ワッチョイ ea67-zHNy)
垢版 |
2018/01/13(土) 23:00:31.98ID:u3DR4K2j0
>>684
>>685
>>686
ありがとうございます
参考になりました
2018/01/14(日) 11:50:07.84ID:M43+YLx+0
以下のスクリプトを「常時」「全てのウィンドウに」適用する(キャプションバーを隠す)にはどうすれば良いでしょうか

;キャプションバーをなくす
LWIN & LButton::
WinSet, Style, -0xC00000, A
return

「bug.n」の以下のスクリプトでも同様のことができているようなのでこの方法でもかまいません
(キャプションバーの非表示という部分の抽出の方法)
https://github.com/fuhsjr00/bug.n/blob/master/src/Window.ahk

実はこれで1年以上悩んでおります。
どうかよろしくお願いします。
2018/01/14(日) 13:28:36.81ID:SeWYloWZ0
>>689
https://arak.jp/diary/?20091030S1
2018/01/14(日) 13:50:26.25ID:M43+YLx+0
>>690
できました!
本当に助かりました
ありがとうございました
692名無しさん@お腹いっぱい。 (ワッチョイ 1e63-Un5q)
垢版 |
2018/01/15(月) 11:47:41.46ID:r2mlDsgK0
sc と vk だが,フォーラム読む限りはvkのほうがいいみたいだぞ.scは”still supported”とか書いてあるが,いつ消されるかわからんしな. 
2018/01/15(月) 23:34:41.39ID:6cx89JeH0
>>692
scのみで今まで問題無く行けてたがvkのみにしたら
一部でsc***→vk**変換以外で手直しやら動かなくなるやら困った事になった(ので途中で元に戻した)
例えば
sc029::send, {BS} ←[全角/半角]押下で{BS}
     ↓
vkF3::
vkF4::
send, {BS}
return
とする必要があったり

+sc03a::関数("引数") ←[shift]+[CapsLock]で関数実行
     ↓
普通にCapsLockのON/OFF切り替えになってしまう
([CapsLock]キーを[F**]に割り当てて、+F**::〜 とすれば行けるのかな?…面倒なので確認していない)

とりあえず未だsc***のみでも問題無く動いてるので行けるとこまでこのままいくわ(´・ω・`)
2018/01/16(火) 00:08:51.64ID:NLQSNNGB0
うちも試しに更新したらUSキーボドのCapsLock系が動作しなくなった
更新内容がいまいちわからん

これがエラーで動かなくなった
;CapsLock ON/OFF
~Shift & vkF0sc03A::Send, {CapsLock}

こっちは動く
;------CapsLock Auto OFF ------
CapsLock::
GetKeyState, state, CapsLock, T
If state = U ;OFF
SetCapsLockState, ON
else
{
SetCapsLockState, OFF
}
Timer03:
If(A_TimeIdlePhysical>5000)
SetCapsLockState, OFF
Return

でもこっちでCapsLockの状態取得しようとすると動かない
~Shift & vkF0sc03A::

バージョン戻したけど時間がある時にもう一度書き直してみようと思う
何か分かる人いたらヒントください。
2018/01/16(火) 07:21:01.72ID:NWgRaCQP0
>>694
vkF0sc03A

sc03A
でいけると思う。
2018/01/16(火) 14:37:48.49ID:NLQSNNGB0
>>695
vkF0sc03A が sc03a に置き換わっただけで状況は同じでした

どちらも動かない
+sc03a
~Shift & sc03a

動作する
sc03A

やりたいこと
違うソフトでCapsLockのオンオフの操作を変えていたので
Shift + CapsLock で統一したい
その際に自動オフのコードを...

CapsLock:: ;Shift + CapsLockにしたい
GetKeyState, state, CapsLock, T
If state = U ;OFF
SetCapsLockState, ON
else
{
SetCapsLockState, OFF
}
Timer03:
If(A_TimeIdlePhysical>5000)
SetCapsLockState, OFF
Return
2018/01/16(火) 14:45:00.33ID:NLQSNNGB0
あっ これも駄目ですね
~Shift & sc03A::Send, {CapsLock}
CapsLockのみでも反応してしまう

問題無し
~Shift & vkF0sc03A::Send, {CapsLock}
でも、~Shift & vkF0sc03Aはオートオフのコードが反応しない
2018/01/16(火) 16:07:31.09ID:NLQSNNGB0
連投すまん
>>697
CapsLock::returnしております
2018/01/16(火) 18:51:12.72ID:IxAc+IU+0
バグフィックスの動きが激しいし
しばらくは1.1.26.01で止めておいたほうがよさそうだな
2018/01/17(水) 03:45:15.83ID:5KJf9t9O0
1.1.27.06でdefenderがウィルス判定出しやがる
まあアプリの性質的に誤検出しやすいのはしょうがないけど
2018/01/17(水) 03:52:01.97ID:5KJf9t9O0
zip版なら平気だった
2018/01/17(水) 14:23:18.25ID:Pgssw/8N0
ControlSendですが、これで入力しようとすると、ターゲットのウィンドウがアクティブになって表に出てきてしまいます
裏で入力させることって出来ませんか
最前面では別のウインドウで作業していて、その間に、他の隠れているウインドウにControlSendで値を入れたい
のですが
2018/01/17(水) 18:15:41.52ID:RG3q26nn0
ソフトにもよるとしか言いようが無いけど
DetectHiddenWindowsを試してみたら
2018/01/18(木) 07:34:28.16ID:E6v3BPu00
DetectHiddenWindowsは関係ないんじゃね?
裏に隠れているだけだから
2018/01/19(金) 09:27:55.09ID:3Oem/ury0
10キー付きキーボードの10キー部分と、と10キーパッドで、それぞれ別の割当をすることって出来るのでしょうか? ハードウェア別の設定が出来れば10キーパッドを有効活用できるかなと思ったのですが…。
2018/01/19(金) 09:36:14.73ID:ds+5Qw5m0
出来ません
素直にプログラマブルキーパッドを使いましょう
2018/01/19(金) 10:11:56.19ID:3Oem/ury0
ありがとうございます。
2018/01/19(金) 10:40:55.87ID:m9/Neybx0
まさにそういうソフトは存在するよな
一時使ってた
2018/01/19(金) 16:07:46.92ID:AVpnJ5wF0
HID Macrosだっけっか
その辺は CG用補助入力総合スレ あたりが詳しかったと思う
http://mevius.5ch.net/test/read.cgi/cg/1486757763/
2018/01/22(月) 02:02:18.12ID:TAC5etfN0
main.ahkと更新.ahkで2つ起動したいと思うのですが
長時間起動してるといつの間にかフリーズしているので
更新.ahkで両方のahkをリロードしたいのですが
どのようなスクリプトを書けば良いのですか
よろしくお願いします
2018/01/22(月) 02:14:51.75ID:D9rOGpYI0
更新.ahk自身はReloadコマンドでリロード出来る

main.ahkは冒頭に
#SingleInstance force
を書いておけば更新.ahkでRunするだけでリロードされる
2018/01/22(月) 04:04:19.09ID:OoTUIsqF0
>>711
何とか出来ました!

reload
run , c:~main.ahk

上記のアホなことやっていて更新できないなぁと悩んでいましたw
教えて頂きありがとうございました
2018/01/23(火) 12:24:46.18ID:0+zHhbeo0
Autohotkeyで即時関数みたいなことできます?
MouseGestureLでジェスチャ毎に再利用しない変数を保持しっぱなしなのもなんだし
最後に一々解放するのもスマートでないというかめんどいというか
代替案でもいいのでお願いします
2018/01/23(火) 14:55:23.06ID:9c2K3oq50
>>713
どこでもいいから関数書いて呼び出すだけ
2018/01/23(火) 15:01:59.35ID:9c2K3oq50
hoge()
return

hoge() {
 MsgBox
}

; --------
hoge2()
hoge2() {
 MsgBox
}
return

; --------

hoge3() {
 MsgBox
}
hoge3()
return
2018/01/23(火) 21:28:28.51ID:0+zHhbeo0
いや、都度関数を作ると関数名がどんどん消費されちゃうってことで即時関数のやり方を聞いた次第です
っていうか即時関数というより無名関数でしたね
2018/01/24(水) 02:41:30.95ID:YYzix6Ix0
MouseGestureL使ってないんでわかんないけどObjectじゃだめなん?
2018/01/26(金) 11:51:05.61ID:A8q+WlDN0
LWin::[
ってやってるだけなんだけど
いつのバージョンからかキーボードの他のキーやマウスのサイドボタンまでおかしな挙動をするようになった
割り当て自体は成功してるんだけど副作用がすごい
仕様変更ですかそれともおま環ですか?
2018/01/26(金) 14:32:12.71ID:lXZy4ZkG0
>>718
そういうのはレジストリ変更タイプのキーチェンジャーをおすすめする
2018/01/26(金) 16:08:35.67ID:A8q+WlDN0
>>718
すまん…おま環だったわ
マウス変えた時に入れたLogicool Optionsと競合してるだけだった
まぁ解決は出来なかったんだけどね
2018/01/26(金) 19:32:30.01ID:tlFNmfdt0
>>716
できない
v2でも実装する予定なし(去年の時点で)
https://autohotkey.com/boards/viewtopic.php?p=150578#p150578
関数名やラベル名を消費しないでサブルーチン作る方法は今のところないんじゃないかな

変数の一斉解放だけなら、変数をオブジェクトにまとめておいて最後に空にするとかあるけど
代案とするには弱すぎる
2018/01/27(土) 12:35:13.87ID:CxWu/J0c0
>>717
>>721
実装予定もなしかー
プラグインレベルの大掛かりなのだとobjectもありかもですね
ありがとうございました
723名無しさん@お腹いっぱい。 (ニククエ 0Caf-N37C)
垢版 |
2018/01/29(月) 13:14:45.61ID:cdR4sGD2CNIKU
Ctrl+CでPageDown、Ctrl+Q Ctrl+CでCtrl+PageDownに
したくて以下のようにしたのですが、^q後の^cがPageDown
に置き換えられてしまっているのかInputで拾えません。
何か方法はありませんでしょうか?


^c::send, {PgDn}
^q::
Transform, CtrlC, Chr, 3

Input,InputChar,I M L1 T2

if (InputChar = "c" or InputChar = CtrlC)
Send,^{END}
2018/02/01(木) 01:50:51.47ID:IVRJohHu0
gpd pocket を axキーボード設定で使っているのですが ?? のキーにFnを入れることはできますか?もしできるようなら教えてください。
2018/02/01(木) 01:52:25.90ID:IVRJohHu0
724です。
??は 三と書いてあるキーです
2018/02/01(木) 02:21:21.73ID:pVoUMo//0
>>725
FnキーはOSやソフトウェアを介さないハードウェアキーなので無理
「三と書いてあるキー」と言うのは恐らくAppsKeyのことなんだろうけど、それなら
AppsKey & ○:: でそれぞれの機能を割り当てれば疑似的にFnキーの様に使うことは可能
一つずつ割り当て行う必要あるから少し面倒だけどね

例)
AppsKey & Left:: Send, {Home}

AppsKeyのことじゃなかったら知らん
2018/02/01(木) 06:26:10.42ID:IVRJohHu0
>>726
ありがとうございます。
三はAppsKeyというのですね。
何もしらなくてすいません。
Fnキー無理なのですね、ファンクションキーがFn+数字キーなので片手で押せないので指の届く近くのキーに割り当てようと思いました。
でも全然わからなかったので質問してみました。
親切にありがとうございます。
2018/02/01(木) 07:26:34.43ID:urvW4tJz0
>>727
だからFnキー自体は割り当てられないけどAppsKeyをFnキーの様に使うことはできるっつーの
AppsKeyと数字の1キーを押したらF1を出力
AppsKeyと数字の2キーを押したらF2を出力
AppsKeyと数字の3キーを押したらF3を出力
以下略

これらを一通り割り当てればAppsKeyをFnの替わりに使える
例まで出してやってんだしこれで分からないなら質問する以前に基礎知識不足
wikiをよく読んでから出直して
2018/02/01(木) 07:37:13.87ID:Y39MZt1z0
AHKアップデートかけたら
vk1Dsc07B & MButton:: foo()
みたいのが片っ端から動かなくなって焦った
結局元に戻したぜ
余計なことすんな
2018/02/01(木) 08:10:11.62ID:IVRJohHu0
>>728

AppsKey & 6:: Send, {F6}
AppsKey & 7:: Send, {F7}
AppsKey & 8:: Send, {F8}
AppsKey & 9:: Send, {F9}

できました。
これで日本語入力楽になります。
本当にありがとうございました。
助かったです。
2018/02/01(木) 08:45:01.74ID:9rNYl+bm0
>>729
>>648
2018/02/02(金) 02:59:10.15ID:wY+RdUVV00202
v1.1.27.07にアップしたら、
もともとWinデフォのホットキーがあるキーに、
下のようなKeyWaitを使った複数タップ系のスクリプトが動かなくなった。
とりあえず「#2 Up::return」を上に置けば動いたけど何だろな?

#2::
 Key := "2"
 Timeout := 0.5
 KeyWait,%Key%
 KeyWait,%Key%,D T%Timeout%
 if ErrorLevel = 1
 {
  スレタイ検索
  return
 }
 ;2タップ時
 Googleで全文検索
return
2018/02/02(金) 05:38:52.02ID:EGJ8lL3F00202
なんだろうな動いたけど
GetKeyState, state, CapsLock, T で状態取得してelseで分岐させると動かない
でもトリガーがCapsLockキー単体なら問題無く動くんだよなぁ
同じコードなのにキーが違うと動かない理由ってなんだろう

;Shift+CapsLockに変えると動かない
;------CapsLock Auto OFF ------
vkF0sc03A::
GetKeyState, state, CapsLock, T
If state = U ;OFF
SetCapsLockState, ON
else
{
SetCapsLockState, OFF
}
Timer03:
If(A_TimeIdlePhysical>5000)
SetCapsLockState, OFF
Return

;Shift+CapsLockはこれじゃないと動かない
;------CapsLock Auto OFF ------
CapsLock::return
~Shift & vkF0sc03A::
Send, {CapsLock}
Timer03:
If(A_TimeIdlePhysical>5000)
SetCapsLockState, OFF
Return
2018/02/02(金) 05:43:35.42ID:EGJ8lL3F00202
そもそも状態を取得する必要性が何でだったかを忘れてるが...
下のコードだと何か気持ち悪い
2018/02/02(金) 11:23:50.20ID:UlhnALdl00202
vk**sc***は>648

それはそれとしてもLock系キーの動作は日本語OSではもともと不定でBIOS(UEFI)によって挙動バラバラだったし
たまたま動いてたのがバージョン変わったことで動かなくなったとしても別に不思議じゃないと思うが
2018/02/11(日) 15:54:02.28ID:wLAjQo6+0
識者の知恵をお借りしたい
ほとほと困ってます…

環境:windows7 32bit + Autohotkey 1.1.27.07
上記はvmware上で動作しています
この環境に,ipad + bluetooth keyboard + vmware horizone clientで,リモート接続しています
(つまり,クライアント側(ipad)の環境には,手が出せないということです)

で,windows7側で,キー入力をフックしたいのだが,Autohotkeyのkey historyで探ると,例えば…
VK=E7,SC=003D Type=U → 実際のキー入力は ”=”
VK=E7,SC=005B Type=U → 同 ”[”
VK=E7,SC=0040 Type=U → 同 ”@"
と表示されます

この情報から例えば,
sc003D::a
sc005B::b
sc0040::c
と,キーのリマップを定義しても,思い通りの動作にはなりません(scの後を3桁にしてもダメ)
また,
=::a
[::b
@::c
とやっても,思い通りの動作となりません

どうやら,autohotkey側で,VK=E7のキー入力をフック出来ていないような感じがします
このような(妙なキー入力)をフックする方法をご教授頂きたいのです

良い知恵や,サンプルコードなど,ありませんでしょうか?
2018/02/11(日) 16:54:31.12ID:3ZvNHM330
普通に
=::a
[::b
@::c
で機能してるけど
単に権限で弾かれてるだけじゃね?
2018/02/11(日) 17:35:40.80ID:DQMytbvG0
>>737
試してもらった環境で、autohotkeyのkey historyを確認してほしい。
該当する箇所のVK、SC、Typeの欄、>>736 と違うのではないかと…。
2018/02/11(日) 17:47:15.75ID:j35DJg2F0
[ → vkDB sc01B
@ → vkC0 sc01A

=なんてキーはないから知らん
2018/02/11(日) 17:52:01.25ID:3ZvNHM330
@ は C0 01A
[ は DB 01B
= はshift-なので、- は BD 00C
2018/02/11(日) 18:32:04.46ID:DQMytbvG0
>>739-740
本来は、それが正しいんだと思う。
>>736 のキー入力は、特殊な環境で発生するみたいで…。
何とかフックして、正しい状態に変換したいというのが、やりたいことなんです。
autohotkeyの他、keymillを使っても確認したが、やはり、仮想キーコードとスキャンコードは、>>736 と同じでした。
手詰まりなのかなぁ。
2018/02/11(日) 19:10:35.03ID:tFbq6f170
$ や #UseHook はどうなってんの?
2018/02/11(日) 20:36:51.05ID:wLAjQo6+0
>>742
現時点ではサンプルコードで動作確認している程度なので,必要かどうかは疑問
----- -----
#InstallKeybdHook

sc003D::a ; sc03Dも試した
sc005B::b ; sc05Bも試した
sc0040::c ; sc040も試した
----- -----

scriptとしては,上記しか記載していないです
#UseHookの記載があったとしても,効果ないですよね?
$は関係なさそうだし…
2018/02/11(日) 21:23:43.50ID:tFbq6f170
>>743
$ や #UseHookは
実際にキーが押された信号を拾う(ドライバレベルのキー変更は変更後を拾う)
ないときはソフトで発行されたキーも拾う
2018/02/11(日) 21:25:35.35ID:tFbq6f170
#InstallKeybdHookもおなじね
2018/02/11(日) 21:34:15.09ID:tFbq6f170
#InstallKeybdHookは関係ないわ忘れてくれw
2018/02/11(日) 21:49:22.37ID:wLAjQo6+0
>>744
----- -----
#InstallKeybdHook
#UseHook On

sc003D::a ; sc03Dも試した
sc005B::b ; sc05Bも試した
sc0040::c ; sc040も試した
----- -----
とやっても,ダメポ
思った通りの動きをしてくれない
----- -----
#InstallKeybdHook
#UseHook On

=::a ; sc03Dも試した
[::b ; sc05Bも試した
@::c ; sc040も試した
----- -----
もダメ
ヤレヤレ…
2018/02/11(日) 22:08:12.57ID:wLAjQo6+0
>>747
今判ったのだが,SCの4桁って,Unicodeだわ
U+003Dは"=",U+005Bは"[",U+0040は"@"
autohotkeyでUnicodeの入力をフックすることは,さすがに出来ないんだろうな
悩ましい…
2018/02/13(火) 06:44:07.16ID:sFxCGnec0
1.1.28.00
変更点多数
2018/02/14(水) 04:54:09.67ID:IcKhWWhH0
オブジェクトのクリーンアップ中に呼び出されたときに例外をキャッチして報告するように__Deleteを変更しました。
以前は、次の関数呼び出しまたはtry-block / threadの終わりまで例外を延期する(誤った)影響がありました。
アクティブなウィンドウが変化するのではなく、フォーカスが変化したときにホットストリング認識機能をリセットしました。
メニュー0&をウィンドウのシステムメニューとして扱うようにWinMenuSelectItemを変更しました。

#Includeに渡されたパス内のすべてのビルトイン変数のサポートが追加されました。
A_TimeIdleKeyboardとA_TimeIdleMouseを追加しました。
A_ListLinesを追加しました。
A_ComSpec(ComSpecのエイリアス)を追加しました。
A_LoopFilePath(別名A_LoopFileFullPathのエイリアス)を追加しました。
自動置換の代わりに同じ行のアクションを実行するhotstring Xオプションを追加しました。
Hotstring()を追加しました。
機能ホットストリングを追加。
StrSplitにMaxPartsパラメータを追加しました。
#MenuMaskKeyを改善して、VKとSC、またはvk00sc000を指定できるようにしました。
2018/02/14(水) 05:01:13.25ID:Rm7A3QSM0
A_LoopFilePathはほぼLongのほうしか使わないからそっちのエイリアスにしてくれればよかったのに
2018/02/14(水) 07:56:06.39ID:IcKhWWhH0St.V
vkxxscxxx修正疲れた〜
vkxxは動くとこと動かないとこがある
scxxxは安定ぽい
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況