14/01/19 18:14:49.09 dvav9W940
結局以下のようにして落ち着きました。
降順ループの場合、forだと変数Valueが無駄になるので
loopの方がメモリーを無駄遣いしなくて良いのかな・・・なんて思いました。
Loop, % array.Maxindex() {
c := array.Maxindex() - (A_Index - 1)
MsgBox, % array[c]
}
423:名無しさん@お腹いっぱい。
14/01/20 00:24:14.42 hAigsbcH0
オブジェクト内の要素カウントするのはコストかかるんで、
ループ前にローカル変数増やして対処するのが常套手段だけど、
AHKはどうかなぁ
424:名無しさん@お腹いっぱい。
14/01/20 04:48:58.02 qibQGH8z0
i := array.Maxindex() + 1
while --i
MsgBox, % array[i]
とか
i := array.Maxindex()
Loop {
MsgBox, % array[i]
} until !--i
とかは?
425:名無しさん@お腹いっぱい。
14/01/20 20:53:51.90 k+hq/v/Y0
>>423-424
ありが㌧
知らなかったこと色々勉強した・・・
レスが長くなるとアレなんで簡単に書くと
先ずは、「--i」は(記述されたその行で?)演算後の値になること。(「i--」は次に「i」が使われる時点で演算後の値になる)
上段・・・「while 式」は、式「--i」の評価結果が 0 の時点でループ終了すること。
下段・・・「until 式」は、式「!--i」の評価結果が真(true、つまり 0 以外)になるまでループが続行されること。(この場合、「!」が肝)
今回は、後々のメンテナンスで分かりやすい「while」ループを使うことにしました。
426:名無しさん@お腹いっぱい。
14/01/20 20:55:45.08 k+hq/v/Y0
連続だけど、質問。
今まさにWindowsがシャットダウンされようとしてるのは以下の方法で検知できるんだけど、
If A_ExitReason = ShutDown
サスペンドやハイバネートを検知するにはどうしたらいいんでしょうか?
AHKからサスペンドやハイバネートさせれば、検知など不要なんだけど、
方法如何に関わらず、検知させたいんです。
427:名無しさん@お腹いっぱい。
14/01/20 20:59:22.22 k+hq/v/Y0
あ、windowsXP 32bitでAHK_L(1.1.13.01)です。
428:名無しさん@お腹いっぱい。
14/01/20 21:31:05.63 hAigsbcH0
>>426
WM_POWERBROADCAST
AutoHotkey スレッド part6
スレリンク(software板:971番)
AutoHotkey スレッド part7
スレリンク(software板:817番),822,898,899,902-904
429:名無しさん@お腹いっぱい。
14/01/20 22:07:16.10 k+hq/v/Y0
>>428
ありが㌧
よく読んで活用します。
しかし、過去スレのpart6と7に有ったのか・・・
一応過去スレ読んどかないと、と思ってpart16・15・・・と遡りながら時間かけて読んできたけど、まだpart11の途中だったよ。
430:名無しさん@お腹いっぱい。
14/01/21 05:43:22.73 VqxOnmgt0
専ブラのJaneStyleで動画が見つからなかった時に
ダイアログを自動で閉じるようにしたいんだけど無反応でうまくいきません
どこか間違ってますか?
SetTitleMatchMode,2
#Persistent
SetTimer AutoClose,500
return
AutoClose:
IfWinExist, StreamingPlayer3 ahk_class #32770
{
ControlClick OK, StreamingPlayer3 ahk_class #32770
}
return
431:名無しさん@お腹いっぱい。
14/01/21 15:08:07.41 aYUiPLva0
AutohotkeyL x64 unicode版で動くeucへのURIエンコードスクリプトってありますでしょうか。
UTFへの変換やShiftJIS版でのものなら見つかるのですが、上記の条件だと見当たりません。
432:名無しさん@お腹いっぱい。
14/01/21 15:36:30.37 oaSK6Z880
マウスカーソルがリンク、入力モード、矢印のどれかであるかを判断する方法はあるでしょうか?
433:名無しさん@お腹いっぱい。
14/01/21 16:00:45.35 KTV70fcA0
>>432
MouseGestureLの関数丸パクリでこんなのは?
Loop
{
If MG_GetCursor() = 65567
Tooltip, リンク
Else If MG_GetCursor() = 65541
Tooltip, 入力モード
Else If MG_GetCursor() = 65539
Tooltip, 矢印
Else
Tooltip, その他
Sleep,500
}
Return
MG_GetCursor()
{
VarSetCapacity(infCur, 16+A_PtrSize, 0)
NumPut(16+A_PtrSize, infCur, 0, "UInt")
DllCall("GetCursorInfo", "Ptr",&infCur)
hCursor := NumGet(infCur, 8, "Ptr")
return hCursor
}
434:名無しさん@お腹いっぱい。
14/01/21 18:45:16.66 MOe0YTzR0
リマップ/ホットキー用スクリプト書くとき、
キー毎にまとめて書くのとアプリ毎にまとめて書くのと
どっちの方が見やすく、管理しやすいでしょうか。
…というか、どっちがオススメですか。ご意見お聞かせ下さい。
435:名無しさん@お腹いっぱい。
14/01/21 18:54:25.99 OEZwiZLo0
>>430
問題が起きたなら単純に機能をばらして確認すればいい、この場合、監視 + ダイアログをクリック
ダイアログをクリックするスクリプトを先に完成させよう。
>>432
A_Cursor
Wiki等情報サイトでまずは検索 URLリンク(ahkwiki.net)
436:名無しさん@お腹いっぱい。
14/01/21 19:49:21.45 sJJjom+00
うーん、地味に組み込み変数に今押してる修飾キーを除いた物理キーってのがないんだのう
A_thishotkeyだと#とか^とか*とか downとか upとか余計なのついてくるし、トリムコマンドで整形するしかないのん?
437:名無しさん@お腹いっぱい。
14/01/21 20:51:49.47 W82wCj4o0
かなキーに変換キーを割り当てたいだけなのに、
うまいこと設定できない。
日本語キー周りはレジストリ書き換えするしかないのか。
438:名無しさん@お腹いっぱい。
14/01/21 21:02:49.49 5mH6o05+0
やったことないが、Wikiでは半角/全角・CapsLock・かなは動作不定となっている以上、
AHKで弄るのはよろしくないんじゃね
439:名無しさん@お腹いっぱい。
14/01/21 21:32:37.32 +JdT8cDl0
>>434
俺はアプリ毎
アプリを使わなくなった時にまとめて消せるのが楽
>>437
vkF2sc070::
Send, {vk1Csc079}
return
で動かね?
440:名無しさん@お腹いっぱい。
14/01/21 21:45:03.49 OEZwiZLo0
>>434
こんな感じで管理するといいかも。
;---共通設定----
F1::
ToolTip 通常
Return
;--アプリ別設定--
#If WinActive("電卓")
F1::
ToolTip 電卓
Return
#If
#If WinActive("無題 - メモ帳")
F1::
ToolTip メモ帳
Return
#If
441:名無しさん@お腹いっぱい。
14/01/21 22:57:09.64 MOe0YTzR0
>>439-440
なるほどーアプリ毎にまとめた方が良いみたいですね。
自分もその方向で行きたいと思います。
ありがとうございました、。
442:名無しさん@お腹いっぱい。
14/01/21 22:58:28.83 kPbnp8kO0
もし良いアイディアがあれば教えてもらいたいのですが、
Windows8のタッチキーボードをトリガーに、AHKを使えたりしますか?
最近DELL Venue8を購入、Win8使ったことある人ならわかるだろうけど、タッチキーボードに左側にテンキー右側に日本語フリックのキーボードがあって、
それをテンキーよろしく8,2,4,6を上下左右のカーソル化や、「あ」をタッチしたら○○する というアクションを起こさせたいんです。
(イメージはゲームボーイのように縦に持って、両手親指で操作)