AutoHotkey スレッド part15at SOFTWARE
AutoHotkey スレッド part15 - 暇つぶし2ch2:名無しさん@お腹いっぱい。
12/10/09 07:34:22.13 0UFoq/QY0
■重要事項
オリジナルである、本家 "AutoHotKey" の開発は終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流。
スクリプトについては、それが本家AHKで動くものであるか、Lであるのかに注意。

AutoHotkey_L (内部Unicode、64bitバイナリ、オブジェクト指向、COM対応など)
URLリンク(www.autohotkey.net)

オリジナルのAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
 →URLリンク(www.autohotkey.net)
 →URLリンク(sites.google.com)

※ 新規利用者にはAHKLを推奨するが、移行に際してすくなからずの改修が必要となる。
特に、旧流行らせるページの配布物(MouseGesture等)の多くはそのままでは動作しない。
安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方がAHKL対応版を配布しているのでそれを利用するのもありです。
URLリンク(code.google.com)

■質問に際して
OSの種類(XP/Vista/7)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。

2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。

3:名無しさん@お腹いっぱい。
12/10/09 07:35:03.68 0UFoq/QY0
■過去スレ
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)
スレリンク(software板)スレリンク(software板)

以下FAQ等

■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」で保存する。(AHKLの場合)

Q2:初めて使うけどどれを使えばいいの?
A2:AHKLのユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
  64ビットOSでAHKL32ビット版の使用は制約が多いので、64ビット版を強く推奨。

4:名無しさん@お腹いっぱい。
12/10/09 07:35:39.89 0UFoq/QY0
■ リマップ・ホットキー割り当て

Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
  OS側がキーUp/Down情報が正しく返してこないのでAHKのみで対処は無理です。
  レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
 
 例) ChangeKeyを使って[ひらがな]を[F13]にする
  AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
   F12::F13
  Changekeyを起動する。( URLリンク(www.forest.impress.co.jp) )
  「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
  F12を押すとスキャンコード「0x0064」,該当するキーは「該当なし」と表示される。(0x0064はF13のスキャンコード)
  「上のスキャンコードでキー変更する」をクリックすると「~ 0x0064 をどのキーに変更しますか?」
  というウィンドウが表示されるので「ひらがな」キーを選択。「登録」をクリックし、Windowsを再起動する。

Q2:「^1::Esc」とリマップ定義したけど [Ctrl]+[1] を押したらスタートメニューが出ちゃうけどどうすればいいの?
A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
  これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
   ^1::Send, {Esc}

Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
A3:コンビネーションキーの機能で実現ができる。
 例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
   sc07B & I::Send, {Blind}{Up}
   sc07B & K::Send, {Blind}{Down}
   sc07B & J::Send, {Blind}{Left}
   sc07B & L::Send, {Blind}{Right}

5:名無しさん@お腹いっぱい。
12/10/09 07:36:19.53 0UFoq/QY0
Q4:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
A4:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
  先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」

  #UseHookで全部にキーボードフックを適応する方法でも可。

Q5:キーリマップを使うとキー押下中に連打するけど、マウスボタンの場合は連打しない…
A5:マウスはキーリピートしないので、Loopなどを使って自前でリピートさせてください。

Q6:ジョイスティックのリマップがうまくいきません!!助けて
A6:ジョイスティックではリマップできない。「Send」コマンドでキー発行する必要がある。
   × Joy1::Esc
   ○ Joy1::Send, {Esc}

Q7:ジョイスティックの上下左右に割り当てたいけど、JoyLeft,JoyUpってホットキーは無いの?
A7:無い。AHKのジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。

Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
A8:AutoHotkeyではできない。

6:名無しさん@お腹いっぱい。
12/10/09 07:36:50.82 0UFoq/QY0
Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
 ○AHKが原因の場合
  AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
  一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
  しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
  物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
   例) ^W::Send, {w 30}
  これを回避するためには、以下の方法をとればよい:
   ・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
   ・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
   ・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
     #HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする。
  なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
  発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。
 ○AHK以外が原因の場合:
  環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
  ・ Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)
  ・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている

■ IME関連

Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:URLリンク(www6.atwiki.jp) の「IME.ahk」を使いましょう。

7:名無しさん@お腹いっぱい。
12/10/09 07:37:51.65 0UFoq/QY0
Q2:IMEが現在文字を入力している、または変換中であるかどうかを得ることはできる?
A2:↑のIME.ahkで一部可能(IEやFirefox,MS-Wordのようにインライン化しているアプリでは無理)

■ その他
Q1:「a=abc」と「a:="abc"」って違いがある? / 「If a=1」と「If (a=1)」って違いがある?
A1:意味としては違いは無い。単体では、コマンド形式(共に前者)の方が「式」形式(同後者)より*少し*速い。
  複数条件の場合、IfのネストよりはAND(&&)条件で「式」を並べた方が速い。
  が、バッチでかなりの回数(数万↑~)回したりする場合以外は、体感出来るほどの差はない。

Q2:テキストエディタでキーワードの色づけなどをしたいんだけど。
A2:「{AutoHotkeyのフォルダ}\Extras\Editor」に各種エディタの定義ファイル及びキーワード一覧あり

Q3:GUI作るのめんどくせ~~
A3:公式( URLリンク(www.autohotkey.com) )から SmartGUI Creator をDLして使うと楽。

Q4:AHKってマルチスレッドじゃないの?
  タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
 MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
  > 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
  > → 実行中、 …:割り込み終了待ち
  > 元スレッド   →→→→→→……………………………………→→→→
  >                  ★割込                ↑再開
  > 割り込みスレ          →→→→…………→→→→→→END
  >                        ◆割込 ↑再開
  > 更に割り込み                →→→END
 ※ AutoHotkey_H(AutoHotkey.dll)を利用すると真のマルチスレッドが利用可。

8:名無しさん@お腹いっぱい。
12/10/09 07:38:27.86 0UFoq/QY0
Q5:AHK、AHKLx86、AHKLx64の共存は出来る?
A5:それぞれを違うフォルダ(ディレクトリ)にインストールすれば共存できます。
  但し、インストーラーを使って最後にインストールしたAutohotkey(Normal or x86 or x64)
  に対してahkファイルの関連付けが行われますので、レジストリエディタ(Regedit.exe)や
  FileTypesMan等のツールを使って関連付を変更してください。
  ahkファイルをAHK Normal、ahlファイルをAHKLx86、ah6ファイルをAHKLx64といったように
  別々の拡張子に関連付けが可能です。
  それぞれに関連付けしたファイルに対してドラッグアンドドロップを有効にするにはレジストリの
  [HKEY_CLASSES_ROOT\ファイルタイプの名前\ShellEx\DropHandler]
  の (規定) のデータを {86C86720-42A0-1069-A2E8-08002B30309D} にする。

9:名無しさん@お腹いっぱい。
12/10/09 08:49:50.91 ZlmuQvaC0
新スレ立て乙


10:名無しさん@お腹いっぱい。
12/10/09 09:03:26.49 tLc3kbJg0
11 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2012/04/03(火) 00:32:48.70 ID:0gt728Ga0
● 分からない理由 ●
1. 過去ログを読まない。
2. 読んでても肝心な所が見えてない。
3. 検索能力が低い。
4. そもそも検索する気がない。
5. 類推という概念がない。
6. それ以前に普通に頭が悪い。

<わからない11大理由>
1.読まない …現行スレ、テンプレ、取説などを読まない。読む気などさらさらない。
2.調べない …過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3.試さない …めんどくさいなどの理由で実行しない。する気もない。
4.覚えない …人から聞いて、楽して得た答えは身に付かないから、すぐに忘れる。
5.説明できない …何に困っているのか、第三者に正確に伝わる文章が書けない。
6.理解力が足りない …理解力以前の問題で理解しようとしない。
7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
8.感謝しない …教えてもらって当たり前。事がすんだらさようなら。
9.逆切れする …自分の思うようにならないと逆切れする。
10.開き直る …自分の思うようにならないと開き直る。
11.2ちゃんねるをお客様相談室だと思っている。




11:名無しさん@お腹いっぱい。
12/10/09 09:04:02.80 tLc3kbJg0
12 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2012/04/03(火) 00:33:30.20 ID:0gt728Ga0
★教えて君五大要素★

1 読まない             (文盲)
2 調べない             (能なし)
3 試さない              (発想力欠如のアホ)
4 理解力が足りない        (馬鹿)
5 人を利用することしか頭にない (死ね)



           YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね
         /                  \
【探した?】                        NO → なら、ねぇよ
         \
            NO → 死ね




12:名無しさん@お腹いっぱい。
12/10/10 06:27:27.47 YoZO/elBP
ろだ
URLリンク(ux.getuploader.com)

13:名無しさん@お腹いっぱい。
12/10/11 17:43:15.43 1yvIUZ460
WindowsXPで、アプリを最大化した時に少しでも広く画面を使いたいので
タスクバーの最前面化の有効・無効を任意に設定したキーで切り替えたいんだけど
何かいい方法ありませんかね?

14:名無しさん@お腹いっぱい。
12/10/11 19:20:49.87 NRu/DcCR0
>>13
自分でやってみて理想通りに動作しなかったスクリプトを晒せば
誰かが修正に応じてくれるよ

15:名無しさん@お腹いっぱい。
12/10/11 21:57:18.89 97wkXmHq0
もうこっち使えばいいんかね?
新スレ立った状態のときって一般的にどっちを使えばいいのか分からん

16:名無しさん@お腹いっぱい。
12/10/11 22:15:02.73 NRu/DcCR0
980超えたら24時間書き込みなしでdat落ちする。
それを考慮し、心配なら新スレの方でいいんじゃない?

17:名無しさん@お腹いっぱい。
12/10/14 02:56:49.75 6dIGOegk0
グループ作成して、以下のキーを送信しているのですが
ControlSend, , {F10},ahk_group xxxx
これで送信される時とされない時があるのは何故でしょうか?
成功率は7割位です。

18:名無しさん@お腹いっぱい。
12/10/14 08:51:42.57 P5a8qdyz0
情報がすくない、環境も書いてない

・SendMode は何使ってる?
・グループ化した窓全部って意味なのか
・"成功"ってのは ErrorLevel で判断してるのか、それともアプリが反応したかどうかか
・成功・失敗するときの傾向は?; アプリがアクティブか? 特定アプリの場合のみ失敗するか?


一般論でいうと、窓が見つかればキーは送られているはずで、反応するかどうかはアプリ次第

19:名無しさん@お腹いっぱい。
12/10/14 12:08:46.56 P376nw8z0
>>17
低級エスパーな俺がエスパーしてみたらこうなった

setkeydelay, , 100
ControlSend, , {F10},ahk_group xxxx
setkeydelay, , -1

20:名無しさん@お腹いっぱい。
12/10/14 15:36:33.82 rwsjE1hj0
>>18こんな感じのスクリプトです。正直よく理解していません助けてください。

GroupAdd window, ahk_class window1
GroupAdd window, ahk_class window2
GroupAdd window, ahk_class window3

WinWait, ahk_group window
ControlSend, ahk_parent, {F10}, ahk_group window

キーを送信するのは一つのウインドウです。
複数ウインドウには送信しません。
・Sendmodeは設定していません。
・成功のエラーレベルは理解していません。
・成功失敗の状況は同じです(同じ状況で繰り返し確認しました)

上記スクリプトにどのようなコマンドを記述すれば良いのでしょうか?
よろしくお願いします。

>>19有難う、でも出来ませんでした。


21:名無しさん@お腹いっぱい。
12/10/14 15:39:13.91 rwsjE1hj0
環境書いていませんでした。
windows764ビット
AutoHotkey - version 1.0.48.05
よろしくお願いします

22:名無しさん@お腹いっぱい。
12/10/14 19:36:10.65 rwsjE1hj0
ControlSend, ahk_parent, ~F10, ahk_group window
このコマンドが正しいかは分かりませんが、自己解決したみたいです。

23:名無しさん@お腹いっぱい。
12/10/14 23:42:36.32 6dIGOegk0
どんなウインドウにマウスカーソルがあっても
デスクトップ上での右クリックを表示させることは可能でしょうか?

24:名無しさん@お腹いっぱい。
12/10/14 23:50:28.26 P5a8qdyz0
そういう限定条件があるならNO
「大抵はな」らOK

25:名無しさん@お腹いっぱい。
12/10/15 23:35:09.84 u3NMjoql0
ahk_classで指定したウインドウのみ、左クリックを無効に出来ますか?

26:名無しさん@お腹いっぱい。
12/10/15 23:40:39.03 sRqS+Tuz0
ahklで#ifのサンプル改編すれば余裕

