

AutoHotkeyの関数を使おうと思うと、引数の使い方で迷うことしばしばあります。迷い、いろいろ試し、うまく行ったのを記録として残しておきます。
すぐに忘れるのだから。
DllCallでは、構造体がありませんが工夫するとできるようです。
AutoHotkeyの本家英語サイト:
文字の連結は 空白+ .ピリオド + 空白
空白 . 空白 = ピリオドの前後にスペース(空白)が必要
ブロック{}は先頭にないとダメ
{
~~~~
}
一番左にないとうまく認識してくれません。
Send, keys(文字列) を早くする。 IMEの影響を受けないように
;Wordpress
^LButton::
;マウスのXY取得
MouseGetPos, mx, my
mx := mx+150
my := my+100
;最初のGUI
Gui, Font,s11 ;フォントの大きさ
Gui, +AlwaysOnTop ;always TOP
Gui, Add, Button,y5 w50 gBrog , Box
Gui, Add, Button,y5 w50 gYoutube, You
Gui, Add, Button,y5 w50 gCode, Code
Gui, Add, Button,y5 w50 gTable, Table
Gui, Show, w280 h40 x%mx% y%my%, Google
Return
;---------------------------
GuiClose:
ExitApp
;---------------------------
Brog:
SetTitleMatchMode, 2
WinActivate, WordPress
tmp := clipboard
clipboard =
sleep, 100
clipboard = box
clipWait
Sleep, 200
Send, ^v
clipboard := tmp
Return
Youtube:
SetTitleMatchMode, 2
WinActivate, WordPress
tmp = %clipboard%
clipboard =
clipboard = Youtube
clipWait
Sleep, 150
Send, ^v
clipboard = %tmp%
Return
Code:
SetTitleMatchMode, 2
WinActivate, WordPress
tmp := clipboard
clipboard =
clipboard = Code
ClipWait
Sleep, 100
Send, ^v
clipboard = %tmp%
Return
Table:
SetTitleMatchMode, 2 ;部分一致
WinActivate, WordPress
clipboard = Table
Send, ^v
Return
send, aaaaaaaaaaaa のようにすると少し時間かかります。
クリップボードを使うと、早いです。
ただし、ClipBoardのデータ書き換えに時間が必要です。それともバグ、うまくクリップボードの内容が書き換わらないときがたまにあります。
Sleepを入れ、ちゃんと動くように調整しましょう。
Send, IMEがONだと、影響を受けます。
Send, A と Send, a は別物
F1::
Send, a
Return
DllCall、の使い方で読むべき記事
こちらの記事を読んで、だいぶ理解が深まりました。
ぜひ読んで下さい。
ポインタが出てくるところから、難しい。
LONG型整数は32ビット(=4バイトX8)
VarSetCapacity(point, 8, 0x00) ;変数名、確保するバイト数、内容を0で消去
コメント