27:名無しさん@お腹いっぱい。
12/10/16 00:05:31.22 xbcFq+IJ0
うまく出来ません。
どなたかお知恵を拝借願います。
#IfWinExist ahk_class 1234
Lbutton::return
#IfWinExist
LButton::
return

28:名無しさん@お腹いっぱい。
12/10/16 00:14:39.81 g3nHs9+d0
#IfWinExist(ウィンドウが存在したら(存在していればアクティブでなくてもOK))
#IfWinActive(ウィンドウがアクティブなら)

下2行は何がやりたいのかわからんが多分いらん

29:名無しさん@お腹いっぱい。
12/10/16 00:19:41.65 CHXOMW920
LButton::LButton
をやりたいんだろうけどその場合は上2行だけでおk

30:27
12/10/16 00:29:21.76 xbcFq+IJ0
有難うございます、間違えました。
ahk_classで指定したウインドウのみ、左クリックを無効にし
他のウインドウには通常の左クリックがしたいです。

31:名無しさん@お腹いっぱい。
12/10/16 07:26:59.99 3R75TMGD0
ahk_classで指定したWindowのみってのはどういう状態?
アクティブな時なのか、カーソルがWindow上にある時なのか
多分後者だろうけど、前者ならIfWinActiveで判別
後者ならMouseGetPosとWinGetClassで判別になるんじゃないかいね

32:名無しさん@お腹いっぱい。
12/10/16 08:45:36.19 EIWCuOSA0
>>31も含めて>>26でok

33:名無しさん@お腹いっぱい。
12/10/17 09:53:33.08 zpvyx71j0
他ソフトのウィンドウだとうまくマウス制御できるのに、sleipnir3は同じ動作ができません。

AutoHotKeyの動きを邪魔するウィンドウやソフトなどあるのでしょうか?

34:名無しさん@お腹いっぱい。
12/10/17 23:01:28.11 jjqcFqzB0
そんなぼやけた情報だけじゃこれしか言えんわ

知らん

35:名無しさん@お腹いっぱい。
12/10/18 22:27:19.82 0dABjSnS0
MacでAHK的なことができるやつってあるかな?
Macbook購入を躊躇する最も大きな原因としてWindowsでのAHKが便利すぎるのがある

36:名無しさん@お腹いっぱい。
12/10/18 23:35:03.38 nS306G6v0
>>35
スレチだからスルーしてくれてもいいけど
そこまでしてマックブックを購入するメリットってなんだ?
煽りじゃなく興味本位で


37:名無しさん@お腹いっぱい。
12/10/18 23:42:17.71 A95toK1r0
BootCampでWin入れればいいじゃないかな

38:名無しさん@お腹いっぱい。
12/10/18 23:53:10.43 0dABjSnS0
>>36
ノートとしてのハードがよくできてることと
あとiOS向けアプリの開発をしたいから
まあWeb系ではMacbookでの開発が多くなってきてるってのも一応理由にある

39:名無しさん@お腹いっぱい。
12/10/19 08:51:50.01 9smewYCV0
>>35
試したことないんだけど>>1の派生版とか?

40:名無しさん@お腹いっぱい。
12/10/19 11:11:41.97 qTENWohe0
IronAhk (.NET製、クロスプラットフォーム)
URLリンク(www.ironahk.net)
ってどんなもんか見ようと思ったがどのブラウザでもドキュメントページが表示されない
どうやってドキュメント確認したらいいんだろうか

41:名無しさん@お腹いっぱい。
12/10/19 11:18:34.97 blhd7H6G0
>>40
URLリンク(www.ironahk.net)
*が付いてるのは作りかけかな?

42:名無しさん@お腹いっぱい。
12/10/19 11:24:02.52 qTENWohe0
>>41
うーむそうなのかドキュメント確認くらいはしたかった
素AHKと同じ構文なんだろうか
Hotkey表現とか#ifやらがどうなっているのかはさすがに知りたいんだがなあ

43:名無しさん@お腹いっぱい。
12/10/19 11:25:04.59 qTENWohe0
と思ったら下に * Not yet documented. って書いてあるね
フォーラムとか見て確認するしかないか

44:名無しさん@お腹いっぱい。
12/10/20 00:18:05.80 x4ff1au90
ある文字から始まる値をURLに追加してそのwebページを
開こうと考えています。
(例: !12345\ と打つと、abc.jp/12345 を開く)

#Hotstring EndChars \
:B0:!~::
url := "abc.jp/" . ~
Run, "C:\Program Files\Internet Explorer\iexplore.exe" %url%

上のような形を考えたのですが、任意の文字列である
~の部分が取得できず悩んでいます。


45:441
12/10/20 00:20:39.12 x4ff1au90
本文が長すぎると言われたので分割しています。

上手いこと ~ の部分を取得してurlにセットしたいのですが
どうすれば良いでしょうか。

46:名無しさん@お腹いっぱい。
12/10/20 05:43:54.96 ANQEfWyQ0
InputBoxに入力したものを渡した方がいいんじゃない?

47:名無しさん@お腹いっぱい。
12/10/20 11:04:26.45 JyAMah3k0
先生がたに質問がございます。

ブラウザで各webサイトにログインする時に
Ctrl+EでIDとパスをそれぞれクリップボードに送り、貼り付け、Enterという動作させてました。
サイトにより、tab押す回数増えたりとか細かいところは調整しつつ。
ウィンドウタイトルを取得して
Yahoo!にログインの場合は^Eでこの動作、googleにログインの場合はこの動作・・・と。

普通にそれを増やしていったのですが、さっきまた新しいwebサイトに対してそのログイン動作を追加しようとしたら
^Eに対してduplicateエラー吐かれました。

同じプログラム(この場合chrome)での一つのキーアサインに対して設定数の上限てありましったっけ?
別に複雑なスクリプトでもないのでさっぱり原因がわからず・・・。

48:名無しさん@お腹いっぱい。
12/10/20 11:24:04.92 ANQEfWyQ0
Lastpassオススメ。
クラウドが怖いならローカルで使えばいい。

49:名無しさん@お腹いっぱい。
12/10/20 11:25:59.28 JyAMah3k0
>>47
自己解決です。
同じサイトへの設定を既に書いてました。。
アホな質問してすんませんでしたm(_ _)m

50:名無しさん@お腹いっぱい。
12/10/20 11:27:05.89 5CWvrAau0
複雑でもないならコード書くほうがいいよ

使った実装方法が文面からは分からないがduplicateというくらいなのだから
重複がないかどうかちゃんと調べる
あとパスワード管理ログイン管理はさすがにAHKでなくて別の方法取った方がいい
スクリプト中にパスをそのまま書いておくのも良くないしスクリプトでは明らかに管理が面倒

51:名無しさん@お腹いっぱい。
12/10/20 13:26:31.08 ft55l0l60
>>44
~の種類だけホットストリングラベルを定義する
:B0:!a::
:B0:!b::
StringTrimLeft,Hot,A_ThisHotkey,5
Run,URLリンク(www.google.co.jp)
return

~の種類が多いなら>>45が言ってるようにInputBoxを使う
:B0:!::
InputBox,Input
If ErrorLevel = 0
Run,URLリンク(www.google.co.jp)
return

52:名無しさん@お腹いっぱい。
12/10/20 13:27:53.71 ft55l0l60
>>45じゃなくて>>46だった

53:45
12/10/20 14:30:57.81 x4ff1au90
>>46,51
数千種類あるのでInputBoxを経由させたところ
上手く実行出来ました。
ありがとうございました。

54:名無しさん@お腹いっぱい。
12/10/20 17:59:10.22 7Xnp9DD30
某マウスのソフトでブラウザ上の文字を選択して
それを検索にかけるone click searchてのがあるんですけど
それをctrlダブルクリックで機能するように設定したいんです
ネットで拾ってきた文を骨格にして元のクリップボードを維持しつつ
上記の機能をなそうとしたのですが、正常に動く確率がそこまで高くなくその原因を知りたいです

~Ctrl::
If (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 500)
{
Sleep 50 ;
Send,{Esc}
bk=%ClipboardAll%
Clipboard=
Send, ^c
ClipWait
Run, URLリンク(www.google.com)
Clipboard=%bk%
}
return

2行目以外はおおよそ意味は分かるんですが、
2行目は500ms以内にクリックしないといけない、くらいにしか理解してない程度です
今回はとりあえず正常に動くことのみ気にしてるので推敲お願いします

55:名無しさん@お腹いっぱい。
12/10/21 01:05:01.57 PdCw1M4n0
その前に、自分的にはどう動いたら正解かを書くのが筋だろう

56:名無しさん@お腹いっぱい。
12/10/21 01:47:55.00 OSM3TvDU0
最初に大体書いてんじゃん
ブラウザ上で文字選択してctrlダブクリでその文字をgoogle検索
(実行したら文字選択解除)
クリップボード経由だけど汚したくないからバックアップ取ってそっから復元

むしろどれくらい失敗するのか、どう失敗するのかを書くべし

57:名無しさん@お腹いっぱい。
12/10/21 02:03:08.09 dsOm/IEj0
失敗ってのはまったく無反応、確率というのは
動くときは何回やってもほぼ100%動いて、動かない時は何回やっても動かないな感じです
何が影響してるかが全く分からないので統計の取りようもないです
とりあえず0か100かって感じです 
スクリプトでどうにもできないことなら仕方ないですが、何か改良すべきことがあるなら

58:名無しさん@お腹いっぱい。
12/10/21 02:44:18.12 lNbSWKtw0
とりあえず~Ctrl::だとCtrl押しっぱでも反応しない?
~Ctrl Up::のがいいような気がする
Sleep 50とSend,{Esc}はよくわからんが、なくてもいいような
ClipWaitはタイムアウト設定したほうがよさげ
ClipWait,1とか0.5とか時間は適当に
んで、格納失敗したときにメッセージとか出したいなら
If ErrorLevelで処理記述
Clipboard=%bk%の後に「bk=」の行追加で変数bkを空にしてやったほうがいい

ミジンコの俺が感じたのはこんな感じかなあ

59:名無しさん@お腹いっぱい。
12/10/21 04:45:20.74 dsOm/IEj0
>>58
ありがとうございます だいぶ動きが滑らかになって今のとこ確実にできてます

修正前は何も文字列を選択しない場合は確実に無反応になっていたのですが
修正後は同状況では空白で検索されているっぽくgoogleが開いてしまったので、途中を

Send, ^c
ClipWait,1
If Clipboard =
Clipboard=%bk% (動作としては必要はないけど Clipboardが空でない が書けなかったため)
else
Run, URLリンク(www.google.com)

としました

>>55-56 情報が足りませんでしたすみません

60:名無しさん@お腹いっぱい。
12/10/21 09:03:59.18 6LWHVHkO0
ClipWaitがタイムアウトしたらErrorLevelが1になるんだし
If !ErrorLevel
Run, URLリンク(www.google.com)
でいいんじゃないの

61:名無しさん@お腹いっぱい。
12/10/21 17:09:50.65 9tWC3ZH30
IE9を使用しています。
IEが動いていたらアクティブ化したいのですが
以下のように記載しても動きません。
何がまずいのでしょうか。(通過メッセージは出ています)
Process,Exist,iexplore.exe
If (ErrorLevel <> 0) {
winActivate,ahk_pid %ErrorLevel%
MsgBox,4,,通過
}
return

62:名無しさん@お腹いっぱい。
12/10/21 18:06:57.50 nYBSf3er0
IE9はマルチプロセスなんでタイトル文字で指定した方がいいんでない?

SetTitleMatchMode, 2
WinActivate, Windows Internet Explorer ahk_exe iexplore.exe

63:名無しさん@お腹いっぱい。
12/10/21 18:41:46.87 a492Rb0y0
1000ms間隔で30回、それぞれの指定位置で右クリックするマクロを組んだのですが
このマクロの実行中に手動で途中で中断させる方法はありますか?

64:名無しさん@お腹いっぱい。
12/10/21 18:55:36.20 6LWHVHkO0
>>63
a::Reload

65:名無しさん@お腹いっぱい。
12/10/21 21:04:45.65 9tWC3ZH30
>>62
タイトル指定でいけました。
ありがとうございます。

そういえばプロセス一個だけの場合でも
プロセス指定では無理でした。不思議


66:名無しさん@お腹いっぱい。
12/10/21 21:39:50.50 lNbSWKtw0
>>63
ホットキーでマクロ開始するタイプなら>>64
macro.ahkを実行すると開始するタイプなら
スクリプトの後ろにa::ExitAppを追加
他のスクリプトも混在してるからReloadやExitAppは困るなら
MouseClick処理前にフラグを確認するようにして
フラグを立てるためのホットキーを設定してやる
これなら中断したところから再開とかもできる

67:名無しさん@お腹いっぱい。
12/10/21 22:54:39.36 /ipUcWyp0
複数のスクリプトを常駐中に、任意のスクリプトのみを終了させる事は出来ますか?

68:名無しさん@お腹いっぱい。
12/10/21 23:17:22.77 PdCw1M4n0
「スクリプトのパス ahk_class AutoHotkey」がメイン窓なんで、
WinMenuSelectItem や WM_COMMANDで終了メニュー選ぶんだり、
PIDで強制終了するなりすればいい

69:名無しさん@お腹いっぱい。
12/10/22 01:02:57.74 LCMhxr5y0
了解しました。がんばってみます

70:名無しさん@お腹いっぱい。
12/10/23 12:37:17.16 h1z/eHQI0
>>64,66
お返事遅くなりましたが親切にありがとうございます


71:名無しさん@お腹いっぱい。
12/10/23 13:50:32.43 +xYjZMPD0
お尋ねします。
一つのスクリプト内に幾つかの設定があり、その一部がエラーだった場合
そのエラーを無視して起動させる事は出来ますでしょうか?

72:名無しさん@お腹いっぱい。
12/10/23 20:07:40.48 HyDv+1vv0
ちょっと漠然としすぎじゃないかな

73:名無しさん@お腹いっぱい。
12/10/24 07:26:28.45 jF6YYXc50
>>71 組み込み変数 ErrorLevel で分岐することはできる。
文法エラーは修正しないと,エラーメッセージが出続ける。

74:名無しさん@お腹いっぱい。
12/10/24 11:01:36.68 IHBdJcWp0
正規表現中の「"」をエスケープする方法はあるでしょうか?

`"としても\"としてもエラーになってしまいました。

"`"" → ×
"\"" → ×

75:名無しさん@お腹いっぱい。
12/10/24 13:15:22.36 /If6D4Dn0
"""" → ○
じゃなかったかな
"abc"defg" → "abc""defg"
って感じ

76:名無しさん@お腹いっぱい。
12/10/24 21:02:53.91 QJQ7XNkk0
これ?

a = abc"def
dbl = "
msgbox, % regexmatch(a, "c" . dbl . "d")

77:名無しさん@お腹いっぱい。
12/10/24 21:10:14.08 QJQ7XNkk0
それかこれ?
a = abc"def
msgbox, % regexmatch(a, "c" . chr(34) . "d")

78:名無しさん@お腹いっぱい。
12/10/25 18:51:03.17 YtSW1qmd0
URLDownloadToFileにPOST形式は指定できないようですが、何か裏ワザとかあったりするでしょうか?

79:名無しさん@お腹いっぱい。
12/10/25 19:02:18.72 7L0ePVrn0
フォーラムに通信関連のライブラリがあった気がす

80:名無しさん@お腹いっぱい。
12/10/25 22:24:48.18 8MeQqsoA0
同じソフトウェアのウインドウだけを
全画面にタイル状に並べるスクリプトあるじゃないですか。
あれすると今見てるウインドウが一番右(一番うしろ)にいってしまいます。
あれを今見てるウインドウを一番左に(左上、or左に)並べるようにできませんか?

このスクリプトです。
TileMove()
{
WinGet, activeWindowID, ID, A
WinGetPos, x, y, w, h, ahk_id %activeWindowID%
SysGet, monitorCount, MonitorCount
Loop, %monitorCount%
{
SysGet, m, MonitorWorkArea, %a_index%
if (mLeft <= x && x <= mRight && mTop <= y && y <= mBottom)
{
WinGetClass, activeWindowClass, ahk_id %activeWindowID%
WinGet, id, list, ahk_class %activeWindowClass%
Loop, %id%
{
w := (mRight - mLeft) / 2
h := (id > 2) ? (mBottom - mTop) / 2 : mBottom - mTop
x := (Mod(a_index, 2) == 1) ? mLeft : mLeft + w
y := (a_index <= 2) ? mTop : mTop + h

StringTrimRight, this_id, id%a_index%, 0
WinActivate, ahk_id %this_id%
WinWaitActive, ahk_id %this_id%
WinMove, ahk_id %this_id%,,%x%, %y%, %w%, %h%
}
break

81:名無しさん@お腹いっぱい。
12/10/25 22:59:30.65 sC+z2xpV0
やれやれだな

82: 忍法帖【Lv=40,xxxPT】(1+0:8) 【東電 68.9 %】
12/10/25 23:01:12.58 PzKg9++xP
マウススクロールの↑をloopで指定回数行うのにsleep以外で間隔指定できませんか?

あと、Edit This Scriptでメモ帳を別のエディタに変えたい場合はレジストリ?

83:名無しさん@お腹いっぱい。
12/10/25 23:12:19.71 /Ly6Bf/p0
>>82
言うようにレジストリ
とは言え個人的には編集用のホットキー用意しておく方が便利
#a::run, "c:\program files\someone\editor.exe" "ahkscript.ahk"

84:名無しさん@お腹いっぱい。
12/10/26 00:12:50.02 zhQcHivP0
>>82
>マウススクロールの↑
ホイールのこと言ってるなら Send,{WheelUp 10} とか

エディタのレジストリキーは以下
HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command

85:名無しさん@お腹いっぱい。
12/10/26 00:15:59.23 zhQcHivP0
すまん回数指定かつ間隔指定か
ならSendで送る前にSetKeyDelayを指定しておく

86: 忍法帖【Lv=40,xxxPT】(1+0:8) 【東電 61.0 %】
12/10/26 01:22:09.81 WinEKDC+P
>>83
それだと別に起動しておかないといけないですね。

>>84
関連付けできましたー。

>>85
簡単に・・・
SetKeyDelay,xxx
loop xxx {
Send, {WheelUp}
}

SetMouseDelay,xxx
loop xxx {
MouseClick,WheelUp
}

両方試しましたが1回しかカウントされず多分一瞬で終わっているみたいですね。
前スレにあったsleepでやるしかないのか。。。

87:名無しさん@お腹いっぱい。
12/10/26 01:40:47.37 QQQnF1yf0
なぜsleepが嫌なのか

88:名無しさん@お腹いっぱい。
12/10/26 01:53:21.06 2v3pU1Bn0
マニュアルやヘルプみたの?setkeydelayの使い方が誤っている。

89:名無しさん@お腹いっぱい。
12/10/26 08:03:20.24 zhQcHivP0
いや一番肝心な数値の部分をxxxで伏せられたらわからんし

0.5秒間隔でホイール10個送るなら
SetKeyDelay,500
Send,{WheelUp 10}

SetMouseDelay,500
MouseClick ,WheelUp,,,10

90: 忍法帖【Lv=40,xxxPT】(1+0:8) 【東電 74.9 %】
12/10/26 16:58:14.06 WinEKDC+P
キーならいいけど、マウスはうまく動かないですね。
別の方法を探してみるしか無いかな。

>>87
中断がうまくできないので。
SetKeyDelayの場合、loop中に再度実行するとloopが再開するので。

>>88
Example(s)
SetKeyDelay, 0
使用例にあったのでそのまま使いました。

>>89
間隔50ms~5sでloopが100~1000回とかまちまちなので。


91:名無しさん@お腹いっぱい。
12/10/26 20:55:18.81 zhQcHivP0
だからそういう条件は先に言えと、後出しは遠回りでムダになるっしょ
中断させたいならloop内でbleakさせりゃいいんじゃね

92:名無しさん@お腹いっぱい。
12/10/26 21:03:51.59 gBrlXe8X0
Pだからな、無理もない

93:名無しさん@お腹いっぱい。
12/10/26 21:45:55.19 eZgzgEBn0
やりたい処理の全体像がいまいちつかめないので断言はできないけど、
Sleepがいやな理由が中断・再開がうまくいかないってことなら解決法ありそうだけどな

94:名無しさん@お腹いっぱい。
12/10/26 22:24:19.50 OkyiV06r0
Win 8 にしたら Send, {Alt Down}{Tab} で擬似 AltTab ができなくなってしまった。

95:名無しさん@お腹いっぱい。
12/10/26 22:29:29.36 PSmHapYr0
できなかったという一言感想だけ言うよりどうしたら改善したとか
原因はおそらくこれとかいう情報もあった方がいいのでは
そこまで日記的だと本当にWin8が原因なのかも分からない

96:名無しさん@お腹いっぱい。
12/10/27 11:30:18.93 uDsL5QVN0
win8でautohotkeyがうまく動かないというのは
autohotkey forumにあまり情報がないかと
どうなんだろうね

97:名無しさん@お腹いっぱい。
12/10/27 19:23:24.43 zXqWWw1p0
>>94きっかけで作り始めたんですけど
x::AltTabMenu でスイッチャ起動してクリックで決定したあと

(スレリンク(operatex板:850番)代行)

98:校倉木造 ◆AZEkURA/hI
12/10/27 19:24:40.31 zXqWWw1p0
>>97 続き

Altがおしっぱになってるらしく一回Altを押さないと正常に戻りません
#IfWinActive ahk_class TaskSwitcherWndで
スイッチャがあるときにUpとかを決定(Lクリック)に連動させて入力しても
ある時に~という設定だからなのか動きません
どうにかして決定後に自動的にAltを解除できませんかね?

99:名無しさん@お腹いっぱい。
12/10/27 21:05:15.95 rWPm+UU00
FileDelete, コマンドでお聞きします。
複数行にならず、一行だけで指定したファイルを連続して削除する事は可能ですか?

100:名無しさん@お腹いっぱい。
12/10/27 21:26:27.92 xnXiHDio0
自分で複数指定できる関数作ればいいじゃない

101:名無しさん@お腹いっぱい。
12/10/28 00:23:01.78 TgOAbVyh0
なんか最近、同一人物なんか知らんが
意図のわからない質問が増えてるな

102:名無しさん@お腹いっぱい。
12/10/28 00:56:41.94 /+4sRrQx0
質問内容が曖昧なのと、なんか限定的な条件がついてるよね
やりたいことと、なぜその条件が必要なのか書けば解決法出てきそうなんだけどね

103:94
12/10/28 11:39:18.61 n/plubYp0
結局 AHK フォーラムで聞いてみた。Win8 標準ホットキーの少なくとも一部 (Alt-Tab など) は外部ツールから起動できないらしい。
URLリンク(www.autohotkey.com)

104:名無しさん@お腹いっぱい。
12/10/28 12:54:38.19 hk7vik+e0
>>103
なるほど
"Our. Top. Men!" の意味は全然汲み取れないんだが今取り組んでるから多分治るよって事か

105:941
12/10/28 14:19:21.10 n/plubYp0
>>104 「俺たちの!! スーパー!! ヒーロー!!」ってくらいの意味で、
Lexicos をはじめとする AHK デベロッパーが何とかしてくれるはずという期待が
Don't worry 以降に、そして Though 以降にこの問題が遷延する可能性をいってます。
ここらへんは全部ポストした人の憶測なので、確かな情報としては >>103 のみ

106:名無しさん@お腹いっぱい。
12/10/28 16:22:52.45 HBCQ+2I40
指定したウインドウを、90度180度と回転させる事って出来ますか?

107:名無しさん@お腹いっぱい。
12/10/28 18:12:11.05 cCpsD4eX0
何のために?理由によっては別の方法がある

108:名無しさん@お腹いっぱい。
12/10/28 18:16:39.46 TgOAbVyh0
タブレット的に使いたいってことなんだろうけど、ウィンドウ単位では無理
ディスプレイ全体だったらGPUが対応していればいける

109:名無しさん@お腹いっぱい。
12/10/28 18:24:05.57 HBCQ+2I40
正にタブレットみたいな使用法です。
でもそう都合よくはいきませんよね。
ありがとうございました。

110:名無しさん@お腹いっぱい。
12/10/29 13:43:21.08 WP4veEYEP
>>101-102
1から10まで書いてくれないと答えられないから全部書いて欲しいよな。

111:名無しさん@お腹いっぱい。
12/10/29 13:57:38.48 9JeZFFTq0
Windows8のメトロUI?ってAutoHotKeyって動作するんですかね…

スマフォ系でAutoHotKeyが使えれば、その端末即買いですよ

112:名無しさん@お腹いっぱい。
12/10/29 17:25:19.34 MtmxPhvx0
Autohotkeyからrunで呼び出したバッチファイルのウインドウを、非表示にさせることは出来ますか?

113:名無しさん@お腹いっぱい。
12/10/29 18:14:45.59 TP0zE+WP0
Run, hoge.bat , , Hide

>>110
つまらない、15点

114:名無しさん@お腹いっぱい。
12/10/29 18:20:46.86 MtmxPhvx0
助かりました有難うございます

115:名無しさん@お腹いっぱい。
12/10/29 19:19:21.75 5nBzfWZL0
>>110
別に書かなきゃ答えないだけだから好きにしろよ

116:名無しさん@お腹いっぱい。
12/10/30 13:01:41.39 dU/tE5XU0
UWSCのスクリプトをAutoHotkey用に変換する方法教えろ

117:名無しさん@お腹いっぱい。
12/10/30 14:05:18.90 Pb3euaEE0
まずUWSCのドキュメントとAHKのドキュメントを用意してください。
次に、変換したいスクリプトを開きます。
あとは簡単。
ドキュメントを参照しながら同じ結果が得られるように
AHKのスクリプトファイルにコマンドを入力していけば、変換完了です。

118:名無しさん@お腹いっぱい。
12/10/30 14:27:11.08 BDB9HMBv0
wasd操作のゲームがあるんですが、eで右上(dw)、qで左上(aw)、shiftで左下(as)、spaceで右下(ds)に方向を割り当てて8キーにしたいんですけど1つのキーに2コキーを当てることは出来るんでしょうか?

119:名無しさん@お腹いっぱい。
12/10/30 15:28:35.09 VJ8k022K0
そのゲームで動作するかは知らんが普通に2キーSendしてみれば

120:名無しさん@お腹いっぱい。
12/10/30 15:50:00.90 BDB9HMBv0
文章として入力されてしまうようでできませんでした
素直に諦めます

121:97-98
12/10/31 03:14:53.96 k6OEMr050
アク禁喰らってダメだったので質問しなおします

マウスボタンににF1を割り当てて
F1::AltTabMenu でタスクスイッチャを作ったはいいんですが
アイコンを左クリックで決定してタスクをアクティブにしたら
どうやらAltがおしっぱになっているらしく、他の操作に支障が出ます
タスクを決定したときに自動でALTを押され、解除されるようなのはできないでしょうか?

122:名無しさん@お腹いっぱい。
12/10/31 10:56:17.32 +nSJU9nv0
F1 up::AltTabMenu

123:名無しさん@お腹いっぱい。
12/10/31 16:56:54.45 e3fL720f0
ヒドゥンな指定プロセスにコマンドを送信したい場合ってどうすればいいのでしょうか?

124:名無しさん@お腹いっぱい。
12/10/31 17:31:50.36 e3fL720f0
Autohotkeyjpに以下のサンプルがありますが
コマンドプロンプトを起動状態でも送信されません。
何故でしょうか?
SetTitleMatchMode, 2
ControlSend, , abc, cmd.exe

125:名無しさん@お腹いっぱい。
12/10/31 18:01:55.26 Ty+Z6p1v0
>>124
試してみたらそれで普通に送信できたよ
コマンドプロンプトのタイトルにcmd.exeが含まれてないとか何かあるんじゃない

126:名無しさん@お腹いっぱい。
12/10/31 18:36:39.85 NptaHGpU0
DetectHiddenWindows, On

127:名無しさん@お腹いっぱい。
12/10/31 18:49:56.01 e3fL720f0
>>125
すみません、確認不足でした。
再起動したら送信されました。
>>126
ありがとう

128:名無しさん@お腹いっぱい。
12/10/31 22:50:01.67 k6OEMr050
>>122
ありがとうございます 
その1行で大丈夫なんですか?

129:名無しさん@お腹いっぱい。
12/11/01 00:01:18.82 8VTyHPOV0
よくわかんないけど
公式まで行って、win8固有の問題って言われたんなら Lexicosとかが対応してくれるまでは
無理なんじゃなかろうか

130:名無しさん@お腹いっぱい。
12/11/01 14:46:01.44 41V8YK7C0
>>122
動作的には変化ないんですけどどうなんでしょう?

131:名無しさん@お腹いっぱい。
12/11/01 16:03:08.94 qg4/zr/Z0
>>121
Win8で動くかどうか確認してないけど、これは?

F1::AltTabMenu

#IfWinExist ahk_class TaskSwitcherWnd
~!Lbutton::
WinWaitClose, ahk_class TaskSwitcherWnd
send, {alt up}
return

132:名無しさん@お腹いっぱい。
12/11/01 18:31:00.63 W4bVhOOu0
ちゃんと設定してもそのとおり動かないホットキーがあるのは仕様なんでしょうか?
wとsにPgUp、PgDnを割り当ててるんですけどSキーを押してもPgDnが認識されません
他にも.キーにCtrl++(拡大)ショートカットを割り当ててるんですけどこれも機能しません

133:名無しさん@お腹いっぱい。
12/11/01 18:47:21.16 VFeSPN1iO
ちゃんと出来てると思ってても出来てないか割り当ててるというソフトの設定の問題か他のソフトが干渉してるかどれかだな
.ahkと対象のソフト名、あと出来ればタスクマネージャのスクショうp

134:名無しさん@お腹いっぱい。
12/11/01 19:31:04.06 44QIZGaQ0
>>131
ありがとうございます できました
自分はwin8について発言した方とは別人なのでその辺は大丈夫です
いろいろ紛らわしくなってしまいましたね・・・ありがとうございました

135:名無しさん@お腹いっぱい。
12/11/01 19:41:11.52 W4bVhOOu0
>>133
zipにかためたところでふと気になって再起動したら普通に動きました。すみませんありがとうございます

136:名無しさん@お腹いっぱい。
12/11/01 22:33:47.97 8rB03r/Q0
zipにかためたとはいったい

137:名無しさん@お腹いっぱい。
12/11/01 22:37:09.39 W4bVhOOu0
ahkとかうpれって言われたんでその参考にとahk他をzipで固めたところで自己解決しちゃったので・・・

138:名無しさん@お腹いっぱい。
12/11/02 09:52:06.09 Jz5iL64J0
教えて欲しいのですが・・・
settimerが動作してからの経過時間って取得できますか?

139:名無しさん@お腹いっぱい。
12/11/02 13:29:44.63 i5iPBsj/0
直接該当する変数は無いけど
OS起動時からの時間が格納されるA_TickCountや
操作を行っていなかった時間を格納するA_TimeIdle等の
組み込み変数を利用して時間経過を知ることは出来ます。

140:名無しさん@お腹いっぱい。
12/11/02 21:18:29.83 NrZnPsCl0
デュアルモニタかどうかを判断して、そこから処理を分岐したいのですが出来ますでしょうか?

141:名無しさん@お腹いっぱい。
12/11/02 21:37:10.54 lsrd4N8t0
SysGet

142:名無しさん@お腹いっぱい。
12/11/03 03:21:37.30 GoRxSQJ30
Loop
{
  IfWinNotActive,TestWindow
  {
   WinClose,TestWindow
   MsgBox,%A_Index% 回ループしました
   Break
  }
}
Return

windがアクティブじゃなくなったら消すのを書いてみたら
CPU負荷+10% 1秒間 6.5万回ループ って結果にw負荷ぱないw
テスト用にMsgBox書いといて良かった・・・そのままだったら
Sleep 書き忘れてたの気づかなかったなw

143:名無しさん@お腹いっぱい。
12/11/03 04:45:46.22 gBv/+3ni0
そういう用途にはタイマーを使いましょう

144:名無しさん@お腹いっぱい。
12/11/03 11:03:17.71 GoRxSQJ30
>>143
ありがとうございます。
そんなコマンドあったのね、見落としてました。

常態しているScriptに「SetTimer」書いて
指定間隔でサブルーチン実行させられるのか。

Gui,Add,Text,,Test
SetTimer,WindClose,100
Gui,Show,,TestWindow
Return

WindClose:
IfWinNotActive,TestWindow
{
 WinClose,TestWindow
 SetTimer,WindClose,Off
}
Return

145:名無しさん@お腹いっぱい。
12/11/04 13:53:00.37 hj3+5O9I0
Sleepを使った、長い実行時間のホットキーがあるのですが、
実行中に何か(不特定)のキーが押されたら実行を中断させたいです。
簡単に実現する方法はないでしょうか?

146:名無しさん@お腹いっぱい。
12/11/04 14:28:29.64 BCl3mh9U0
>64

147:名無しさん@お腹いっぱい。
12/11/04 19:08:29.88 hj3+5O9I0
>>146
ありがとうございます。
ですが、どのキーを押しても中断するようにしたいのです。

結局、各sleepのあとでA_PriorKeyをチェックすることにしました。

148:名無しさん@お腹いっぱい。
12/11/04 21:35:51.91 95/g4WZV0
Lのインストーラー版のダウンロードサイズとハッシュどなたか貼ってください。

今朝落とした時は2MBのが落ちてきて、
以前落としていたものとハッシュが違い以前のは壊れてるのかと思ってましたが、
今落とすと5MBのものが落ちてきます。
どれが正しいのかわかりませんorz

149:148
12/11/04 21:41:11.92 95/g4WZV0
あ、すいません。
5MBは、2つ落としたファイルを選択したものをプロパティで見たもので、誤りでした。

ハッシュお願いします。m(_ _)m

150:名無しさん@お腹いっぱい。
12/11/05 04:36:45.20 sN74e5Hq0
以下のスクリプトは、フルパス指定したスクリプトを決め打ちで終了出来るのですが
フルパスでないと有効になりません。
これを相対パスで対応出来るようになりますでしょうか?

fullScriptPath = E:\test.ahk ; edit with your full script path

DetectHiddenWindows, On
WinClose, %fullScriptPath% ahk_class AutoHotkey

151:名無しさん@お腹いっぱい。
12/11/05 04:43:34.14 sN74e5Hq0
以下のスクリプトで対応出来ました。スレ汚し申し訳ないです。
DetectHiddenWindows On ; Allows a script's hidden main window to be detected.
SetTitleMatchMode 2 ; Avoids the need to specify the full path of the file below.
WinClose Script's File Name.ahk - AutoHotkey ; Update this to reflect the script's name (case sensitive).

152:名無しさん@お腹いっぱい。
12/11/05 10:40:57.10 YIWyFipC0
>>149
Name             SHA1                           Bytes
-----------------------------------------------------------------------------
AutoHotkey_L_Install.exe 3837a2587a8c875ce553220819382f002c7acdfb 2,617,740
-----------------------------------------------------------------------------
Total 1 Files 2,617,740 Bytes

153:148
12/11/06 10:03:08.02 EVhAGQsX0
>>152
ありがとうございますm(_ _)m

154:名無しさん@お腹いっぱい。
12/11/06 17:29:55.93 T7KwxkzT0
AHK_Lに移行してから /ErrorStdOutオプションでの標準出力が取れなくなっちゃった
仕様変更とか書き方ルールが変わったのかな?

以下↓err.batとsyntaxerr.ahk をAutohotkey.exeのあるフォルダにコピーしてerr.bat実行で
---- syntaxerr.ahk -------------
#ErrorStdOut ; (なくてもいいはずだけど一応)
sand,{Space}
---- syntaxerr.ahk ここまで----
------ err.bat ----
AutoHotkey.exe /ErrorStdOut syntaxerr.ahk |more
pause
------ err.bat ここまで ----


本家最終(1.0.48.05)だと↓みたいなメッセージ出てくるんだけどL版だと何も表示されない
D:\AutoHotkey\bin\syntaxerr.ahk (2) : ==> This line does not contain a recognized action.
Specifically: sand,{Space}

Lは最新(1.1.8.1 A32,U32,U64) と 1.1.00.00 A32(たまたまHDに残ってた)を
XP 32bit / 7 64bit でそれぞれ試してみたけど状況に変化なし

エディタからエラー箇所へのタグジャンプできなくなって捗らないわー
詳細や対処法ご存知の方いたら情報お願いします

155:名無しさん@お腹いっぱい。
12/11/07 02:16:28.90 MGzUTcLn0
Sendでもキーのリマップでも反応しないアプリがあるのですが
物理的にキーを押した状態と同じ動作をさせる事は出来ますか?

156:名無しさん@お腹いっぱい。
12/11/07 11:18:09.47 SCf8twza0
DCALLなどを利用して、Windowsのファイルアクセスシステムコールをコールバックして、指定のアプリケーションのファイルアクセス履歴を取得することなんて可能でしょうか?

157:名無しさん@お腹いっぱい。
12/11/07 13:25:15.25 jN1c/W8Y0
>>155
用意されているキーの送信手法をもっと試す
send
sendiraw
sendivent
sendinput
sendplay

158:名無しさん@お腹いっぱい。
12/11/07 13:26:19.20 jN1c/W8Y0
タイポした。sendiraw→sendraw sendivent→sendevent

159:名無しさん@お腹いっぱい。
12/11/07 18:23:33.60 5qc9rM8j0
AutoHotkey v1.1.09
URLリンク(www.autohotkey.com)

アーカイブ版の方は中身が古いままだな。まぁ、すぐにアップロードされるだろう
インストーラの方はOK

160:名無しさん@お腹いっぱい。
12/11/07 21:06:28.74 yRHwHF3O0
変更点は?

161:名無しさん@お腹いっぱい。
12/11/07 21:20:33.60 Ko2mm9dS0
公式のChangelog見ればええがな

162:名無しさん@お腹いっぱい。
12/11/08 00:37:03.24 rgGBF4JU0
>Removed undocumented AutoIt v2 commands.
これが何なのかわからないなあ

163:名無しさん@お腹いっぱい。
12/11/08 18:59:43.51 b/YWXq430
すみません、初心者で使いこなせずアンインストールしようと思ったのですが
コントロールパネルからアンインストールしようとおもっても
installer.ahkというスクリプトを読み込むだけでアンインストール処理を行ってくれません。
中身も読んでみたのですが、サンプルスクリプトが書いてあるだけで特にそういった処理に使えるものもないようで…
申し訳ありませんが、助けていただければ幸いです。よろしくお願いします。

164:名無しさん@お腹いっぱい。
12/11/08 20:32:14.82 UtVH/cET0
Autohotkey.exeがahkファイルに関連付けされているだけなのでフォルダごと削除しても問題ないかと。
プログラムと機能(Win7)にインストール情報が残っているならCCleanerとか使えば消せる。

165:名無しさん@お腹いっぱい。
12/11/08 21:28:28.75 b/YWXq430
>>164
親切にありがとうございます。
インストーラーからなのでおそらく残るとおもわれるのでCCleanerを使用したいと思います。
本当にありがとう、感謝します。
あと上のレスsage忘れです。ごめんなさい。

166:名無しさん@お腹いっぱい。
12/11/08 22:50:16.62 ImcVfX870
嫌かもしれんが一度インストーラ使ってインスコして、すぐにアンインスコすればいいじゃないかな

167:名無しさん@お腹いっぱい。
12/11/09 15:43:08.73 0mUvxv2e0
同じ種類のウインドウをタイル状に並べるスクリプトを使っているのですが、
タイルが完成したあとアクティブになるウインドウが一番最後(右あるいは下)の
ウインドウになってしまいます。
左上のウインドウ(タイルスクリプトを実行するまえにアクティブだったウインドウ)
を最後にアクティブにするにはどうすればできるでしょうか?
おしえてください。

TileMove()
{
WinGet, activeWindowID, ID, A
WinGetPos, x, y, w, h, ahk_id %activeWindowID%
SysGet, monitorCount, MonitorCount
Loop, %monitorCount%
{
SysGet, m, MonitorWorkArea, %a_index%
if (mLeft <= x && x <= mRight && mTop <= y && y <= mBottom)
{
WinGetClass, activeWindowClass, ahk_id %activeWindowID%
WinGet, id, list, ahk_class %activeWindowClass%
Loop, %id%
{
w := (mRight - mLeft) / 2
h := (id > 2) ? (mBottom - mTop) / 2 : mBottom - mTop
x := (Mod(a_index, 2) == 1) ? mLeft : mLeft + w
y := (a_index <= 2) ? mTop : mTop + h

StringTrimRight, this_id, id%a_index%, 0
WinActivate, ahk_id %this_id%
WinWaitActive, ahk_id %this_id%
WinMove, ahk_id %this_id%,,%x%, %y%, %w%, %h%
}
break

168:名無しさん@お腹いっぱい。
12/11/09 16:07:14.88 rs20Th0j0
最後に(Breakの直前に)
WinActivate, ahk_id %activeWindowID%

169:名無しさん@お腹いっぱい。
12/11/09 16:11:41.46 rs20Th0j0
× 最後に(Breakの直前に)
○ 最後に(Breakの次行に } があると思うのでその次の行に)

170:名無しさん@お腹いっぱい。
12/11/09 18:33:51.96 Z/Aldddw0
一旦全部最小化して
ターゲットのwindow群だけ元に戻して
左右に並べて表示させる方法もあるのでは。

171:名無しさん@お腹いっぱい。
12/11/09 20:46:04.25 0mUvxv2e0
>>169
ありがとうございました。成功しました。
その文字列をもしかして入れるのでは?とおもって一回試してみたのですが
失敗していました。なるほど入れる場所が間違ってたのか。
breakとその文字列の間に } を2個入った形で成功しました。
よかった。

172:名無しさん@お腹いっぱい。
12/11/09 23:28:09.45 QcS3i+Un0
脳波読み取るスクリプトの書き方教えてください

173:名無しさん@お腹いっぱい。
12/11/09 23:57:48.99 FlT/CH2g0
まず脳波読み取るデバイスを用意します

174:名無しさん@お腹いっぱい。
12/11/10 01:01:59.11 62yasgv00
autohotkeyをemacsでdebugしたいのですがどうすればいいのでしょう?
"autohotkey emacs debug"で検索してもそれらしい情報が見つかりませんでした

175:名無しさん@お腹いっぱい。
12/11/10 01:47:13.83 C4KvyvBt0
「emacs DBGp」ならかなりヒットしたけど

176:170
12/11/10 08:07:53.79 rxSHjNny0
MGLのヘルプを作っている者です。
>>167 さんへ
スクリプトを
下のように改変して公表してよろしいでしょうか

WinGet, activeWindowID, ID, A
Send,#m
WinGetClass, activeWindowClass, ahk_id %activeWindowID%
WinGet, id, list, ahk_class %activeWindowClass%
WinRestore,A
Sleep,100
Loop, %id%
{
StringTrimRight, this_id, id%a_index%, 0
WinActivate, ahk_id %this_id%
WinWaitActive, ahk_id %this_id%
}
Run,C:\~\TileVertically.vbs
/*
↓↓↓TileVertically.vbs↓↓↓
Set Win = WScript.CreateObject("Shell.Application")
Win.TileVertically
*/

177:名無しさん@お腹いっぱい。
12/11/10 11:51:38.60 62yasgv00
>>175
ありがとうございます。見てみます。

178:名無しさん@お腹いっぱい。
12/11/10 16:32:29.06 Fr6roE8F0
皆様のお知恵を拝借したいのですがよろしいでしょうか?
一回押し、二回押し、長押しで それぞれ違う挙動を一つのキーにさせたいのですが、
下記の書いてみたスクリプトで一つ問題が解決できなくて困っております。
二度押しする際に一度押しの挙動を飛ばしたいのですが何か良い知恵有りますでしょうか?

キー入力 → 一定時間待機して、待機時間内に再度押せば「二度押し」
それ以外なら「一度押し」か「長押し」の判定にさせればいけそうなのですが。

a::
if (A_PriorHotkey = A_ThisHotkey) and (A_TimeSincePriorHotkey < 400);同HotKey二度押し&400m秒以内なら
{
MsgBox ,2回押し(仮
Return
}
KeyWait,A,t0.3;指定した秒数が経過した場合error「1」、それ以外は「0」
If(errorlevel == 0)
{
MsgBox ,1回押し(仮
Return
}
MsgBox ,長押し(仮
KeyWait,a
Return

179:名無しさん@お腹いっぱい。
12/11/10 16:59:45.66 gAHuX+SL0
IfMsgBox, No,の後に複数行の処理をしたい場合
どの様な記述をすればいいでしょうか?

180:名無しさん@お腹いっぱい。
12/11/10 17:13:35.25 x0GbFo060
LoopとFileMoveで簡易的なファイルの振り分け処理をしたいのですが重複ファイルの扱いで困ってます。
今は一律でファイル名の最後に(0)を付けてるのですが、
どうも中身が同じのが多くなってきたような気がするので…
ahk単体でやるのではなくdiffあたりにファイルを投げた方がいいでしょうか?

181:名無しさん@お腹いっぱい。
12/11/10 17:18:40.24 gAHuX+SL0
179
すみません、自己解決しました。
Gosub,で飛べるんですね。

182:名無しさん@お腹いっぱい。
12/11/10 17:21:24.09 BVo7ZGOI0
>>181
普通にブロックでよくない?
msgbox, 4,, test
ifmsgbox, No
{
msgbox,No
msgbox,No
}
else
{
msgbox,Yes
msgbox,Yes
}
return

183:名無しさん@お腹いっぱい。
12/11/10 17:27:24.79 gAHuX+SL0
>>182
おおこれは!有難うございます。

184:名無しさん@お腹いっぱい。
12/11/10 18:19:28.96 aPyD/jjE0
>>178
うちの環境では使えないキーがあったりしてアレだけど、一応参考までに

;a::
F8:: ;aでは何故か上手くいかなかったのでF8に
Critical
;Input, user, T0.3, a
Input, user, T0.3, {F8}
If (RegExReplace(ErrorLevel, "i)^EndKey:(.+)", "$1") != A_ThisHotkey)
MsgBox, Single
Else
{
KeyWait,% A_ThisHotkey, T0.3
If (ErrorLevel)
MsgBox, Hold
Else
MsgBox, Double
}
Return

185:名無しさん@お腹いっぱい。
12/11/10 19:19:51.75 Fr6roE8F0
>>184
早速返答が! ありがとうございます。
こちらの環境では正常に動きました。
欲を言えば、長押しの挙動がちょっと違うので
これから改善策考えてみます。
悶々としていた部分なので助かりました。

186:名無しさん@お腹いっぱい。
12/11/10 20:08:38.98 aPyD/jjE0
>>180
ハッシュを取得可能なライブラリがあるので使ってみては

[AHK_L] Crypt - ahk cryptography class (Encryption, Hashing)
URLリンク(www.autohotkey.com)

187:名無しさん@お腹いっぱい。
12/11/10 20:43:13.84 Fr6roE8F0
>>184
無事に目的の挙動になりましたのでご報告いたします。
改めてお礼を申し上げます。 ありがとうございました。

a::
Critical
KeyWait,a,t0.3
If(errorlevel)
{
MsgBox, Hold
Return
}
Input, user, T0.3, {a}
If (RegExReplace(ErrorLevel, "i)^EndKey:(.+)", "$1") != A_ThisHotkey)
MsgBox, Single
Else
MsgBox, Double
Return

188:名無しさん@お腹いっぱい。
12/11/10 22:08:45.29 zYtGu6Zp0
>>187
杞憂かもしれないが "Critical" 中にボタンの押し下げ状態にすると、
キーリピート分が大量に溜まってしまうんじゃないか?
"Critical"が解除された時に、それらが雪崩れ込んでくる気がする。

189:名無しさん@お腹いっぱい。
12/11/10 22:22:49.28 x0GbFo060
>>186
こんないいものがあるとは…
ありがとうございました

190:名無しさん@お腹いっぱい。
12/11/10 23:39:43.28 aPyD/jjE0
>>188
指摘ありがとう。推測された通り雪崩れ込んでた。
ということで400msのウェイトを入れて修正してみたけど、用途によっては問題があるかもしれない

>>187
×Critical
○If ((A_PriorHotkey = A_ThisHotkey) and (A_TimeSincePriorHotkey < 400))
  Return
以下略

191:名無しさん@お腹いっぱい。
12/11/14 01:24:17.95 EEeEteHA0
URLリンク(www.autohotkey.com)
このライブラリでSQLiteを使い
c:\TestDB.sqlite3というファイル名で処理内容を保存できると思ったのですがうまくいきません
(URLリンク(www.dbonline.jp)を参考にしました)

SetWorkingDir %A_ScriptDir%
#Include <DBA>

global initialSQL := "SELECT * FROM Test"
global databaseType := "SQLite"
global currentDB := null ; current db connection

connectionStrings := "c:\TestDB.sqlite3"
db := DBA.DataBaseFactory.OpenDataBase("SQLite", connectionString)
db.Query("CREATE TABLE Test (Name, Fname, Phone, Room, PRIMARY KEY(Name ASC, FName ASC));")
;Table Layout: Name, Fname, Phone, Room
record := {}
record.Name := "Hans"
record.Fname := "Meier"
record.Phone := "93737337"
record.Room := "wtf is room!? :D"

db.Insert(record, "Test")
db.Query(".exit")
SQLite_CloseDB(db)
return

もしかしてexeとdllでは処理が違い上のautohotkeyの処理ではデータベース保存不可能、ということなのですか?

192:名無しさん@お腹いっぱい。
12/11/14 14:36:20.15 hPiJbPSa0
エラーの種類が分らないので憶測で

(1)db.Query(".exit") が意味不明
(2)ライブラリは正しい場所に置いているか

(1)を消してダメなら(2)。とりあえず、AHKをインストールしたフォルダに、アーカイブを解凍して出てきたLibフォルダをそのままコピーしてみて

それから一応だけど、SQLite_CloseDB()を直接呼ぶのではなく、db.Close()を呼んだ方がいいよ

193:名無しさん@お腹いっぱい。
12/11/14 21:39:56.74 iXIxzSqD0
Windows7とかだと標準ユーザはCドライブのルート直下にファイル作れないけど
その辺大丈夫?

194:名無しさん@お腹いっぱい。
12/11/14 22:22:38.43 l8KTzvQc0
ふむ。問題なく動くけどな。
.exit は対話コンソールツールの終了コマンドなんでDLL版で使っても意味ないかと(戻り値が0)
SQL発行エラーで何も起きてないっぽいけど

#Include <DBA>
db := DBA.DataBaseFactory.OpenDataBase("SQLite", "hoge.sqlite")
db.Query("CREATE OR REPLACE TABLE hoge (id INTEGER PRIMARY KEY, name TEXT)")
db.Query("DELETE FROM hoge")
Loop, 5
 db.Query("INSERT INTO hoge (name)VALUES('inserted by stmt@" A_Index "')")
 && db.Insert({name: "inserted by API@" A_Index}, "hoge")
For each, row In db.Query("SELECT * FROM hoge").Rows
 str .= row.id A_Tab row.name "`n"
MsgBox, % str


ん~、トランザクションの掛け方とエラーハンドリングがよくわからん

195:名無しさん@お腹いっぱい。
12/11/15 14:53:09.20 79z6C8EZ0
ウインドウタイトルの変更は出来ましたが
ウインドウクラスの変更は出来ますか?

196:名無しさん@お腹いっぱい。
12/11/16 01:28:23.95 HucuW6F40
クラス名なのか振る舞いを含めたクラスなのか、いずれにしても無理だけど

197:名無しさん@お腹いっぱい。
12/11/16 20:55:39.24 Fvy4xWJX0
ControlSendでErrorLevel見ても成功しているのに反応しないから悩んでたら
>>22
に書いてあったahk_parent追加で成功。
AutoHotkeyJpに書いていなかったので時間かかった・・・

198:名無しさん@お腹いっぱい。
12/11/17 16:43:38.98 r0IUfgiy0
難い・・・挫折した。

199:名無しさん@お腹いっぱい。
12/11/17 18:01:47.37 He1G7EHI0
Gui,Add,Edit(テキスト入力欄)で右クリック(ポップアップメニュー)をMenuコマンドで任意に作ったメニュー表示or追加できないでしょうか?
Disabledにすればできるのですが文章を選択常態にしたいので他の解決策がないものかと、無い場合は右クリック以外の方法でやってみます。

Menu,MenuName,Add,コピー,AAA
Gui,Add,Edit,ReadOnly,TEST
Gui,Show
Return

GuiContextMenu:
Menu,MenuName,Show
Return

AAA:
MsgBox,OK
Return

200:名無しさん@お腹いっぱい。
12/11/19 01:39:01.90 lXa7O5950
>>199 こんなんじゃだめ?
#WinActivateForce
Menu,MenuName,Add,コピー,AAA
Gui,Add,Edit,ReadOnly,TEST
Gui,Show
Return

$RButton::
MouseGetPos, , , OutputVarWin, OutputVarControl
WinGetTitle, Title, ahk_id %OutputVarWin%
If (OutputVarControl = "Edit1") && (Title = A_ScriptName)
{
WinActivate, ahk_id %OutputVarWin%
Menu,MenuName,Show
}
Else
Send, {RButton}
Return

AAA:
MsgBox,OK
Return

201:名無しさん@お腹いっぱい。
12/11/19 09:42:48.16 5QI0L26l0
Send,{RButton}
Sleep,500
Send,O

というコードで、Sleep部分を
「コンテキストメニューが出現するまで待つ」という条件に書き換えるコードを教えて下さい。
時間決め打ちだとレスポンスが悪い上に高負荷時に誤動作してしまうことがあります。

なお、挙動が変わってしまうので1行目をAppKeyで代用することはできません。

202:名無しさん@お腹いっぱい。
12/11/19 12:18:37.83 LtgNA1Rv0
アプリによっては動作しない。普通のコンテキストメニュー用

Send, {RButton}
WinWait, ahk_class #32768,, 3

203:名無しさん@お腹いっぱい。
12/11/19 18:59:32.44 v8RY4Jux0
>>200
なるほどーこうすればいけますね。
非常に参考になりましたありがとうございます。

204:名無しさん@お腹いっぱい。
12/11/19 20:40:52.91 biSIg5Ye0
>>202
ありがとうございます。
もし動かなくてもSpyでクラス調べればいけそうですね。

205:名無しさん@お腹いっぱい。
12/11/19 21:23:54.64 /z50lnam0
ストアアプリのIMEを制御したいのですがIME.ahkを使ってもうまく動きません。
IME 開発のガイドラインとチェック リスト (Windows ストア アプリ) (Windows)
URLリンク(msdn.microsoft.com)
これを見るとtsfというものを使っているようなのですが、なんとかできないものでしょうか。

206:名無しさん@お腹いっぱい。
12/11/20 21:47:55.76 i6pcY5mn0
autohotkeyjpにあったIniReadのサンプル何ですが
IniRead, OutputVar, C:\Temp\myfile.ini, section2, key
MsgBox, The value is %OutputVar%.

仮にsection2のキーが1だった場合と、2だった場合で分岐したいのですが
どの様なスクリプトを書けば良いのでしょうか?

207:名無しさん@お腹いっぱい。
12/11/20 22:39:48.19 Va912D/l0
ごく普通にIfで分岐するだけじゃないの?

208:名無しさん@お腹いっぱい。
12/11/20 23:49:03.95 Ncev6A/K0
AutoHotkeyってほんと簡単でいいですね
.bat書くよりこっちの方が分かりやすい

209:名無しさん@お腹いっぱい。
12/11/21 02:49:21.96 ZznyVFkd0
>>207
どんな感じで書けばいいのか教えて頂けませんか?

210:名無しさん@お腹いっぱい。
12/11/21 03:39:58.65 KTAf6xvH0
>>209
基本的なことから分かってないようだから
AutoHotkeyJpのリファレンスの項目全部読んでらっしゃいな
あなたの疑問もばっちり書いてあります。
URLリンク(sites.google.com)

211:名無しさん@お腹いっぱい。
12/11/21 08:24:43.90 /xm36B6T0
テキストエディタでvimのヴィジュアルモードみたいに「解除するまで選択状態」となるようにできませんか?
具体的には、Shiftキーを押すと次にShiftキーを押すまでShiftキーを押しっぱなしにしてる扱いにしたいです

vista 32bit

212:名無しさん@お腹いっぱい。
12/11/21 09:21:09.06 UDlUOiXq0
Shift押し下げ押し上げをトグルキーにすればいいんじゃないの

213:名無しさん@お腹いっぱい。
12/11/21 13:50:37.96 4KsmhzTu0
>>205
IME.ahkはImm32のAPIしか使ってないので TSFだと機能しないです

214:名無しさん@お腹いっぱい。
12/11/21 15:20:43.93 /xm36B6T0
>>212
なるほど
それでいってみます。サンクスです

215:名無しさん@お腹いっぱい。
12/11/21 16:51:07.98 n3ipOOyIT
俺も最初にリファレンス全てを適当に読み流して覚えた。
そうすることで自分がやりたいことに必要な関数やコマンドが
ある程度判るようになってくる。

>>206
if OutputVar = 1
msgbox, %OutputVar%
else if OutputVar = 2
msgbox, %OutputVar%

>>211
$shift::
if !shifttoggle {
keywait, shift, L
send, {shift down}
} else {
keywait, shift, L
send, {shift up}
}
shifttoggle := !shifttoggle
return

216:名無しさん@お腹いっぱい。
12/11/21 17:59:20.30 rRf0qB5OP
SMPlayerという動画プレイヤーソフトの動画表示ウインドウ内でクリックしたかどうかを
識別して、#IfWinActiveで条件分岐したいのですが、うまくいきません。

プレイヤーの外枠にカーソルを合わせて情報所得を試みると、正常に取れました。
しかし、中央の動画が表示されている部分だと取得できなくなります。

この動画プレーヤは、Qtというプラットフォーム共通化ソフトでコンパイルしているらしく、
動画内だと、ahk_classも、ControlGetPosも、ウインドウタイトルも全く抜き取ることが出来ません。

Qt
URLリンク(qt.digia.com)

動画表示ウインドウ内のクリック時にSMPlayerかどうかを識別するには、
どのような方法が考えられるでしょうか。

217:名無しさん@お腹いっぱい。
12/11/21 19:24:11.33 c/Qr6/NT0
前スレの>>127に出てたv2のWinGet/Set周りが仕様変更が分かったので投下

v1の書き方
WinGet, OutputVar, List, ahk_class Hoge

v2の書き方
OutputVar := WinGetList("ahk_class Hoge")

みたいな感じでWinGet/Setのサブコマンドが廃止されてそれぞれ別の関数になった

ちなみにOutputVarはObjectなので
for key, value in OutputVar {}
でループ回せる

218:名無しさん@お腹いっぱい。
12/11/21 19:26:49.26 veHMdPg70
>>216
ClassNNで分岐すりゃいいんでないの

#If SMPlayerActive() && MovieWindowClicked()
LButton::MsgBox Clicked!
#If
SMPlayerActive() {
Return WinActive("ahk_exe smplayer.exe")
}
MovieWindowClicked() {
MouseGetPos,,,, ctrl
;ソフトウェアのバージョンや環境によって QWidget(数字←ここ) が変わるかも
Return (RegExMatch(ctrl, "i)QWidget(9|10)") || RegExMatch(ctrl, "i)MPlayer - The Movie Player\d?"))
}

非アクティブからアクティブに切り替えるときのクリックには対応させてないので、あしからず

219:名無しさん@お腹いっぱい。
12/11/21 19:52:59.81 rRf0qB5OP
>>218
バッチリ動きました!ありがとうございます。
再生が終了して暗転してる状態でも、きちんと識別できました。

個人的な問題は、メインで使ってるスクリプトがAHK初代なので、
常用スクリプトに統合できず・・・新版AHK_Lに移行する決心が付きました。

220:名無しさん@お腹いっぱい。
12/11/21 22:53:46.28 /fouNWHI0
>>217
横レスだが助かる情報だ

221:206
12/11/21 23:10:22.27 ZznyVFkd0
皆さん有難うございます。
特に>>215さん、バッチリ動作しました。
本当に有難う、感謝しています。

222:名無しさん@お腹いっぱい。
12/11/22 23:38:44.45 njqydt+V0
>>213
そうなのですかわかりました

223:名無しさん@お腹いっぱい。
12/11/23 01:11:20.36 jZODSSYO0
ブラウザでウェブページを見ているとき、
フォーカスがあるリンクのurlを取得することはできますか?
autohotkeyでページそのものを取得することは分かるのですが
現在見ているページの特定箇所のリンクの抽出が分からないです
firefoxを使っていますがinternet explorerでもかまいません

224:名無しさん@お腹いっぱい。
12/11/23 10:57:37.66 e4IGcrws0
ToolTipのフォントの大きさを変えられないでしょうか?

225:名無しさん@お腹いっぱい。
12/11/23 12:29:14.14 9oAyNOmGi
>>224
AutoHotkey スレッド part13

URLリンク(mimizun.com)

226:名無しさん@お腹いっぱい。
12/11/23 13:31:19.80 eX6dmNCB0
誤って作成したスクリプトを消してしまい困っています。
ahk2exeでコンパイルされたスクリプトを抽出する事
若しくは起動中のスクリプトを抽出出来ますか?

227:名無しさん@お腹いっぱい。
12/11/23 13:43:02.93 gsdcOrt7P
>>226
exe2ahkってツールで取り出せるけど、
コンパイル時に暗号化してたら駄目だったと思う。

仮にこれで取り出せたとしても、ソース内のコメントが全部消えてる。

俺も昔同じミスをしてしまって泣いた。
対策として、起動時にスクリプト自身を自動でコピーする関数を冒頭に入れるクセをつけた。
履歴も取れるようにして、何度か助かった。

228:名無しさん@お腹いっぱい。
12/11/23 14:35:03.14 eX6dmNCB0
>>227
貴重な情報有難うございます。
早速チャレンジしてみます!

229:名無しさん@お腹いっぱい。
12/11/23 16:39:35.85 9nuaioY40
>>223
Fxならアドオンでどうにでも出来るでしょ

230:名無しさん@お腹いっぱい。
12/11/24 18:52:18.62 rXAo47m+0
salt - Standard Autohotkey Library Transfer - Google Project Hosting
URLリンク(code.google.com)
これは何?

231:名無しさん@お腹いっぱい。
12/11/24 19:59:15.80 F3VoATSk0
見たところ2年以上放置状態みたいだね

232:191
12/11/24 20:08:19.46 Dw4eM04X0
返信が遅れてすみません。皆さんありがとうございます。
>>193 Windows8です。Cドライブ以外のルートではないところにファイルを作ろうとしています。
具体的には>>191を展開したDBAExampleOOP.ahkがあるフォルダ内に
>>191のahkファイルを作っていました

>>194 それを実行したらこうエラーが出ました。
A non-object value was improperly invoked.
Specifically: 0
どうもこれはFor each,...の箇所のエラーのようです(MsgBoxをその前後に置くことで確認しました)
それと気づいたのですが、>>194を実行する度hoge.ahk.logが一行ずつ追記されていくのですが
hoge.sqliteはファイルサイズ0のままです。
逆に、DBAExampleOOP.ahkを実行してconnectボタンを押すと/Test/TestDB.sqliteが正しく作られていました

233:名無しさん@お腹いっぱい。
12/11/25 02:02:30.72 y6mFATtO0
あ、CREATE文こけてるのか。 CREATE OR REPLACE TABLE じゃなく CREATE TABLE なら通るかと。

234:名無しさん@お腹いっぱい。
12/11/25 10:54:26.26 EGkyS6++0
>>233
なるほど確かにそこでひっかかっていました!
どうもありがとうございました。

235:名無しさん@お腹いっぱい。
12/11/25 22:58:31.21 cFTU4TYY0
お尋ねします。
テキスト内の指定した文字列を削除って出来ますか?

236:名無しさん@お腹いっぱい。
12/11/25 23:33:40.64 b/zpkvOu0
出来ます

237:名無しさん@お腹いっぱい。
12/11/25 23:38:50.02 cFTU4TYY0
自己解決しましたどうも

238:名無しさん@お腹いっぱい。
12/11/26 15:12:09.27 hba7EFjV0
聞きたいんですけど、ALT+TABでタスク切り替えした時に
起動中の指定したアプリのアイコンとアプリ名を表示させない事は出来ますかね?

239:名無しさん@お腹いっぱい。
12/11/26 16:47:09.14 hba7EFjV0
WinSet, ExStyle, 0x00000080, ahk_class hoge
これで出来たみたい

240:名無しさん@お腹いっぱい。
12/11/27 20:58:37.21 q++3ycrV0
PCゲームをプレイしていると、ひらがながONになるようなキーを押していないのに
勝手にIMEがONになってしまい、それでキーを押したときの入力不可のエラー音がうっとしいです。

AutohotkeyでIMEを常にオフにすること、あるいは監視してすぐにオフにするようなことできませんか?

PCゲームとは、SteamのTF2とかL4Dです。win7でAtok使ってます。教えてください。

241:名無しさん@お腹いっぱい。
12/11/27 22:21:44.39 e3UTlhPA0
ime.ahkを使って100ms毎にloopを使って監視をする
こんなもんでどうだろう?

242:名無しさん@お腹いっぱい。
12/11/27 22:23:16.58 m0WJWtsW0
質問するときは最低限敬語ぐらい使ったらどうなんだろうと思ったり・・・。

243:名無しさん@お腹いっぱい。
12/11/27 22:31:44.74 0Irg8li20
丁寧語使ってるだけまだマシ

244:名無しさん@お腹いっぱい。
12/11/27 22:32:19.32 0Irg8li20
丁寧語は敬語の一種だった、失礼

245:名無しさん@お腹いっぱい。
12/11/27 22:36:23.39 fFId9oSn0
>>242
え?
一体どのレスが気になったんだか分からない
どんだけお上品な育ちなの

246:名無しさん@お腹いっぱい。
12/11/27 22:46:01.39 wmAXoye+0
何も感じないってのもどうかと思うが、目くじら立てるほどのことでもないな。

247:名無しさん@お腹いっぱい。
12/11/27 22:50:58.43 m0WJWtsW0
そうなんだよね、ちょっと濁して言って見たらこんなに反応するなんて・・・荒れちゃってごめんなさい。

248:名無しさん@お腹いっぱい。
12/11/27 23:13:29.21 bLzJBz+30
感じが悪いレスだと無視&淘汰されてちょうどよい感じになってるのが当スレ

249:名無しさん@お腹いっぱい。
12/11/27 23:16:47.03 fFId9oSn0
みんな丁寧語で質問してるしきちんと回答も付いてる超優良スレだろ
つまり>>242を華麗にスルーすれば良かったってことか、正直すまんかったな

250:名無しさん@お腹いっぱい。
12/11/27 23:20:31.97 m0WJWtsW0
>>248
了解

251:名無しさん@お腹いっぱい。
12/11/27 23:27:20.57 0Irg8li20
確かにここは俺の巡回スレの中でもラム酒スレの次に穏やかな良スレ

252:名無しさん@お腹いっぱい。
12/11/27 23:35:08.13 ef0W8O4v0
敬語であろうがなかろうがクレクレや努力の匂いのしない教えて君はぶっ叩くがね
それはそうと敬語使ってない質問ってどれ? まじでわからん

253:名無しさん@お腹いっぱい。
12/11/28 05:41:54.38 IzSTTbOH0
途中まで頑張りましたがここがわかりません っていう調べた努力が認められると、
丁寧にサポート&添削、あるいは完璧に動作するスクリプトを提示してくれる。
動いたって報告があがり、添削してあげる側も気持ちがよい。

しかし、途中まで頑張った素振りをして、これ以上詳しく調べるのが面倒だから
俺の代わりに埋めてね ってオーラが少しでも出ると無視される。

両者は本当に微妙な差なのだが、なんだかんだでバレる。

一見おとなしいが、雑に乗ると簡単に振り落とされる、乗馬のようなスレ。

254:名無しさん@お腹いっぱい。
12/11/28 10:05:50.31 iNPLQKUO0
あるプロセスのメモリをアドレス指定して監視させ、値が変わったらキーボードで文字入力するスクリプトを組みたいのですが、、、
途中まで頑張ったのですがわからなくなってしまいました・・・
13歳JCです…。熱でてるけど、がんばってます・・・だれか優しく教えてしてください・・

255:名無しさん@お腹いっぱい。
12/11/28 11:04:06.37 cVyoMyha0
とりあえずソースup

256:名無しさん@お腹いっぱい。
12/11/28 12:24:36.66 Uyrp9I320
服を脱ぎます

257:名無しさん@お腹いっぱい。
12/11/28 19:31:55.79 QHbDJAQV0
そしてネギを咥えます。

258:名無しさん@お腹いっぱい。
12/11/28 20:50:08.67 MUHhhJET0
13歳JCで「プロセスのメモリをアドレス指定して監視させ、値が変わったらキーボードで文字入力するスクリプト」
とか言っちゃうような並はずれた興味関心の持ち主なら、こんなところでそんな気弱な質問をするはずがないです

259:名無しさん@お腹いっぱい。
12/11/28 23:44:34.28 loT17b830
>>240
>>241さんので出来ました Google IMEいけたけど、atokはどうだろ

SetTimer, disable_ime, 100 ; 100msec毎に繰り返し
return

#include c:\IME.ahk ; 089.zipより
disable_ime:
currentIMEStat := IME_Get()
ifWinActive, (制御したいアプリ) {
if (currentIMEStat = 1) {
IME_SET(0)
}
}
return
F12::
ExitApp

260:名無しさん@お腹いっぱい。
12/11/29 00:27:46.89 lmpPXJEC0
>>259
こうかくとシンプルになるよ
if (IME_Get()= 1) {

261:名無しさん@お腹いっぱい。
12/11/29 09:24:26.98 24IbdzZz0
IME.ahk x64 対応版
URLリンク(www6.atwiki.jp)

TSF問題は解決してません

262:名無しさん@お腹いっぱい。
12/11/29 17:35:11.22 LwkqFJVo0
つまずいたので質問させてください
VMWare上でAndroidとWindowsの環境を導入してテストしています
AHKには対象classへkeysendやマウスの操作を送ることができるそうなので
テストを自動化しようと思ったのですが、
ホスト側からVMWare上で動いているマシンに送れませんでした。
classはVMのwindowに送ったのですが、対象classが違うのか、
もしくは単純にこういったソフトからはキー操作やマウス操作を受け付けないのでしょうか?

263:名無しさん@お腹いっぱい。
12/11/29 18:33:49.91 /54ke3Q60
>>260 ありがと。あとで使おうと思って、処理がすんだら戻してたんだ。

SetTimer, disable_ime, 100
return

#include c:\IME.ahk
disable_ime:
ifWinActive, 制御したいアプリ
{
if (IME_Get() ) {
IME_SET(0)
}
}
return

264:名無しさん@お腹いっぱい。
12/11/29 20:00:49.22 /54ke3Q60
>>262 VMWareがアクティブでフォーカスが当たってる条件でも良いなら、sendやclickでキーやクリックは送れる。でもそれだとUWSCで十分だな・・
操作をどうやって送ろうとしてる?

VMWareがアクティブじゃない時に操作を送りたいならControlSendがいけそうだとおもったけど、ダメだった。
TrayTip,,
ifWinNotExist, ahk_class VMPlayerFrame
return
ControlSend, MKSEmbedded1, test, ahk_class VMPlayerFrame ; エラーにならないけど動かず
if (ErrorLevel) {
TrayTip,, fail: %ErrorLevel%
} else {
TrayTip,, ControlSend: おk
}
return
あと、VMWareがアクティブの時にホスト側で押されたホットキーの検出は出来なかった。

265:名無しさん@お腹いっぱい。
12/11/29 23:26:30.47 LwkqFJVo0
>>264
ウィンドにフォーカスがあってアクティブなら確かにそのまま送れるんですけどね…

テストしてるときにパラメータとかをホスト側でメモしたり管理したりすることが必要なので、
できればノンアクティブ状態でやろうと思ってました。
複数の窓を開いて作業をすることも多いもので…
私も以前ControlSendで試してみたのですが、同じようなコードでした
やはりだめなのでしょうか…

266:名無しさん@お腹いっぱい。
12/11/30 00:32:06.73 n3V6HQZX0
>>265 うーん、斜め上すぎるけどVMWareのAndroidにIP割り当ててVNC Server 立ち上げておいて
制御用PC(VMWareのホストOSじゃなくてもいい) のVNC ViewerのウィンドウをAHKで制御するというのはどうだろ・・ネットワーク繋げないなら意味ないけど・・
(参考)
URLリンク(www.youtube.com)

 Android(VNC Server) -- (VMWare仮想net) -- ホストOS -- (IP) -- 制御用PC(VNC Viewer複数 <-- AHK)

一応、ultra vncだとControlSendは受け付けてくれた
F2::
sendtest2vnc()
return
sendtest2vnc() {
TrayTip,,
ifWinNotExist, ahk_class VNCMDI_Window
return
ControlSendRaw, VNCviewer, test, ahk_class VNCMDI_Window
if (ErrorLevel) {
TrayTip,, fail: %ErrorLevel%
} else {
TrayTip,, ControlSend: おk
}
return
}

# 自分の環境の場合、ゲストもXPだからゲストでAHK立ち上げておいて、ホストからAHKでTCPで制御できるから楽なんだけど・・
# Androidのsynergyという手もあるか

267:名無しさん@お腹いっぱい。
12/11/30 00:33:07.45 n3V6HQZX0
貼り間違え・・× ControlSendRaw ○ ControlSend

268:名無しさん@お腹いっぱい。
12/12/01 16:28:04.58 Z9OEPpN70
>自動置換型の場合、終了文字は置換後のテキストが入力されたあとに入力される。(Enterキー以外)

って解説サイトにあったんだけど、Enterも入力されるみたいなんだ俺だけ?
Oオプションで無効化できるけど(AutoHotkey v1.1.09 Win7、Vista)

269:名無しさん@お腹いっぱい。
12/12/01 16:50:43.40 Z9OEPpN70
ごめん重ねてもう1つ

::sage::さげ
::hage::はげ

こうホットストリングが設定したとして、
メモ帳とかにhogesageって打ちこんでもhogeさげってなってくれない
エンターとか半角スペースとかの終了文字を押してからならちゃんど動作する

①hogesage → hogesage
②hoge sage → hoge さげ

こうなる
#Hotstringでの全体指定はしてません
IMEが日本語入力になっている時は問題なし
IMEがOff、または英語入力になっている時だけこうなる

①になるようにしたいんだけど解決方法知ってる方いませんか

270:名無しさん@お腹いっぱい。
12/12/01 17:26:49.09 bBgiZGCl0
>>266
やはりVNCなどを使う手になりますか…
実はすでに何種類かVNCServer系のアプリで試してみたのですが、
まずServerを確立することができず、別のアプリ(Remote Web Desktopやらandroidscreencast)
を試してみたのですが、うまくいかず…
ここまでくるとこのスレに適さずAndroidスレにて相談ということになりそうですね…
ですがVNCでコントロールができる事がわかっただけでもよかったです、ありがとうございます

271:名無しさん@お腹いっぱい。
12/12/01 18:39:58.67 jdwJbiMr0
>>269
:*:sage::さげ
でだめ?

helpのHotstrings and Auto-replaceに書いてた。
Unless the asterisk option is in effect, you must type an ending character after a hotstring's abbreviation to trigger it.

272:名無しさん@お腹いっぱい。
12/12/01 18:45:21.84 jdwJbiMr0
>>271 まちがい * (asterisk): An ending character (e.g. space, period, or enter) is not required to trigger the hotstring. For example: って書いてた

273:名無しさん@お腹いっぱい。
12/12/02 00:39:51.96 UvTpoJDV0
>>271
*だとだめだったけど?で行けた!ありがとう!
?は単語の途中であっても発動する、ってオプションらしい
hogesageがhoge+sageじゃなくて"hogesage"っていう一単語として認識されてたのかな?
たぶん英語環境だとI am catみたいに半角スペースが入るのがデフォだからかな

あとよく考えたら>>269でIMEが日本語の時に問題ないのって
変換確定でエンター押してたからだとよな・・・

274:名無しさん@お腹いっぱい。
12/12/02 07:06:45.89 FaNwn2zp0
ホットストリングの件

マニュアル熟読すれば設定と挙動の違いは書いてあるよ

275:名無しさん@お腹いっぱい。
12/12/06 01:21:54.81 u4QwuOFw0
流行らせるページの使用例のとこ見て#l::send,{right}ってしたら連打したときにログオフされてしまいます
SetKeyDelayっていうのを利用すればいいんでしょうか?

276:名無しさん@お腹いっぱい。
12/12/06 01:27:38.40 u4QwuOFw0
あ、AHK_L Unicode x86使ってます
Vista 32bitです

277:名無しさん@お腹いっぱい。
12/12/06 18:36:18.15 btTFsgdy0
使われていないツールチップの番号を取得する事は可能でしょうか?

278:名無しさん@お腹いっぱい。
12/12/06 19:24:32.28 t7vEfWmb0
これはもう開発終了や閉鎖をしてしまった?
公式に繋がらないんだけど、AutoHotkey_Lをダウンロードできる所は他にないかな?

279:名無しさん@お腹いっぱい。
12/12/06 19:33:14.11 yJYmL7gO0
URLリンク(download.cnet.com)

280:名無しさん@お腹いっぱい。
12/12/06 22:13:52.95 UwBXT0mT0
>>278
URLリンク(l.autohotkey.net)

281:名無しさん@お腹いっぱい。
12/12/06 23:28:10.49 t7vEfWmb0
>>279-280
ありがとう、今試したら公式直ってた。一時的だったみたいね。

282:名無しさん@お腹いっぱい。
12/12/07 07:49:54.18 A4sdo2Hr0
ControlSend,,{Right},無題 - メモ帳 ahk_class Notepad
ControlSend,,{Rigth},ahk_class WindowsForms10.Window.8.app.0.378734a

上はうまく行って下はうまく行かない理由は何が考えられますか?
下はTypictという.NETアプリなんですが…

283:名無しさん@お腹いっぱい。
12/12/07 08:52:45.21 F5Rm6Xzq0
送り先のControlを省略してるから
・ClassNN調べて指定で試してみる
・ダメならControlGetでHwnd取得して ControlSend,,{Rigth},ahk_id %ControlHwnd%

284:名無しさん@お腹いっぱい。
12/12/07 22:39:10.96 GXTNVcK80
質問です
・無変換キーとwでoになる
 vk1Dsc07B & w::Send,{o}
・ctrl押してからの無変換とwで^oにしたい
 ctrl & vk1Dsc07B & q::Send,{^o}
だと思ったように動かない員ですけどどうしたらいいいでしょうか

285:名無しさん@お腹いっぱい。
12/12/07 22:43:46.66 R4RXrBln0
{}要らないんじゃないかなーと思った。夏

286:名無しさん@お腹いっぱい。
12/12/07 22:49:29.46 rdwDMcg70
vk1Dsc07B & q::
  if GetKeyState("Ctrl", "P")
    Send, ^o
  return

Ctrlが押されているかで分岐すればいい。

287:名無しさん@お腹いっぱい。
12/12/08 01:07:30.72 MYHmYPvz0
ありがとうございます。if文はこう使うのですね

vk1Dsc07B & q::
if GetKeyState("Ctrl")
Send, ^o
else Send, o
return

こんな感じで左手だけで操作できるようになれました。

288:名無しさん@お腹いっぱい。
12/12/10 20:12:15.31 HtyKyE5p0
vimみたいに↓キーとかPgDnキーとかの前に42とか打つと42回それぞれを繰り返してくれるように出来ませんか?

289:名無しさん@お腹いっぱい。
12/12/10 20:21:17.56 M1uj4cRV0
モードありなら、数字じゃなくなるまでキーを受け取って
それを数に変換して最後のキーを繰り返す
しか思いつかなかった
モードなしだと使いづらそう

290:名無しさん@お腹いっぱい。
12/12/10 23:38:53.16 HtyKyE5p0
モードってKeyMapで設定していくんですかね
その方向で頑張ってみます

291:名無しさん@お腹いっぱい。
12/12/11 20:33:32.07 Bx7Eu8DN0
ブラウザで特定のサイトでだけ中クリックの挙動を変えたいんです

urlフォーカス→ コピー → クリップボード部分一致をかける 

でできると思うんですけど、
中クリックだけにそのまま本来の機能をしてほしいページで
いちいちこの挙動(フォーカス)をされたらたまらないので
単純なものをつなぎ合わせた連続作業でなく
直接的にURLを検出する方法ってないですか?

292:名無しさん@お腹いっぱい。
12/12/11 20:47:05.38 s+Ak3LxE0
ブラウザのウインドウタイトルじゃダメなの?

293:名無しさん@お腹いっぱい。
12/12/11 20:51:29.09 Bx7Eu8DN0
はい URLのほうが確実なんです

294:名無しさん@お腹いっぱい。
12/12/11 20:53:50.17 jdSRvNB70
ブラウザ名も書いてないし、ウインドウタイトルで駄目な理由も不明瞭。

295:名無しさん@お腹いっぱい。
12/12/11 20:58:59.23 Bx7Eu8DN0
火狐です

例えば なんらかの2chのページのみで機能を変えるのに

AutoHotkey スレッド part15 だったらこのスレでしか効かないような気がするので

296:名無しさん@お腹いっぱい。
12/12/12 12:18:26.96 GPZ0NQwU0
>>295
ウインドウタイトルを正規表現でマッチさせるとか?
FirefoxでURL取得する方法があれば俺も知りたい。

297:名無しさん@お腹いっぱい。
12/12/12 16:39:52.49 EAQHbR/O0
URLを取得するのはAHK単独ならショートカットキー使って
クリップボードに入れるしかないよ

前面にあるウィンドウを出している実行ファイルの
パスを取得することってどうすれば可能だろう?

298:名無しさん@お腹いっぱい。
12/12/12 16:45:28.60 ihA2uz9I0
>>295
customize_titlebar_v2 :: Add-ons for Firefox
URLリンク(addons.mozilla.org)
タイトルバーにURLを表示させるアドオンを入れれば取得出来たよ。
ただ、カスタム書式でURLのみの表示にするためには、オプションから選べる{currentURL}ではなく、{currentUrl}と入力しなければならない。

299:名無しさん@お腹いっぱい。
12/12/12 17:04:55.85 6EoMmPbV0
タイトルにURL追加するアドオン作ればいいんじゃないかなとか思ってたらすでにあったのかw

>>297
WinGet, Path, ProcessPath, A
MsgBox, %Path%
こういうこと?

300:名無しさん@お腹いっぱい。
12/12/12 19:00:31.75 EAQHbR/O0
>>299
おお、まさにこれだ
AutoHotkeyJpにはProcessPathがなかったから気づけなかった
ありがとう

301:名無しさん@お腹いっぱい。
12/12/12 19:34:27.35 KEFRobzt0
>>289さん
!g::KeyMap:=!KeyMap
とモードを設定したんですがそこからが分かりません
↓まで考えたのですが、MatchListの文字の前に入力される数字をInputDigitとして拾い数字に変換するにはどうすればいいのでしょう?
三行目にTrimedDigitを数に変換しInputDigitに格納するコマンドを入れればいいのでは、と思っているのですが……

Input, InputChar, M, {Esc}, {down},{up},{left},{right},{PgDn},{PgUp}
StringTrimRight, TrimedDigit, InputChar, 1

 if ErrorLevel = Match
  {
   if InputChar = {down}
   send,{down %InputDigit%}
  else
   if InputChar = {up}

     ~~~

  }
return

302:名無しさん@お腹いっぱい。
12/12/12 21:58:29.65 w6r33sFq0
Input, InputChar, I, {Esc}{Down}{Up}{Left}{Right}{PgDn}{PgUp}
Endkey := RegExReplace(ErrorLevel, "EndKey:")
RegExMatch(InputChar, "^(\d+)", Count)

If (EndKey != "Esc")
  Send, {Blind}{%EndKey% %Count1%}

vim知らないから、なんか見当違いの答え書いてるかも…

303:名無しさん@お腹いっぱい。
12/12/12 23:21:29.35 KEFRobzt0
>>302
!g::のホットキーラベルにしたら!g42{down}で42回↓キーを繰り返してくれました!ありがとうございますm(_ _)m
ほんとは!g入れなくてもいいと完璧なんですが……

今思いきってサクラエディタとIEをvim風にしてます
とりあえずノーマル・挿入・ビジュアルモードはだいたい出来てますがノーマルモードの時に!g無用の42{down}等が出来るよう頑張ります!

304:名無しさん@お腹いっぱい。
12/12/13 00:08:09.32 Mt0P6aX60
もっと思い切って素VimとFirefox Vimperatorを使ってみてはいかが

305:名無しさん@お腹いっぱい。
12/12/13 00:12:07.87 ykI3cZjV0
!g::KeyMap := !KeyMap

#If (KeyMap)
1::
2::
3::
4::
5::
6::
7::
8::
9::
KeyMap := !KeyMap ; 一時的にオフにする

Input, InputChar, I, {Esc}{Down}{Up}{Left}{Right}{PgDn}{PgUp}
Endkey := RegExReplace(ErrorLevel, "EndKey:")
RegExMatch(InputChar, "^(\d{0,2})", Count)
Count = %A_ThisHotKey%%Count1%

If (EndKey != "Escape")
  Send, {Blind}{%EndKey% %Count%}

KeyMap := !KeyMap ; オンに戻す
Return

一応モード切替で動くようになったけど、色々問題がある気がが

306:名無しさん@お腹いっぱい。
12/12/13 01:13:28.01 xbsYtvdG0
>>304
それもそうですね。本家vimのバインドも思ってたほど難しくないみたいですし
と言うかそれが最適解?

Vimperatorっていうのも検討してみます
でもFirefoxってうちだと重くって……2,3Verくらい前は結構軽かったのに……

>>305
ありがとうございます、参考になります

307:名無しさん@お腹いっぱい。
12/12/13 02:47:09.74 k0fYsriE0
>>305
これはわかりやすくてシンプルだね

308:291
12/12/13 17:19:09.70 OSm7M/AY0
すみません 冗談のようですがこのタイミングでアク禁くらいました
回答してくださった >>292 >>294 >>296-298 さんありがとうございます
とりあえず教わった方法でやってみたいと思います

309:名無しさん@お腹いっぱい。
12/12/15 13:51:27.31 IrhOIhr10
マウスの戻るボタンおしっぱなしで前のタブへ戻ったり進むボタン押しっぱなしで次のタブに移りたいと思っています
でもマウス拡張ボタンの描き方が調べてもわかりません。ダレか教えてくれませんでしょうか

310:名無しさん@お腹いっぱい。
12/12/15 14:02:16.45 4i9aK6iS0
何のソフトのタブなのかなど情報がまったくないのにどうしろと


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch