AutoHotkey スレッド part15

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
■配布元
http://www.autohotkey.com/
本家Autohotkeyは事実上開発停止で、派生のAutoHotkey_L(AHKL)が主流。
新規利用者には日本語の扱いで不具合の無いAHKLのユニコード版の利用を推奨。

■前スレ
AutoHotkey スレッド part14
http://anago.2ch.net/test/read.cgi/software/1333372506/

■日本語解説等
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/
簡易スクリプト掲示板 ※31日で削除されます。
http://www.autohotkey.net/paste/

■派生版
IronAhk (.NET製、クロスプラットフォーム)
http://www.ironahk.net/
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.net/~tinku99/ahkdll/

■ 関連スレ
AutoIt
http://pc12.2ch.net/test/read.cgi/software/1277173327/

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

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

オリジナルのAHKとの変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
 →http://www.autohotkey.net/~Lexikos/AutoHotkey_L/docs/
 →http://sites.google.com/site/autohotkeyjp/reference/AutoHotkey_L/index

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

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

2chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。
3名無しさん@お腹いっぱい。:2012/10/09(火) 07:35:03.68 ID:0UFoq/QY0
■過去スレ
@http://pc7.2ch.net/test/read.cgi/software/1098531338/ Attp://pc7.2ch.net/test/read.cgi/software/1129836713/
Bttp://pc11.2ch.net/test/read.cgi/software/1157043396/ Cttp://pc11.2ch.net/test/read.cgi/software/1184556627/
Dttp://pc11.2ch.net/test/read.cgi/software/1201502896/ Ettp://pc11.2ch.net/test/read.cgi/software/1219130051/
Fttp://pc12.2ch.net/test/read.cgi/software/1230694774/ Gttp://pc12.2ch.net/test/read.cgi/software/1243005818/
Http://pc12.2ch.net/test/read.cgi/software/1253888736/ Ittp://pc12.2ch.net/test/read.cgi/software/1265518996/
Jttp://hibari.2ch.net/test/read.cgi/software/1280482227/ Kttp://hibari.2ch.net/test/read.cgi/software/1296446228/
Lttp://anago.2ch.net/test/read.cgi/software/1317156599/ Mhttp://anago.2ch.net/test/read.cgi/software/1333372506/

以下FAQ等

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

Q2:初めて使うけどどれを使えばいいの?
A2:AHKLのユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
  64ビットOSでAHKL32ビット版の使用は制約が多いので、64ビット版を強く推奨。
4名無しさん@お腹いっぱい。:2012/10/09(火) 07:35:39.89 ID:0UFoq/QY0
■ リマップ・ホットキー割り当て

Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
  OS側がキーUp/Down情報が正しく返してこないのでAHKのみで対処は無理です。
  レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
 
 例) ChangeKeyを使って[ひらがな]を[F13]にする
  AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
   F12::F13
  Changekeyを起動する。( ttp://www.forest.impress.co.jp/lib/sys/hardcust/keyboard/changekey.html )
  「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
  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名無しさん@お腹いっぱい。:2012/10/09(火) 07:36:19.53 ID: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名無しさん@お腹いっぱい。:2012/10/09(火) 07:36:50.82 ID: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:http://www6.atwiki.jp/eamat/pub/MyScript/ の「IME.ahk」を使いましょう。
7名無しさん@お腹いっぱい。:2012/10/09(火) 07:37:51.65 ID: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:公式( ttp://www.autohotkey.com/download/ )から SmartGUI Creator をDLして使うと楽。

Q4:AHKってマルチスレッドじゃないの?
  タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
 MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
  > 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
  > → 実行中、 …:割り込み終了待ち
  > 元スレッド   →→→→→→……………………………………→→→→
  >                  ★割込                ↑再開
  > 割り込みスレ          →→→→…………→→→→→→END
  >                        ◆割込 ↑再開
  > 更に割り込み                →→→END
 ※ AutoHotkey_H(AutoHotkey.dll)を利用すると真のマルチスレッドが利用可。
8名無しさん@お腹いっぱい。:2012/10/09(火) 07:38:27.86 ID: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名無しさん@お腹いっぱい。:2012/10/09(火) 08:49:50.91 ID:ZlmuQvaC0
新スレ立て乙
10名無しさん@お腹いっぱい。:2012/10/09(火) 09:03:26.49 ID: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名無しさん@お腹いっぱい。:2012/10/09(火) 09:04:02.80 ID:tLc3kbJg0
12 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2012/04/03(火) 00:33:30.20 ID:0gt728Ga0
★教えて君五大要素★

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



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


12名無しさん@お腹いっぱい。:2012/10/10(水) 06:27:27.47 ID:YoZO/elBP
13名無しさん@お腹いっぱい。:2012/10/11(木) 17:43:15.43 ID:1yvIUZ460
WindowsXPで、アプリを最大化した時に少しでも広く画面を使いたいので
タスクバーの最前面化の有効・無効を任意に設定したキーで切り替えたいんだけど
何かいい方法ありませんかね?
14名無しさん@お腹いっぱい。:2012/10/11(木) 19:20:49.87 ID:NRu/DcCR0
>>13
自分でやってみて理想通りに動作しなかったスクリプトを晒せば
誰かが修正に応じてくれるよ
15名無しさん@お腹いっぱい。:2012/10/11(木) 21:57:18.89 ID:97wkXmHq0
もうこっち使えばいいんかね?
新スレ立った状態のときって一般的にどっちを使えばいいのか分からん
16名無しさん@お腹いっぱい。:2012/10/11(木) 22:15:02.73 ID:NRu/DcCR0
980超えたら24時間書き込みなしでdat落ちする。
それを考慮し、心配なら新スレの方でいいんじゃない?
17名無しさん@お腹いっぱい。:2012/10/14(日) 02:56:49.75 ID:6dIGOegk0
グループ作成して、以下のキーを送信しているのですが
ControlSend, , {F10},ahk_group xxxx
これで送信される時とされない時があるのは何故でしょうか?
成功率は7割位です。
18名無しさん@お腹いっぱい。:2012/10/14(日) 08:51:42.57 ID:P5a8qdyz0
情報がすくない、環境も書いてない

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


一般論でいうと、窓が見つかればキーは送られているはずで、反応するかどうかはアプリ次第
19名無しさん@お腹いっぱい。:2012/10/14(日) 12:08:46.56 ID:P376nw8z0
>>17
低級エスパーな俺がエスパーしてみたらこうなった

setkeydelay, , 100
ControlSend, , {F10},ahk_group xxxx
setkeydelay, , -1
20名無しさん@お腹いっぱい。:2012/10/14(日) 15:36:33.82 ID: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名無しさん@お腹いっぱい。:2012/10/14(日) 15:39:13.91 ID:rwsjE1hj0
環境書いていませんでした。
windows764ビット
AutoHotkey - version 1.0.48.05
よろしくお願いします
22名無しさん@お腹いっぱい。:2012/10/14(日) 19:36:10.65 ID:rwsjE1hj0
ControlSend, ahk_parent, ~F10, ahk_group window
このコマンドが正しいかは分かりませんが、自己解決したみたいです。
23名無しさん@お腹いっぱい。:2012/10/14(日) 23:42:36.32 ID:6dIGOegk0
どんなウインドウにマウスカーソルがあっても
デスクトップ上での右クリックを表示させることは可能でしょうか?
24名無しさん@お腹いっぱい。:2012/10/14(日) 23:50:28.26 ID:P5a8qdyz0
そういう限定条件があるならNO
「大抵はな」らOK
25名無しさん@お腹いっぱい。:2012/10/15(月) 23:35:09.84 ID:u3NMjoql0
ahk_classで指定したウインドウのみ、左クリックを無効に出来ますか?
26名無しさん@お腹いっぱい。:2012/10/15(月) 23:40:39.03 ID:sRqS+Tuz0
ahklで#ifのサンプル改編すれば余裕
27名無しさん@お腹いっぱい。:2012/10/16(火) 00:05:31.22 ID:xbcFq+IJ0
うまく出来ません。
どなたかお知恵を拝借願います。
#IfWinExist ahk_class 1234
Lbutton::return
#IfWinExist
LButton::
return
28名無しさん@お腹いっぱい。:2012/10/16(火) 00:14:39.81 ID:g3nHs9+d0
#IfWinExist(ウィンドウが存在したら(存在していればアクティブでなくてもOK))
#IfWinActive(ウィンドウがアクティブなら)

下2行は何がやりたいのかわからんが多分いらん
29名無しさん@お腹いっぱい。:2012/10/16(火) 00:19:41.65 ID:CHXOMW920
LButton::LButton
をやりたいんだろうけどその場合は上2行だけでおk
3027:2012/10/16(火) 00:29:21.76 ID:xbcFq+IJ0
有難うございます、間違えました。
ahk_classで指定したウインドウのみ、左クリックを無効にし
他のウインドウには通常の左クリックがしたいです。
31名無しさん@お腹いっぱい。:2012/10/16(火) 07:26:59.99 ID:3R75TMGD0
ahk_classで指定したWindowのみってのはどういう状態?
アクティブな時なのか、カーソルがWindow上にある時なのか
多分後者だろうけど、前者ならIfWinActiveで判別
後者ならMouseGetPosとWinGetClassで判別になるんじゃないかいね
32名無しさん@お腹いっぱい。:2012/10/16(火) 08:45:36.19 ID:EIWCuOSA0
>>31も含めて>>26でok
33名無しさん@お腹いっぱい。:2012/10/17(水) 09:53:33.08 ID:zpvyx71j0
他ソフトのウィンドウだとうまくマウス制御できるのに、sleipnir3は同じ動作ができません。

AutoHotKeyの動きを邪魔するウィンドウやソフトなどあるのでしょうか?
34名無しさん@お腹いっぱい。:2012/10/17(水) 23:01:28.11 ID:jjqcFqzB0
そんなぼやけた情報だけじゃこれしか言えんわ

知らん
35名無しさん@お腹いっぱい。:2012/10/18(木) 22:27:19.82 ID:0dABjSnS0
MacでAHK的なことができるやつってあるかな?
Macbook購入を躊躇する最も大きな原因としてWindowsでのAHKが便利すぎるのがある
36名無しさん@お腹いっぱい。:2012/10/18(木) 23:35:03.38 ID:nS306G6v0
>>35
スレチだからスルーしてくれてもいいけど
そこまでしてマックブックを購入するメリットってなんだ?
煽りじゃなく興味本位で
37名無しさん@お腹いっぱい。:2012/10/18(木) 23:42:17.71 ID:A95toK1r0
BootCampでWin入れればいいじゃないかな
38名無しさん@お腹いっぱい。:2012/10/18(木) 23:53:10.43 ID:0dABjSnS0
>>36
ノートとしてのハードがよくできてることと
あとiOS向けアプリの開発をしたいから
まあWeb系ではMacbookでの開発が多くなってきてるってのも一応理由にある
39名無しさん@お腹いっぱい。:2012/10/19(金) 08:51:50.01 ID:9smewYCV0
>>35
試したことないんだけど>>1の派生版とか?
40名無しさん@お腹いっぱい。:2012/10/19(金) 11:11:41.97 ID:qTENWohe0
IronAhk (.NET製、クロスプラットフォーム)
http://www.ironahk.net/
ってどんなもんか見ようと思ったがどのブラウザでもドキュメントページが表示されない
どうやってドキュメント確認したらいいんだろうか
41名無しさん@お腹いっぱい。:2012/10/19(金) 11:18:34.97 ID:blhd7H6G0
>>40
http://www.ironahk.net/docs/
*が付いてるのは作りかけかな?
42名無しさん@お腹いっぱい。:2012/10/19(金) 11:24:02.52 ID:qTENWohe0
>>41
うーむそうなのかドキュメント確認くらいはしたかった
素AHKと同じ構文なんだろうか
Hotkey表現とか#ifやらがどうなっているのかはさすがに知りたいんだがなあ
43名無しさん@お腹いっぱい。:2012/10/19(金) 11:25:04.59 ID:qTENWohe0
と思ったら下に * Not yet documented. って書いてあるね
フォーラムとか見て確認するしかないか
44名無しさん@お腹いっぱい。:2012/10/20(土) 00:18:05.80 ID:x4ff1au90
ある文字から始まる値をURLに追加してそのwebページを
開こうと考えています。
(例: !12345\ と打つと、abc.jp/12345 を開く)

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

上のような形を考えたのですが、任意の文字列である
〜の部分が取得できず悩んでいます。
45441:2012/10/20(土) 00:20:39.12 ID:x4ff1au90
本文が長すぎると言われたので分割しています。

上手いこと 〜 の部分を取得してurlにセットしたいのですが
どうすれば良いでしょうか。
46名無しさん@お腹いっぱい。:2012/10/20(土) 05:43:54.96 ID:ANQEfWyQ0
InputBoxに入力したものを渡した方がいいんじゃない?
47名無しさん@お腹いっぱい。:2012/10/20(土) 11:04:26.45 ID:JyAMah3k0
先生がたに質問がございます。

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

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

同じプログラム(この場合chrome)での一つのキーアサインに対して設定数の上限てありましったっけ?
別に複雑なスクリプトでもないのでさっぱり原因がわからず・・・。
48名無しさん@お腹いっぱい。:2012/10/20(土) 11:24:04.92 ID:ANQEfWyQ0
Lastpassオススメ。
クラウドが怖いならローカルで使えばいい。
49名無しさん@お腹いっぱい。:2012/10/20(土) 11:25:59.28 ID:JyAMah3k0
>>47
自己解決です。
同じサイトへの設定を既に書いてました。。
アホな質問してすんませんでしたm(_ _)m
50名無しさん@お腹いっぱい。:2012/10/20(土) 11:27:05.89 ID:5CWvrAau0
複雑でもないならコード書くほうがいいよ

使った実装方法が文面からは分からないがduplicateというくらいなのだから
重複がないかどうかちゃんと調べる
あとパスワード管理ログイン管理はさすがにAHKでなくて別の方法取った方がいい
スクリプト中にパスをそのまま書いておくのも良くないしスクリプトでは明らかに管理が面倒
51名無しさん@お腹いっぱい。:2012/10/20(土) 13:26:31.08 ID:ft55l0l60
>>44
〜の種類だけホットストリングラベルを定義する
:B0:!a::
:B0:!b::
StringTrimLeft,Hot,A_ThisHotkey,5
Run,https://www.google.co.jp/search?q=%Hot%
return

〜の種類が多いなら>>45が言ってるようにInputBoxを使う
:B0:!::
InputBox,Input
If ErrorLevel = 0
Run,https://www.google.co.jp/search?q=%Input%
return
52名無しさん@お腹いっぱい。:2012/10/20(土) 13:27:53.71 ID:ft55l0l60
>>45じゃなくて>>46だった
5345:2012/10/20(土) 14:30:57.81 ID:x4ff1au90
>>46,51
数千種類あるのでInputBoxを経由させたところ
上手く実行出来ました。
ありがとうございました。
54名無しさん@お腹いっぱい。:2012/10/20(土) 17:59:10.22 ID: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, http://www.google.com/search?q=%Clipboard%
Clipboard=%bk%
}
return

2行目以外はおおよそ意味は分かるんですが、
2行目は500ms以内にクリックしないといけない、くらいにしか理解してない程度です
今回はとりあえず正常に動くことのみ気にしてるので推敲お願いします
55名無しさん@お腹いっぱい。:2012/10/21(日) 01:05:01.57 ID:PdCw1M4n0
その前に、自分的にはどう動いたら正解かを書くのが筋だろう
56名無しさん@お腹いっぱい。:2012/10/21(日) 01:47:55.00 ID:OSM3TvDU0
最初に大体書いてんじゃん
ブラウザ上で文字選択してctrlダブクリでその文字をgoogle検索
(実行したら文字選択解除)
クリップボード経由だけど汚したくないからバックアップ取ってそっから復元

むしろどれくらい失敗するのか、どう失敗するのかを書くべし
57名無しさん@お腹いっぱい。:2012/10/21(日) 02:03:08.09 ID:dsOm/IEj0
失敗ってのはまったく無反応、確率というのは
動くときは何回やってもほぼ100%動いて、動かない時は何回やっても動かないな感じです
何が影響してるかが全く分からないので統計の取りようもないです
とりあえず0か100かって感じです 
スクリプトでどうにもできないことなら仕方ないですが、何か改良すべきことがあるなら
58名無しさん@お腹いっぱい。:2012/10/21(日) 02:44:18.12 ID:lNbSWKtw0
とりあえず~Ctrl::だとCtrl押しっぱでも反応しない?
~Ctrl Up::のがいいような気がする
Sleep 50とSend,{Esc}はよくわからんが、なくてもいいような
ClipWaitはタイムアウト設定したほうがよさげ
ClipWait,1とか0.5とか時間は適当に
んで、格納失敗したときにメッセージとか出したいなら
If ErrorLevelで処理記述
Clipboard=%bk%の後に「bk=」の行追加で変数bkを空にしてやったほうがいい

ミジンコの俺が感じたのはこんな感じかなあ
59名無しさん@お腹いっぱい。:2012/10/21(日) 04:45:20.74 ID:dsOm/IEj0
>>58
ありがとうございます だいぶ動きが滑らかになって今のとこ確実にできてます

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

Send, ^c
ClipWait,1
If Clipboard =
Clipboard=%bk% (動作としては必要はないけど Clipboardが空でない が書けなかったため)
else
Run, http://www.google.com/search?q=%Clipboard%

としました

>>55-56 情報が足りませんでしたすみません
60名無しさん@お腹いっぱい。:2012/10/21(日) 09:03:59.18 ID:6LWHVHkO0
ClipWaitがタイムアウトしたらErrorLevelが1になるんだし
If !ErrorLevel
Run, http://www.google.com/search?q=%Clipboard%
でいいんじゃないの
61名無しさん@お腹いっぱい。:2012/10/21(日) 17:09:50.65 ID:9tWC3ZH30
IE9を使用しています。
IEが動いていたらアクティブ化したいのですが
以下のように記載しても動きません。
何がまずいのでしょうか。(通過メッセージは出ています)
Process,Exist,iexplore.exe
If (ErrorLevel <> 0) {
winActivate,ahk_pid %ErrorLevel%
MsgBox,4,,通過
}
return
62名無しさん@お腹いっぱい。:2012/10/21(日) 18:06:57.50 ID:nYBSf3er0
IE9はマルチプロセスなんでタイトル文字で指定した方がいいんでない?

SetTitleMatchMode, 2
WinActivate, Windows Internet Explorer ahk_exe iexplore.exe
63名無しさん@お腹いっぱい。:2012/10/21(日) 18:41:46.87 ID:a492Rb0y0
1000ms間隔で30回、それぞれの指定位置で右クリックするマクロを組んだのですが
このマクロの実行中に手動で途中で中断させる方法はありますか?
64名無しさん@お腹いっぱい。:2012/10/21(日) 18:55:36.20 ID:6LWHVHkO0
>>63
a::Reload
65名無しさん@お腹いっぱい。:2012/10/21(日) 21:04:45.65 ID:9tWC3ZH30
>>62
タイトル指定でいけました。
ありがとうございます。

そういえばプロセス一個だけの場合でも
プロセス指定では無理でした。不思議
66名無しさん@お腹いっぱい。:2012/10/21(日) 21:39:50.50 ID:lNbSWKtw0
>>63
ホットキーでマクロ開始するタイプなら>>64
macro.ahkを実行すると開始するタイプなら
スクリプトの後ろにa::ExitAppを追加
他のスクリプトも混在してるからReloadやExitAppは困るなら
MouseClick処理前にフラグを確認するようにして
フラグを立てるためのホットキーを設定してやる
これなら中断したところから再開とかもできる
67名無しさん@お腹いっぱい。:2012/10/21(日) 22:54:39.36 ID:/ipUcWyp0
複数のスクリプトを常駐中に、任意のスクリプトのみを終了させる事は出来ますか?
68名無しさん@お腹いっぱい。:2012/10/21(日) 23:17:22.77 ID:PdCw1M4n0
「スクリプトのパス ahk_class AutoHotkey」がメイン窓なんで、
WinMenuSelectItem や WM_COMMANDで終了メニュー選ぶんだり、
PIDで強制終了するなりすればいい
69名無しさん@お腹いっぱい。:2012/10/22(月) 01:02:57.74 ID:LCMhxr5y0
了解しました。がんばってみます
70名無しさん@お腹いっぱい。:2012/10/23(火) 12:37:17.16 ID:h1z/eHQI0
>>64,66
お返事遅くなりましたが親切にありがとうございます
71名無しさん@お腹いっぱい。:2012/10/23(火) 13:50:32.43 ID:+xYjZMPD0
お尋ねします。
一つのスクリプト内に幾つかの設定があり、その一部がエラーだった場合
そのエラーを無視して起動させる事は出来ますでしょうか?
72名無しさん@お腹いっぱい。:2012/10/23(火) 20:07:40.48 ID:HyDv+1vv0
ちょっと漠然としすぎじゃないかな
73名無しさん@お腹いっぱい。:2012/10/24(水) 07:26:28.45 ID:jF6YYXc50
>>71 組み込み変数 ErrorLevel で分岐することはできる。
文法エラーは修正しないと,エラーメッセージが出続ける。
74名無しさん@お腹いっぱい。:2012/10/24(水) 11:01:36.68 ID:IHBdJcWp0
正規表現中の「"」をエスケープする方法はあるでしょうか?

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

"`"" → ×
"\"" → ×
75名無しさん@お腹いっぱい。:2012/10/24(水) 13:15:22.36 ID:/If6D4Dn0
"""" → ○
じゃなかったかな
"abc"defg" → "abc""defg"
って感じ
76名無しさん@お腹いっぱい。:2012/10/24(水) 21:02:53.91 ID:QJQ7XNkk0
これ?

a = abc"def
dbl = "
msgbox, % regexmatch(a, "c" . dbl . "d")
77名無しさん@お腹いっぱい。:2012/10/24(水) 21:10:14.08 ID:QJQ7XNkk0
それかこれ?
a = abc"def
msgbox, % regexmatch(a, "c" . chr(34) . "d")
78名無しさん@お腹いっぱい。:2012/10/25(木) 18:51:03.17 ID:YtSW1qmd0
URLDownloadToFileにPOST形式は指定できないようですが、何か裏ワザとかあったりするでしょうか?
79名無しさん@お腹いっぱい。:2012/10/25(木) 19:02:18.72 ID:7L0ePVrn0
フォーラムに通信関連のライブラリがあった気がす
80名無しさん@お腹いっぱい。:2012/10/25(木) 22:24:48.18 ID: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名無しさん@お腹いっぱい。:2012/10/25(木) 22:59:30.65 ID:sC+z2xpV0
やれやれだな
82 忍法帖【Lv=40,xxxPT】(1+0:8) 【東電 68.9 %】 :2012/10/25(木) 23:01:12.58 ID:PzKg9++xP
マウススクロールの↑をloopで指定回数行うのにsleep以外で間隔指定できませんか?

あと、Edit This Scriptでメモ帳を別のエディタに変えたい場合はレジストリ?
83名無しさん@お腹いっぱい。:2012/10/25(木) 23:12:19.71 ID:/Ly6Bf/p0
>>82
言うようにレジストリ
とは言え個人的には編集用のホットキー用意しておく方が便利
#a::run, "c:\program files\someone\editor.exe" "ahkscript.ahk"
84名無しさん@お腹いっぱい。:2012/10/26(金) 00:12:50.02 ID:zhQcHivP0
>>82
>マウススクロールの↑
ホイールのこと言ってるなら Send,{WheelUp 10} とか

エディタのレジストリキーは以下
HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command
85名無しさん@お腹いっぱい。:2012/10/26(金) 00:15:59.23 ID:zhQcHivP0
すまん回数指定かつ間隔指定か
ならSendで送る前にSetKeyDelayを指定しておく
86 忍法帖【Lv=40,xxxPT】(1+0:8) 【東電 61.0 %】 :2012/10/26(金) 01:22:09.81 ID:WinEKDC+P
>>83
それだと別に起動しておかないといけないですね。

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

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

SetMouseDelay,xxx
loop xxx {
MouseClick,WheelUp
}

両方試しましたが1回しかカウントされず多分一瞬で終わっているみたいですね。
前スレにあったsleepでやるしかないのか。。。
87名無しさん@お腹いっぱい。:2012/10/26(金) 01:40:47.37 ID:QQQnF1yf0
なぜsleepが嫌なのか
88名無しさん@お腹いっぱい。:2012/10/26(金) 01:53:21.06 ID:2v3pU1Bn0
マニュアルやヘルプみたの?setkeydelayの使い方が誤っている。
89名無しさん@お腹いっぱい。:2012/10/26(金) 08:03:20.24 ID:zhQcHivP0
いや一番肝心な数値の部分をxxxで伏せられたらわからんし

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

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

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

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

>>89
間隔50ms〜5sでloopが100〜1000回とかまちまちなので。
91名無しさん@お腹いっぱい。:2012/10/26(金) 20:55:18.81 ID:zhQcHivP0
だからそういう条件は先に言えと、後出しは遠回りでムダになるっしょ
中断させたいならloop内でbleakさせりゃいいんじゃね
92名無しさん@お腹いっぱい。:2012/10/26(金) 21:03:51.59 ID:gBrlXe8X0
Pだからな、無理もない
93名無しさん@お腹いっぱい。:2012/10/26(金) 21:45:55.19 ID:eZgzgEBn0
やりたい処理の全体像がいまいちつかめないので断言はできないけど、
Sleepがいやな理由が中断・再開がうまくいかないってことなら解決法ありそうだけどな
94名無しさん@お腹いっぱい。:2012/10/26(金) 22:24:19.50 ID:OkyiV06r0
Win 8 にしたら Send, {Alt Down}{Tab} で擬似 AltTab ができなくなってしまった。
95名無しさん@お腹いっぱい。:2012/10/26(金) 22:29:29.36 ID:PSmHapYr0
できなかったという一言感想だけ言うよりどうしたら改善したとか
原因はおそらくこれとかいう情報もあった方がいいのでは
そこまで日記的だと本当にWin8が原因なのかも分からない
96名無しさん@お腹いっぱい。:2012/10/27(土) 11:30:18.93 ID:uDsL5QVN0
win8でautohotkeyがうまく動かないというのは
autohotkey forumにあまり情報がないかと
どうなんだろうね
97名無しさん@お腹いっぱい。:2012/10/27(土) 19:23:24.43 ID:zXqWWw1p0
>>94きっかけで作り始めたんですけど
x::AltTabMenu でスイッチャ起動してクリックで決定したあと

(http://uni.2ch.net/test/read.cgi/operatex/1335382709/850代行)
98校倉木造 ◆AZEkURA/hI :2012/10/27(土) 19:24:40.31 ID:zXqWWw1p0
>>97 続き

Altがおしっぱになってるらしく一回Altを押さないと正常に戻りません
#IfWinActive ahk_class TaskSwitcherWndで
スイッチャがあるときにUpとかを決定(Lクリック)に連動させて入力しても
ある時に〜という設定だからなのか動きません
どうにかして決定後に自動的にAltを解除できませんかね?
99名無しさん@お腹いっぱい。:2012/10/27(土) 21:05:15.95 ID:rWPm+UU00
FileDelete, コマンドでお聞きします。
複数行にならず、一行だけで指定したファイルを連続して削除する事は可能ですか?
100名無しさん@お腹いっぱい。:2012/10/27(土) 21:26:27.92 ID:xnXiHDio0
自分で複数指定できる関数作ればいいじゃない
101名無しさん@お腹いっぱい。:2012/10/28(日) 00:23:01.78 ID:TgOAbVyh0
なんか最近、同一人物なんか知らんが
意図のわからない質問が増えてるな
102名無しさん@お腹いっぱい。:2012/10/28(日) 00:56:41.94 ID:/+4sRrQx0
質問内容が曖昧なのと、なんか限定的な条件がついてるよね
やりたいことと、なぜその条件が必要なのか書けば解決法出てきそうなんだけどね
10394:2012/10/28(日) 11:39:18.61 ID:n/plubYp0
結局 AHK フォーラムで聞いてみた。Win8 標準ホットキーの少なくとも一部 (Alt-Tab など) は外部ツールから起動できないらしい。
http://www.autohotkey.com/board/topic/86218-how-can-i-emurate-alt-tab-function-on-win-8-using-ahk/
104名無しさん@お腹いっぱい。:2012/10/28(日) 12:54:38.19 ID:hk7vik+e0
>>103
なるほど
"Our. Top. Men!" の意味は全然汲み取れないんだが今取り組んでるから多分治るよって事か
105941 :2012/10/28(日) 14:19:21.10 ID:n/plubYp0
>>104 「俺たちの!! スーパー!! ヒーロー!!」ってくらいの意味で、
Lexicos をはじめとする AHK デベロッパーが何とかしてくれるはずという期待が
Don't worry 以降に、そして Though 以降にこの問題が遷延する可能性をいってます。
ここらへんは全部ポストした人の憶測なので、確かな情報としては >>103 のみ
106名無しさん@お腹いっぱい。:2012/10/28(日) 16:22:52.45 ID:HBCQ+2I40
指定したウインドウを、90度180度と回転させる事って出来ますか?
107名無しさん@お腹いっぱい。:2012/10/28(日) 18:12:11.05 ID:cCpsD4eX0
何のために?理由によっては別の方法がある
108名無しさん@お腹いっぱい。:2012/10/28(日) 18:16:39.46 ID:TgOAbVyh0
タブレット的に使いたいってことなんだろうけど、ウィンドウ単位では無理
ディスプレイ全体だったらGPUが対応していればいける
109名無しさん@お腹いっぱい。:2012/10/28(日) 18:24:05.57 ID:HBCQ+2I40
正にタブレットみたいな使用法です。
でもそう都合よくはいきませんよね。
ありがとうございました。
110名無しさん@お腹いっぱい。:2012/10/29(月) 13:43:21.08 ID:WP4veEYEP
>>101-102
1から10まで書いてくれないと答えられないから全部書いて欲しいよな。
111名無しさん@お腹いっぱい。:2012/10/29(月) 13:57:38.48 ID:9JeZFFTq0
Windows8のメトロUI?ってAutoHotKeyって動作するんですかね…

スマフォ系でAutoHotKeyが使えれば、その端末即買いですよ
112名無しさん@お腹いっぱい。:2012/10/29(月) 17:25:19.34 ID:MtmxPhvx0
Autohotkeyからrunで呼び出したバッチファイルのウインドウを、非表示にさせることは出来ますか?
113名無しさん@お腹いっぱい。:2012/10/29(月) 18:14:45.59 ID:TP0zE+WP0
Run, hoge.bat , , Hide

>>110
つまらない、15点
114名無しさん@お腹いっぱい。:2012/10/29(月) 18:20:46.86 ID:MtmxPhvx0
助かりました有難うございます
115名無しさん@お腹いっぱい。:2012/10/29(月) 19:19:21.75 ID:5nBzfWZL0
>>110
別に書かなきゃ答えないだけだから好きにしろよ
116名無しさん@お腹いっぱい。:2012/10/30(火) 13:01:41.39 ID:dU/tE5XU0
UWSCのスクリプトをAutoHotkey用に変換する方法教えろ
117名無しさん@お腹いっぱい。:2012/10/30(火) 14:05:18.90 ID:Pb3euaEE0
まずUWSCのドキュメントとAHKのドキュメントを用意してください。
次に、変換したいスクリプトを開きます。
あとは簡単。
ドキュメントを参照しながら同じ結果が得られるように
AHKのスクリプトファイルにコマンドを入力していけば、変換完了です。
118名無しさん@お腹いっぱい。:2012/10/30(火) 14:27:11.08 ID:BDB9HMBv0
wasd操作のゲームがあるんですが、eで右上(dw)、qで左上(aw)、shiftで左下(as)、spaceで右下(ds)に方向を割り当てて8キーにしたいんですけど1つのキーに2コキーを当てることは出来るんでしょうか?
119名無しさん@お腹いっぱい。:2012/10/30(火) 15:28:35.09 ID:VJ8k022K0
そのゲームで動作するかは知らんが普通に2キーSendしてみれば
120名無しさん@お腹いっぱい。:2012/10/30(火) 15:50:00.90 ID:BDB9HMBv0
文章として入力されてしまうようでできませんでした
素直に諦めます
12197-98:2012/10/31(水) 03:14:53.96 ID:k6OEMr050
アク禁喰らってダメだったので質問しなおします

マウスボタンににF1を割り当てて
F1::AltTabMenu でタスクスイッチャを作ったはいいんですが
アイコンを左クリックで決定してタスクをアクティブにしたら
どうやらAltがおしっぱになっているらしく、他の操作に支障が出ます
タスクを決定したときに自動でALTを押され、解除されるようなのはできないでしょうか?
122名無しさん@お腹いっぱい。:2012/10/31(水) 10:56:17.32 ID:+nSJU9nv0
F1 up::AltTabMenu
123名無しさん@お腹いっぱい。:2012/10/31(水) 16:56:54.45 ID:e3fL720f0
ヒドゥンな指定プロセスにコマンドを送信したい場合ってどうすればいいのでしょうか?
124名無しさん@お腹いっぱい。:2012/10/31(水) 17:31:50.36 ID:e3fL720f0
Autohotkeyjpに以下のサンプルがありますが
コマンドプロンプトを起動状態でも送信されません。
何故でしょうか?
SetTitleMatchMode, 2
ControlSend, , abc, cmd.exe
125名無しさん@お腹いっぱい。:2012/10/31(水) 18:01:55.26 ID:Ty+Z6p1v0
>>124
試してみたらそれで普通に送信できたよ
コマンドプロンプトのタイトルにcmd.exeが含まれてないとか何かあるんじゃない
126名無しさん@お腹いっぱい。:2012/10/31(水) 18:36:39.85 ID:NptaHGpU0
DetectHiddenWindows, On
127名無しさん@お腹いっぱい。:2012/10/31(水) 18:49:56.01 ID:e3fL720f0
>>125
すみません、確認不足でした。
再起動したら送信されました。
>>126
ありがとう
128名無しさん@お腹いっぱい。:2012/10/31(水) 22:50:01.67 ID:k6OEMr050
>>122
ありがとうございます 
その1行で大丈夫なんですか?
129名無しさん@お腹いっぱい。:2012/11/01(木) 00:01:18.82 ID:8VTyHPOV0
よくわかんないけど
公式まで行って、win8固有の問題って言われたんなら Lexicosとかが対応してくれるまでは
無理なんじゃなかろうか
130名無しさん@お腹いっぱい。:2012/11/01(木) 14:46:01.44 ID:41V8YK7C0
>>122
動作的には変化ないんですけどどうなんでしょう?
131名無しさん@お腹いっぱい。:2012/11/01(木) 16:03:08.94 ID:qg4/zr/Z0
>>121
Win8で動くかどうか確認してないけど、これは?

F1::AltTabMenu

#IfWinExist ahk_class TaskSwitcherWnd
~!Lbutton::
WinWaitClose, ahk_class TaskSwitcherWnd
send, {alt up}
return
132名無しさん@お腹いっぱい。:2012/11/01(木) 18:31:00.63 ID:W4bVhOOu0
ちゃんと設定してもそのとおり動かないホットキーがあるのは仕様なんでしょうか?
wとsにPgUp、PgDnを割り当ててるんですけどSキーを押してもPgDnが認識されません
他にも.キーにCtrl++(拡大)ショートカットを割り当ててるんですけどこれも機能しません
133名無しさん@お腹いっぱい。:2012/11/01(木) 18:47:21.16 ID:VFeSPN1iO
ちゃんと出来てると思ってても出来てないか割り当ててるというソフトの設定の問題か他のソフトが干渉してるかどれかだな
.ahkと対象のソフト名、あと出来ればタスクマネージャのスクショうp
134名無しさん@お腹いっぱい。:2012/11/01(木) 19:31:04.06 ID:44QIZGaQ0
>>131
ありがとうございます できました
自分はwin8について発言した方とは別人なのでその辺は大丈夫です
いろいろ紛らわしくなってしまいましたね・・・ありがとうございました
135名無しさん@お腹いっぱい。:2012/11/01(木) 19:41:11.52 ID:W4bVhOOu0
>>133
zipにかためたところでふと気になって再起動したら普通に動きました。すみませんありがとうございます
136名無しさん@お腹いっぱい。:2012/11/01(木) 22:33:47.97 ID:8rB03r/Q0
zipにかためたとはいったい
137名無しさん@お腹いっぱい。:2012/11/01(木) 22:37:09.39 ID:W4bVhOOu0
ahkとかうpれって言われたんでその参考にとahk他をzipで固めたところで自己解決しちゃったので・・・
138名無しさん@お腹いっぱい。:2012/11/02(金) 09:52:06.09 ID:Jz5iL64J0
教えて欲しいのですが・・・
settimerが動作してからの経過時間って取得できますか?
139名無しさん@お腹いっぱい。:2012/11/02(金) 13:29:44.63 ID:i5iPBsj/0
直接該当する変数は無いけど
OS起動時からの時間が格納されるA_TickCountや
操作を行っていなかった時間を格納するA_TimeIdle等の
組み込み変数を利用して時間経過を知ることは出来ます。
140名無しさん@お腹いっぱい。:2012/11/02(金) 21:18:29.83 ID:NrZnPsCl0
デュアルモニタかどうかを判断して、そこから処理を分岐したいのですが出来ますでしょうか?
141名無しさん@お腹いっぱい。:2012/11/02(金) 21:37:10.54 ID:lsrd4N8t0
SysGet
142名無しさん@お腹いっぱい。:2012/11/03(土) 03:21:37.30 ID:GoRxSQJ30
Loop
{
  IfWinNotActive,TestWindow
  {
   WinClose,TestWindow
   MsgBox,%A_Index% 回ループしました
   Break
  }
}
Return

windがアクティブじゃなくなったら消すのを書いてみたら
CPU負荷+10% 1秒間 6.5万回ループ って結果にw負荷ぱないw
テスト用にMsgBox書いといて良かった・・・そのままだったら
Sleep 書き忘れてたの気づかなかったなw
143名無しさん@お腹いっぱい。:2012/11/03(土) 04:45:46.22 ID:gBv/+3ni0
そういう用途にはタイマーを使いましょう
144名無しさん@お腹いっぱい。:2012/11/03(土) 11:03:17.71 ID: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名無しさん@お腹いっぱい。:2012/11/04(日) 13:53:00.37 ID:hj3+5O9I0
Sleepを使った、長い実行時間のホットキーがあるのですが、
実行中に何か(不特定)のキーが押されたら実行を中断させたいです。
簡単に実現する方法はないでしょうか?
146名無しさん@お腹いっぱい。:2012/11/04(日) 14:28:29.64 ID:BCl3mh9U0
>64
147名無しさん@お腹いっぱい。:2012/11/04(日) 19:08:29.88 ID:hj3+5O9I0
>>146
ありがとうございます。
ですが、どのキーを押しても中断するようにしたいのです。

結局、各sleepのあとでA_PriorKeyをチェックすることにしました。
148名無しさん@お腹いっぱい。:2012/11/04(日) 21:35:51.91 ID:95/g4WZV0
Lのインストーラー版のダウンロードサイズとハッシュどなたか貼ってください。

今朝落とした時は2MBのが落ちてきて、
以前落としていたものとハッシュが違い以前のは壊れてるのかと思ってましたが、
今落とすと5MBのものが落ちてきます。
どれが正しいのかわかりませんorz
149148:2012/11/04(日) 21:41:11.92 ID:95/g4WZV0
あ、すいません。
5MBは、2つ落としたファイルを選択したものをプロパティで見たもので、誤りでした。

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

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

DetectHiddenWindows, On
WinClose, %fullScriptPath% ahk_class AutoHotkey
151名無しさん@お腹いっぱい。:2012/11/05(月) 04:43:34.14 ID: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ひみつの文字列さん:2024/06/29(土) 09:02:40 ID:MarkedRes
日本国またはアメリカ合衆国、もしくはその両方の著作権法に触れる内容であると疑われることから表示できません。
153148:2012/11/06(火) 10:03:08.02 ID:EVhAGQsX0
>>152
ありがとうございますm(_ _)m
154名無しさん@お腹いっぱい。:2012/11/06(火) 17:29:55.93 ID: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名無しさん@お腹いっぱい。:2012/11/07(水) 02:16:28.90 ID:MGzUTcLn0
Sendでもキーのリマップでも反応しないアプリがあるのですが
物理的にキーを押した状態と同じ動作をさせる事は出来ますか?
156名無しさん@お腹いっぱい。:2012/11/07(水) 11:18:09.47 ID:SCf8twza0
DCALLなどを利用して、Windowsのファイルアクセスシステムコールをコールバックして、指定のアプリケーションのファイルアクセス履歴を取得することなんて可能でしょうか?
157名無しさん@お腹いっぱい。:2012/11/07(水) 13:25:15.25 ID:jN1c/W8Y0
>>155
用意されているキーの送信手法をもっと試す
send
sendiraw
sendivent
sendinput
sendplay
158名無しさん@お腹いっぱい。:2012/11/07(水) 13:26:19.20 ID:jN1c/W8Y0
タイポした。sendiraw→sendraw sendivent→sendevent
159名無しさん@お腹いっぱい。:2012/11/07(水) 18:23:33.60 ID:5qc9rM8j0
AutoHotkey v1.1.09
http://www.autohotkey.com/board/topic/86680-autohotkey-v1109/

アーカイブ版の方は中身が古いままだな。まぁ、すぐにアップロードされるだろう
インストーラの方はOK
160名無しさん@お腹いっぱい。:2012/11/07(水) 21:06:28.74 ID:yRHwHF3O0
変更点は?
161名無しさん@お腹いっぱい。:2012/11/07(水) 21:20:33.60 ID:Ko2mm9dS0
公式のChangelog見ればええがな
162名無しさん@お腹いっぱい。:2012/11/08(木) 00:37:03.24 ID:rgGBF4JU0
>Removed undocumented AutoIt v2 commands.
これが何なのかわからないなあ
163名無しさん@お腹いっぱい。:2012/11/08(木) 18:59:43.51 ID:b/YWXq430
すみません、初心者で使いこなせずアンインストールしようと思ったのですが
コントロールパネルからアンインストールしようとおもっても
installer.ahkというスクリプトを読み込むだけでアンインストール処理を行ってくれません。
中身も読んでみたのですが、サンプルスクリプトが書いてあるだけで特にそういった処理に使えるものもないようで…
申し訳ありませんが、助けていただければ幸いです。よろしくお願いします。
164名無しさん@お腹いっぱい。:2012/11/08(木) 20:32:14.82 ID:UtVH/cET0
Autohotkey.exeがahkファイルに関連付けされているだけなのでフォルダごと削除しても問題ないかと。
プログラムと機能(Win7)にインストール情報が残っているならCCleanerとか使えば消せる。
165名無しさん@お腹いっぱい。:2012/11/08(木) 21:28:28.75 ID:b/YWXq430
>>164
親切にありがとうございます。
インストーラーからなのでおそらく残るとおもわれるのでCCleanerを使用したいと思います。
本当にありがとう、感謝します。
あと上のレスsage忘れです。ごめんなさい。
166名無しさん@お腹いっぱい。:2012/11/08(木) 22:50:16.62 ID:ImcVfX870
嫌かもしれんが一度インストーラ使ってインスコして、すぐにアンインスコすればいいじゃないかな
167名無しさん@お腹いっぱい。:2012/11/09(金) 15:43:08.73 ID: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名無しさん@お腹いっぱい。:2012/11/09(金) 16:07:14.88 ID:rs20Th0j0
最後に(Breakの直前に)
WinActivate, ahk_id %activeWindowID%
169名無しさん@お腹いっぱい。:2012/11/09(金) 16:11:41.46 ID:rs20Th0j0
× 最後に(Breakの直前に)
○ 最後に(Breakの次行に } があると思うのでその次の行に)
170名無しさん@お腹いっぱい。:2012/11/09(金) 18:33:51.96 ID:Z/Aldddw0
一旦全部最小化して
ターゲットのwindow群だけ元に戻して
左右に並べて表示させる方法もあるのでは。
171名無しさん@お腹いっぱい。:2012/11/09(金) 20:46:04.25 ID:0mUvxv2e0
>>169
ありがとうございました。成功しました。
その文字列をもしかして入れるのでは?とおもって一回試してみたのですが
失敗していました。なるほど入れる場所が間違ってたのか。
breakとその文字列の間に } を2個入った形で成功しました。
よかった。
172名無しさん@お腹いっぱい。:2012/11/09(金) 23:28:09.45 ID:QcS3i+Un0
脳波読み取るスクリプトの書き方教えてください
173名無しさん@お腹いっぱい。:2012/11/09(金) 23:57:48.99 ID:FlT/CH2g0
まず脳波読み取るデバイスを用意します
174名無しさん@お腹いっぱい。:2012/11/10(土) 01:01:59.11 ID:62yasgv00
autohotkeyをemacsでdebugしたいのですがどうすればいいのでしょう?
"autohotkey emacs debug"で検索してもそれらしい情報が見つかりませんでした
175名無しさん@お腹いっぱい。:2012/11/10(土) 01:47:13.83 ID:C4KvyvBt0
「emacs DBGp」ならかなりヒットしたけど
176170:2012/11/10(土) 08:07:53.79 ID: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名無しさん@お腹いっぱい。:2012/11/10(土) 11:51:38.60 ID:62yasgv00
>>175
ありがとうございます。見てみます。
178名無しさん@お腹いっぱい。:2012/11/10(土) 16:32:29.06 ID: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名無しさん@お腹いっぱい。:2012/11/10(土) 16:59:45.66 ID:gAHuX+SL0
IfMsgBox, No,の後に複数行の処理をしたい場合
どの様な記述をすればいいでしょうか?
180名無しさん@お腹いっぱい。:2012/11/10(土) 17:13:35.25 ID:x0GbFo060
LoopとFileMoveで簡易的なファイルの振り分け処理をしたいのですが重複ファイルの扱いで困ってます。
今は一律でファイル名の最後に(0)を付けてるのですが、
どうも中身が同じのが多くなってきたような気がするので…
ahk単体でやるのではなくdiffあたりにファイルを投げた方がいいでしょうか?
181名無しさん@お腹いっぱい。:2012/11/10(土) 17:18:40.24 ID:gAHuX+SL0
179
すみません、自己解決しました。
Gosub,で飛べるんですね。
182名無しさん@お腹いっぱい。:2012/11/10(土) 17:21:24.09 ID:BVo7ZGOI0
>>181
普通にブロックでよくない?
msgbox, 4,, test
ifmsgbox, No
{
msgbox,No
msgbox,No
}
else
{
msgbox,Yes
msgbox,Yes
}
return
183名無しさん@お腹いっぱい。:2012/11/10(土) 17:27:24.79 ID:gAHuX+SL0
>>182
おおこれは!有難うございます。
184名無しさん@お腹いっぱい。:2012/11/10(土) 18:19:28.96 ID: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名無しさん@お腹いっぱい。:2012/11/10(土) 19:19:51.75 ID:Fr6roE8F0
>>184
早速返答が! ありがとうございます。
こちらの環境では正常に動きました。
欲を言えば、長押しの挙動がちょっと違うので
これから改善策考えてみます。
悶々としていた部分なので助かりました。
186名無しさん@お腹いっぱい。:2012/11/10(土) 20:08:38.98 ID:aPyD/jjE0
>>180
ハッシュを取得可能なライブラリがあるので使ってみては

[AHK_L] Crypt - ahk cryptography class (Encryption, Hashing)
http://www.autohotkey.com/board/topic/67155-ahk-l-crypt-ahk-cryptography-class-encryption-hashing/
187名無しさん@お腹いっぱい。:2012/11/10(土) 20:43:13.84 ID: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名無しさん@お腹いっぱい。:2012/11/10(土) 22:08:45.29 ID:zYtGu6Zp0
>>187
杞憂かもしれないが "Critical" 中にボタンの押し下げ状態にすると、
キーリピート分が大量に溜まってしまうんじゃないか?
"Critical"が解除された時に、それらが雪崩れ込んでくる気がする。
189名無しさん@お腹いっぱい。:2012/11/10(土) 22:22:49.28 ID:x0GbFo060
>>186
こんないいものがあるとは…
ありがとうございました
190名無しさん@お腹いっぱい。:2012/11/10(土) 23:39:43.28 ID:aPyD/jjE0
>>188
指摘ありがとう。推測された通り雪崩れ込んでた。
ということで400msのウェイトを入れて修正してみたけど、用途によっては問題があるかもしれない

>>187
×Critical
○If ((A_PriorHotkey = A_ThisHotkey) and (A_TimeSincePriorHotkey < 400))
  Return
以下略
191名無しさん@お腹いっぱい。:2012/11/14(水) 01:24:17.95 ID:EEeEteHA0
http://www.autohotkey.com/board/topic/71179-ahk-l-dba-16-oop-sql-database-sqlite-mysql-ado/
このライブラリでSQLiteを使い
c:\TestDB.sqlite3というファイル名で処理内容を保存できると思ったのですがうまくいきません
(http://www.dbonline.jp/sqlite/database/index1.htmlを参考にしました)

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名無しさん@お腹いっぱい。:2012/11/14(水) 14:36:20.15 ID:hPiJbPSa0
エラーの種類が分らないので憶測で

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

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

それから一応だけど、SQLite_CloseDB()を直接呼ぶのではなく、db.Close()を呼んだ方がいいよ
193名無しさん@お腹いっぱい。:2012/11/14(水) 21:39:56.74 ID:iXIxzSqD0
Windows7とかだと標準ユーザはCドライブのルート直下にファイル作れないけど
その辺大丈夫?
194名無しさん@お腹いっぱい。:2012/11/14(水) 22:22:38.43 ID: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名無しさん@お腹いっぱい。:2012/11/15(木) 14:53:09.20 ID:79z6C8EZ0
ウインドウタイトルの変更は出来ましたが
ウインドウクラスの変更は出来ますか?
196名無しさん@お腹いっぱい。:2012/11/16(金) 01:28:23.95 ID:HucuW6F40
クラス名なのか振る舞いを含めたクラスなのか、いずれにしても無理だけど
197名無しさん@お腹いっぱい。:2012/11/16(金) 20:55:39.24 ID:Fvy4xWJX0
ControlSendでErrorLevel見ても成功しているのに反応しないから悩んでたら
>>22
に書いてあったahk_parent追加で成功。
AutoHotkeyJpに書いていなかったので時間かかった・・・
198名無しさん@お腹いっぱい。:2012/11/17(土) 16:43:38.98 ID:r0IUfgiy0
難い・・・挫折した。
199名無しさん@お腹いっぱい。:2012/11/17(土) 18:01:47.37 ID: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名無しさん@お腹いっぱい。:2012/11/19(月) 01:39:01.90 ID: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名無しさん@お腹いっぱい。:2012/11/19(月) 09:42:48.16 ID:5QI0L26l0
Send,{RButton}
Sleep,500
Send,O

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

なお、挙動が変わってしまうので1行目をAppKeyで代用することはできません。
202名無しさん@お腹いっぱい。:2012/11/19(月) 12:18:37.83 ID:LtgNA1Rv0
アプリによっては動作しない。普通のコンテキストメニュー用

Send, {RButton}
WinWait, ahk_class #32768,, 3
203名無しさん@お腹いっぱい。:2012/11/19(月) 18:59:32.44 ID:v8RY4Jux0
>>200
なるほどーこうすればいけますね。
非常に参考になりましたありがとうございます。
204名無しさん@お腹いっぱい。:2012/11/19(月) 20:40:52.91 ID:biSIg5Ye0
>>202
ありがとうございます。
もし動かなくてもSpyでクラス調べればいけそうですね。
205名無しさん@お腹いっぱい。:2012/11/19(月) 21:23:54.64 ID:/z50lnam0
ストアアプリのIMEを制御したいのですがIME.ahkを使ってもうまく動きません。
IME 開発のガイドラインとチェック リスト (Windows ストア アプリ) (Windows)
http://msdn.microsoft.com/ja-jp/library/windows/apps/hh967425.aspx
これを見るとtsfというものを使っているようなのですが、なんとかできないものでしょうか。
206名無しさん@お腹いっぱい。:2012/11/20(火) 21:47:55.76 ID:i6pcY5mn0
autohotkeyjpにあったIniReadのサンプル何ですが
IniRead, OutputVar, C:\Temp\myfile.ini, section2, key
MsgBox, The value is %OutputVar%.

仮にsection2のキーが1だった場合と、2だった場合で分岐したいのですが
どの様なスクリプトを書けば良いのでしょうか?
207名無しさん@お腹いっぱい。:2012/11/20(火) 22:39:48.19 ID:Va912D/l0
ごく普通にIfで分岐するだけじゃないの?
208名無しさん@お腹いっぱい。:2012/11/20(火) 23:49:03.95 ID:Ncev6A/K0
AutoHotkeyってほんと簡単でいいですね
.bat書くよりこっちの方が分かりやすい
209名無しさん@お腹いっぱい。:2012/11/21(水) 02:49:21.96 ID:ZznyVFkd0
>>207
どんな感じで書けばいいのか教えて頂けませんか?
210名無しさん@お腹いっぱい。:2012/11/21(水) 03:39:58.65 ID:KTAf6xvH0
>>209
基本的なことから分かってないようだから
AutoHotkeyJpのリファレンスの項目全部読んでらっしゃいな
あなたの疑問もばっちり書いてあります。
https://sites.google.com/site/autohotkeyjp/
211名無しさん@お腹いっぱい。:2012/11/21(水) 08:24:43.90 ID:/xm36B6T0
テキストエディタでvimのヴィジュアルモードみたいに「解除するまで選択状態」となるようにできませんか?
具体的には、Shiftキーを押すと次にShiftキーを押すまでShiftキーを押しっぱなしにしてる扱いにしたいです

vista 32bit
212名無しさん@お腹いっぱい。:2012/11/21(水) 09:21:09.06 ID:UDlUOiXq0
Shift押し下げ押し上げをトグルキーにすればいいんじゃないの
213名無しさん@お腹いっぱい。:2012/11/21(水) 13:50:37.96 ID:4KsmhzTu0
>>205
IME.ahkはImm32のAPIしか使ってないので TSFだと機能しないです
214名無しさん@お腹いっぱい。:2012/11/21(水) 15:20:43.93 ID:/xm36B6T0
>>212
なるほど
それでいってみます。サンクスです
215名無しさん@お腹いっぱい。:2012/11/21(水) 16:51:07.98 ID: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名無しさん@お腹いっぱい。:2012/11/21(水) 17:59:20.30 ID:rRf0qB5OP
SMPlayerという動画プレイヤーソフトの動画表示ウインドウ内でクリックしたかどうかを
識別して、#IfWinActiveで条件分岐したいのですが、うまくいきません。

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

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

Qt
http://qt.digia.com/

動画表示ウインドウ内のクリック時にSMPlayerかどうかを識別するには、
どのような方法が考えられるでしょうか。
217名無しさん@お腹いっぱい。:2012/11/21(水) 19:24:11.33 ID: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名無しさん@お腹いっぱい。:2012/11/21(水) 19:26:49.26 ID: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名無しさん@お腹いっぱい。:2012/11/21(水) 19:52:59.81 ID:rRf0qB5OP
>>218
バッチリ動きました!ありがとうございます。
再生が終了して暗転してる状態でも、きちんと識別できました。

個人的な問題は、メインで使ってるスクリプトがAHK初代なので、
常用スクリプトに統合できず・・・新版AHK_Lに移行する決心が付きました。
220名無しさん@お腹いっぱい。:2012/11/21(水) 22:53:46.28 ID:/fouNWHI0
>>217
横レスだが助かる情報だ
221206:2012/11/21(水) 23:10:22.27 ID:ZznyVFkd0
皆さん有難うございます。
特に>>215さん、バッチリ動作しました。
本当に有難う、感謝しています。
222名無しさん@お腹いっぱい。:2012/11/22(木) 23:38:44.45 ID:njqydt+V0
>>213
そうなのですかわかりました
223名無しさん@お腹いっぱい。:2012/11/23(金) 01:11:20.36 ID:jZODSSYO0
ブラウザでウェブページを見ているとき、
フォーカスがあるリンクのurlを取得することはできますか?
autohotkeyでページそのものを取得することは分かるのですが
現在見ているページの特定箇所のリンクの抽出が分からないです
firefoxを使っていますがinternet explorerでもかまいません
224名無しさん@お腹いっぱい。:2012/11/23(金) 10:57:37.66 ID:e4IGcrws0
ToolTipのフォントの大きさを変えられないでしょうか?
225名無しさん@お腹いっぱい。:2012/11/23(金) 12:29:14.14 ID:9oAyNOmGi
226名無しさん@お腹いっぱい。:2012/11/23(金) 13:31:19.80 ID:eX6dmNCB0
誤って作成したスクリプトを消してしまい困っています。
ahk2exeでコンパイルされたスクリプトを抽出する事
若しくは起動中のスクリプトを抽出出来ますか?
227名無しさん@お腹いっぱい。:2012/11/23(金) 13:43:02.93 ID:gsdcOrt7P
>>226
exe2ahkってツールで取り出せるけど、
コンパイル時に暗号化してたら駄目だったと思う。

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

俺も昔同じミスをしてしまって泣いた。
対策として、起動時にスクリプト自身を自動でコピーする関数を冒頭に入れるクセをつけた。
履歴も取れるようにして、何度か助かった。
228名無しさん@お腹いっぱい。:2012/11/23(金) 14:35:03.14 ID:eX6dmNCB0
>>227
貴重な情報有難うございます。
早速チャレンジしてみます!
229名無しさん@お腹いっぱい。:2012/11/23(金) 16:39:35.85 ID:9nuaioY40
>>223
Fxならアドオンでどうにでも出来るでしょ
230名無しさん@お腹いっぱい。:2012/11/24(土) 18:52:18.62 ID:rXAo47m+0
salt - Standard Autohotkey Library Transfer - Google Project Hosting
https://code.google.com/p/salt/
これは何?
231名無しさん@お腹いっぱい。:2012/11/24(土) 19:59:15.80 ID:F3VoATSk0
見たところ2年以上放置状態みたいだね
232191:2012/11/24(土) 20:08:19.46 ID: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名無しさん@お腹いっぱい。:2012/11/25(日) 02:02:30.72 ID:y6mFATtO0
あ、CREATE文こけてるのか。 CREATE OR REPLACE TABLE じゃなく CREATE TABLE なら通るかと。
234名無しさん@お腹いっぱい。:2012/11/25(日) 10:54:26.26 ID:EGkyS6++0
>>233
なるほど確かにそこでひっかかっていました!
どうもありがとうございました。
235名無しさん@お腹いっぱい。:2012/11/25(日) 22:58:31.21 ID:cFTU4TYY0
お尋ねします。
テキスト内の指定した文字列を削除って出来ますか?
236名無しさん@お腹いっぱい。:2012/11/25(日) 23:33:40.64 ID:b/zpkvOu0
出来ます
237名無しさん@お腹いっぱい。:2012/11/25(日) 23:38:50.02 ID:cFTU4TYY0
自己解決しましたどうも
238名無しさん@お腹いっぱい。:2012/11/26(月) 15:12:09.27 ID:hba7EFjV0
聞きたいんですけど、ALT+TABでタスク切り替えした時に
起動中の指定したアプリのアイコンとアプリ名を表示させない事は出来ますかね?
239名無しさん@お腹いっぱい。:2012/11/26(月) 16:47:09.14 ID:hba7EFjV0
WinSet, ExStyle, 0x00000080, ahk_class hoge
これで出来たみたい
240名無しさん@お腹いっぱい。:2012/11/27(火) 20:58:37.21 ID:q++3ycrV0
PCゲームをプレイしていると、ひらがながONになるようなキーを押していないのに
勝手にIMEがONになってしまい、それでキーを押したときの入力不可のエラー音がうっとしいです。

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

PCゲームとは、SteamのTF2とかL4Dです。win7でAtok使ってます。教えてください。
241名無しさん@お腹いっぱい。:2012/11/27(火) 22:21:44.39 ID:e3UTlhPA0
ime.ahkを使って100ms毎にloopを使って監視をする
こんなもんでどうだろう?
242名無しさん@お腹いっぱい。:2012/11/27(火) 22:23:16.58 ID:m0WJWtsW0
質問するときは最低限敬語ぐらい使ったらどうなんだろうと思ったり・・・。
243名無しさん@お腹いっぱい。:2012/11/27(火) 22:31:44.74 ID:0Irg8li20
丁寧語使ってるだけまだマシ
244名無しさん@お腹いっぱい。:2012/11/27(火) 22:32:19.32 ID:0Irg8li20
丁寧語は敬語の一種だった、失礼
245名無しさん@お腹いっぱい。:2012/11/27(火) 22:36:23.39 ID:fFId9oSn0
>>242
え?
一体どのレスが気になったんだか分からない
どんだけお上品な育ちなの
246名無しさん@お腹いっぱい。:2012/11/27(火) 22:46:01.39 ID:wmAXoye+0
何も感じないってのもどうかと思うが、目くじら立てるほどのことでもないな。
247名無しさん@お腹いっぱい。:2012/11/27(火) 22:50:58.43 ID:m0WJWtsW0
そうなんだよね、ちょっと濁して言って見たらこんなに反応するなんて・・・荒れちゃってごめんなさい。
248名無しさん@お腹いっぱい。:2012/11/27(火) 23:13:29.21 ID:bLzJBz+30
感じが悪いレスだと無視&淘汰されてちょうどよい感じになってるのが当スレ
249名無しさん@お腹いっぱい。:2012/11/27(火) 23:16:47.03 ID:fFId9oSn0
みんな丁寧語で質問してるしきちんと回答も付いてる超優良スレだろ
つまり>>242を華麗にスルーすれば良かったってことか、正直すまんかったな
250名無しさん@お腹いっぱい。:2012/11/27(火) 23:20:31.97 ID:m0WJWtsW0
>>248
了解
251名無しさん@お腹いっぱい。:2012/11/27(火) 23:27:20.57 ID:0Irg8li20
確かにここは俺の巡回スレの中でもラム酒スレの次に穏やかな良スレ
252名無しさん@お腹いっぱい。:2012/11/27(火) 23:35:08.13 ID:ef0W8O4v0
敬語であろうがなかろうがクレクレや努力の匂いのしない教えて君はぶっ叩くがね
それはそうと敬語使ってない質問ってどれ? まじでわからん
253名無しさん@お腹いっぱい。:2012/11/28(水) 05:41:54.38 ID:IzSTTbOH0
途中まで頑張りましたがここがわかりません っていう調べた努力が認められると、
丁寧にサポート&添削、あるいは完璧に動作するスクリプトを提示してくれる。
動いたって報告があがり、添削してあげる側も気持ちがよい。

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

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

一見おとなしいが、雑に乗ると簡単に振り落とされる、乗馬のようなスレ。
254名無しさん@お腹いっぱい。:2012/11/28(水) 10:05:50.31 ID:iNPLQKUO0
あるプロセスのメモリをアドレス指定して監視させ、値が変わったらキーボードで文字入力するスクリプトを組みたいのですが、、、
途中まで頑張ったのですがわからなくなってしまいました・・・
13歳JCです…。熱でてるけど、がんばってます・・・だれか優しく教えてしてください・・
255名無しさん@お腹いっぱい。:2012/11/28(水) 11:04:06.37 ID:cVyoMyha0
とりあえずソースup
256名無しさん@お腹いっぱい。:2012/11/28(水) 12:24:36.66 ID:Uyrp9I320
服を脱ぎます
257名無しさん@お腹いっぱい。:2012/11/28(水) 19:31:55.79 ID:QHbDJAQV0
そしてネギを咥えます。
258名無しさん@お腹いっぱい。:2012/11/28(水) 20:50:08.67 ID:MUHhhJET0
13歳JCで「プロセスのメモリをアドレス指定して監視させ、値が変わったらキーボードで文字入力するスクリプト」
とか言っちゃうような並はずれた興味関心の持ち主なら、こんなところでそんな気弱な質問をするはずがないです
259名無しさん@お腹いっぱい。:2012/11/28(水) 23:44:34.28 ID: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名無しさん@お腹いっぱい。:2012/11/29(木) 00:27:46.89 ID:lmpPXJEC0
>>259
こうかくとシンプルになるよ
if (IME_Get()= 1) {
261名無しさん@お腹いっぱい。:2012/11/29(木) 09:24:26.98 ID:24IbdzZz0
IME.ahk x64 対応版
http://www6.atwiki.jp/eamat/pages/17.html

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

SetTimer, disable_ime, 100
return

#include c:\IME.ahk
disable_ime:
ifWinActive, 制御したいアプリ
{
if (IME_Get() ) {
IME_SET(0)
}
}
return
264名無しさん@お腹いっぱい。:2012/11/29(木) 20:00:49.22 ID:/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名無しさん@お腹いっぱい。:2012/11/29(木) 23:26:30.47 ID:LwkqFJVo0
>>264
ウィンドにフォーカスがあってアクティブなら確かにそのまま送れるんですけどね…

テストしてるときにパラメータとかをホスト側でメモしたり管理したりすることが必要なので、
できればノンアクティブ状態でやろうと思ってました。
複数の窓を開いて作業をすることも多いもので…
私も以前ControlSendで試してみたのですが、同じようなコードでした
やはりだめなのでしょうか…
266名無しさん@お腹いっぱい。:2012/11/30(金) 00:32:06.73 ID:n3V6HQZX0
>>265 うーん、斜め上すぎるけどVMWareのAndroidにIP割り当ててVNC Server 立ち上げておいて
制御用PC(VMWareのホストOSじゃなくてもいい) のVNC ViewerのウィンドウをAHKで制御するというのはどうだろ・・ネットワーク繋げないなら意味ないけど・・
(参考)
ttp://www.youtube.com/watch?v=ItZX2ZjDSnc

 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名無しさん@お腹いっぱい。:2012/11/30(金) 00:33:07.45 ID:n3V6HQZX0
貼り間違え・・× ControlSendRaw ○ ControlSend
268名無しさん@お腹いっぱい。:2012/12/01(土) 16:28:04.58 ID:Z9OEPpN70
>自動置換型の場合、終了文字は置換後のテキストが入力されたあとに入力される。(Enterキー以外)

って解説サイトにあったんだけど、Enterも入力されるみたいなんだ俺だけ?
Oオプションで無効化できるけど(AutoHotkey v1.1.09 Win7、Vista)
269名無しさん@お腹いっぱい。:2012/12/01(土) 16:50:43.40 ID:Z9OEPpN70
ごめん重ねてもう1つ

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

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

@hogesage → hogesage
Ahoge sage → hoge さげ

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

@になるようにしたいんだけど解決方法知ってる方いませんか
270名無しさん@お腹いっぱい。:2012/12/01(土) 17:26:49.09 ID:bBgiZGCl0
>>266
やはりVNCなどを使う手になりますか…
実はすでに何種類かVNCServer系のアプリで試してみたのですが、
まずServerを確立することができず、別のアプリ(Remote Web Desktopやらandroidscreencast)
を試してみたのですが、うまくいかず…
ここまでくるとこのスレに適さずAndroidスレにて相談ということになりそうですね…
ですがVNCでコントロールができる事がわかっただけでもよかったです、ありがとうございます
271名無しさん@お腹いっぱい。:2012/12/01(土) 18:39:58.67 ID: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名無しさん@お腹いっぱい。:2012/12/01(土) 18:45:21.84 ID:jdwJbiMr0
>>271 まちがい * (asterisk): An ending character (e.g. space, period, or enter) is not required to trigger the hotstring. For example: って書いてた
273名無しさん@お腹いっぱい。:2012/12/02(日) 00:39:51.96 ID:UvTpoJDV0
>>271
*だとだめだったけど?で行けた!ありがとう!
?は単語の途中であっても発動する、ってオプションらしい
hogesageがhoge+sageじゃなくて"hogesage"っていう一単語として認識されてたのかな?
たぶん英語環境だとI am catみたいに半角スペースが入るのがデフォだからかな

あとよく考えたら>>269でIMEが日本語の時に問題ないのって
変換確定でエンター押してたからだとよな・・・
274名無しさん@お腹いっぱい。:2012/12/02(日) 07:06:45.89 ID:FaNwn2zp0
ホットストリングの件

マニュアル熟読すれば設定と挙動の違いは書いてあるよ
275名無しさん@お腹いっぱい。:2012/12/06(木) 01:21:54.81 ID:u4QwuOFw0
流行らせるページの使用例のとこ見て#l::send,{right}ってしたら連打したときにログオフされてしまいます
SetKeyDelayっていうのを利用すればいいんでしょうか?
276名無しさん@お腹いっぱい。:2012/12/06(木) 01:27:38.40 ID:u4QwuOFw0
あ、AHK_L Unicode x86使ってます
Vista 32bitです
277名無しさん@お腹いっぱい。:2012/12/06(木) 18:36:18.15 ID:btTFsgdy0
使われていないツールチップの番号を取得する事は可能でしょうか?
278名無しさん@お腹いっぱい。:2012/12/06(木) 19:24:32.28 ID:t7vEfWmb0
これはもう開発終了や閉鎖をしてしまった?
公式に繋がらないんだけど、AutoHotkey_Lをダウンロードできる所は他にないかな?
279名無しさん@お腹いっぱい。:2012/12/06(木) 19:33:14.11 ID:yJYmL7gO0
280名無しさん@お腹いっぱい。:2012/12/06(木) 22:13:52.95 ID:UwBXT0mT0
281名無しさん@お腹いっぱい。:2012/12/06(木) 23:28:10.49 ID:t7vEfWmb0
>>279-280
ありがとう、今試したら公式直ってた。一時的だったみたいね。
282名無しさん@お腹いっぱい。:2012/12/07(金) 07:49:54.18 ID:A4sdo2Hr0
ControlSend,,{Right},無題 - メモ帳 ahk_class Notepad
ControlSend,,{Rigth},ahk_class WindowsForms10.Window.8.app.0.378734a

上はうまく行って下はうまく行かない理由は何が考えられますか?
下はTypictという.NETアプリなんですが…
283名無しさん@お腹いっぱい。:2012/12/07(金) 08:52:45.21 ID:F5Rm6Xzq0
送り先のControlを省略してるから
・ClassNN調べて指定で試してみる
・ダメならControlGetでHwnd取得して ControlSend,,{Rigth},ahk_id %ControlHwnd%
284名無しさん@お腹いっぱい。:2012/12/07(金) 22:39:10.96 ID:GXTNVcK80
質問です
・無変換キーとwでoになる
 vk1Dsc07B & w::Send,{o}
・ctrl押してからの無変換とwで^oにしたい
 ctrl & vk1Dsc07B & q::Send,{^o}
だと思ったように動かない員ですけどどうしたらいいいでしょうか
285名無しさん@お腹いっぱい。:2012/12/07(金) 22:43:46.66 ID:R4RXrBln0
{}要らないんじゃないかなーと思った。夏
286名無しさん@お腹いっぱい。:2012/12/07(金) 22:49:29.46 ID:rdwDMcg70
vk1Dsc07B & q::
  if GetKeyState("Ctrl", "P")
    Send, ^o
  return

Ctrlが押されているかで分岐すればいい。
287名無しさん@お腹いっぱい。:2012/12/08(土) 01:07:30.72 ID:MYHmYPvz0
ありがとうございます。if文はこう使うのですね

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

こんな感じで左手だけで操作できるようになれました。
288名無しさん@お腹いっぱい。:2012/12/10(月) 20:12:15.31 ID:HtyKyE5p0
vimみたいに↓キーとかPgDnキーとかの前に42とか打つと42回それぞれを繰り返してくれるように出来ませんか?
289名無しさん@お腹いっぱい。:2012/12/10(月) 20:21:17.56 ID:M1uj4cRV0
モードありなら、数字じゃなくなるまでキーを受け取って
それを数に変換して最後のキーを繰り返す
しか思いつかなかった
モードなしだと使いづらそう
290名無しさん@お腹いっぱい。:2012/12/10(月) 23:38:53.16 ID:HtyKyE5p0
モードってKeyMapで設定していくんですかね
その方向で頑張ってみます
291名無しさん@お腹いっぱい。:2012/12/11(火) 20:33:32.07 ID:Bx7Eu8DN0
ブラウザで特定のサイトでだけ中クリックの挙動を変えたいんです

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

でできると思うんですけど、
中クリックだけにそのまま本来の機能をしてほしいページで
いちいちこの挙動(フォーカス)をされたらたまらないので
単純なものをつなぎ合わせた連続作業でなく
直接的にURLを検出する方法ってないですか?
292名無しさん@お腹いっぱい。:2012/12/11(火) 20:47:05.38 ID:s+Ak3LxE0
ブラウザのウインドウタイトルじゃダメなの?
293名無しさん@お腹いっぱい。:2012/12/11(火) 20:51:29.09 ID:Bx7Eu8DN0
はい URLのほうが確実なんです
294名無しさん@お腹いっぱい。:2012/12/11(火) 20:53:50.17 ID:jdSRvNB70
ブラウザ名も書いてないし、ウインドウタイトルで駄目な理由も不明瞭。
295名無しさん@お腹いっぱい。:2012/12/11(火) 20:58:59.23 ID:Bx7Eu8DN0
火狐です

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

AutoHotkey スレッド part15 だったらこのスレでしか効かないような気がするので
296名無しさん@お腹いっぱい。:2012/12/12(水) 12:18:26.96 ID:GPZ0NQwU0
>>295
ウインドウタイトルを正規表現でマッチさせるとか?
FirefoxでURL取得する方法があれば俺も知りたい。
297名無しさん@お腹いっぱい。:2012/12/12(水) 16:39:52.49 ID:EAQHbR/O0
URLを取得するのはAHK単独ならショートカットキー使って
クリップボードに入れるしかないよ

前面にあるウィンドウを出している実行ファイルの
パスを取得することってどうすれば可能だろう?
298名無しさん@お腹いっぱい。:2012/12/12(水) 16:45:28.60 ID:ihA2uz9I0
>>295
customize_titlebar_v2 :: Add-ons for Firefox
https://addons.mozilla.org/ja/firefox/addon/customize_titlebar_v2/
タイトルバーにURLを表示させるアドオンを入れれば取得出来たよ。
ただ、カスタム書式でURLのみの表示にするためには、オプションから選べる{currentURL}ではなく、{currentUrl}と入力しなければならない。
299名無しさん@お腹いっぱい。:2012/12/12(水) 17:04:55.85 ID:6EoMmPbV0
タイトルにURL追加するアドオン作ればいいんじゃないかなとか思ってたらすでにあったのかw

>>297
WinGet, Path, ProcessPath, A
MsgBox, %Path%
こういうこと?
300名無しさん@お腹いっぱい。:2012/12/12(水) 19:00:31.75 ID:EAQHbR/O0
>>299
おお、まさにこれだ
AutoHotkeyJpにはProcessPathがなかったから気づけなかった
ありがとう
301名無しさん@お腹いっぱい。:2012/12/12(水) 19:34:27.35 ID: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名無しさん@お腹いっぱい。:2012/12/12(水) 21:58:29.65 ID: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名無しさん@お腹いっぱい。:2012/12/12(水) 23:21:29.35 ID:KEFRobzt0
>>302
!g::のホットキーラベルにしたら!g42{down}で42回↓キーを繰り返してくれました!ありがとうございますm(_ _)m
ほんとは!g入れなくてもいいと完璧なんですが……

今思いきってサクラエディタとIEをvim風にしてます
とりあえずノーマル・挿入・ビジュアルモードはだいたい出来てますがノーマルモードの時に!g無用の42{down}等が出来るよう頑張ります!
304名無しさん@お腹いっぱい。:2012/12/13(木) 00:08:09.32 ID:Mt0P6aX60
もっと思い切って素VimとFirefox Vimperatorを使ってみてはいかが
305名無しさん@お腹いっぱい。:2012/12/13(木) 00:12:07.87 ID: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名無しさん@お腹いっぱい。:2012/12/13(木) 01:13:28.01 ID:xbsYtvdG0
>>304
それもそうですね。本家vimのバインドも思ってたほど難しくないみたいですし
と言うかそれが最適解?

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

>>305
ありがとうございます、参考になります
307名無しさん@お腹いっぱい。:2012/12/13(木) 02:47:09.74 ID:k0fYsriE0
>>305
これはわかりやすくてシンプルだね
308291:2012/12/13(木) 17:19:09.70 ID:OSm7M/AY0
すみません 冗談のようですがこのタイミングでアク禁くらいました
回答してくださった >>292 >>294 >>296-298 さんありがとうございます
とりあえず教わった方法でやってみたいと思います
309名無しさん@お腹いっぱい。:2012/12/15(土) 13:51:27.31 ID:IrhOIhr10
マウスの戻るボタンおしっぱなしで前のタブへ戻ったり進むボタン押しっぱなしで次のタブに移りたいと思っています
でもマウス拡張ボタンの描き方が調べてもわかりません。ダレか教えてくれませんでしょうか
310名無しさん@お腹いっぱい。:2012/12/15(土) 14:02:16.45 ID:4i9aK6iS0
何のソフトのタブなのかなど情報がまったくないのにどうしろと
311名無しさん@お腹いっぱい。:2012/12/15(土) 14:18:46.36 ID:IrhOIhr10
send,{Ctrl down}{tab}{Ctrl up}っていう条件はできてるんです
x1かx2を押しっぱなしにするっていう条件の書き方がイマイチわからなくて
312名無しさん@お腹いっぱい。:2012/12/15(土) 14:25:58.29 ID:Bwr4YuR40
典型的な条件小出しのパターン
313名無しさん@お腹いっぱい。:2012/12/15(土) 15:05:38.18 ID:B1qTGDNR0
訊かれたら答えるんじゃなく、
最初から「どういう環境で」「何のソフトで」「何がしたくて」「どこまでできてて」「このへんがわからない」
というのをすべて書け
314名無しさん@お腹いっぱい。:2012/12/15(土) 16:00:16.65 ID:Xx/AoYyG0
Runコマンドで、管理者で実行同等の起動方法ってありますか?
315名無しさん@お腹いっぱい。:2012/12/15(土) 19:16:04.95 ID:pwugi7hQ0
>>309
マウスでもキーボードでも大して変化ない
キーボードでのその種のサンプルはいくらでもあるからそれを参考にすればいいのでは

>>314
RunAs, Administrator, pass
ただahkファイルにもろにパスを書くことになって気持ち悪さが残る
他にはAHK自体を管理者権限で実行しておくとか
316名無しさん@お腹いっぱい。:2012/12/15(土) 19:31:10.86 ID:EF02U5+F0
長押し判別のサンプルが欲しいだけってことなら、このスレを「長押し」で検索すればおk
317名無しさん@お腹いっぱい。:2012/12/15(土) 22:07:34.19 ID:oqkPfUtP0
1.1.09.01 - December 15, 2012

Fixed AND/OR following a multi-statement comma, like ((x, y) and z).

Fixed RegExReplace to support duplicate subpattern names correctly.

Fixed Object.Remove() not freeing string keys.

Fixed base.Invoke() to not depend on dynamic variable resolution.
318名無しさん@お腹いっぱい。:2012/12/16(日) 20:52:14.73 ID:vn9LTdLR0
>>315
>>314の件、アドバイス有難うございます
色々と試してみます
319名無しさん@お腹いっぱい。:2012/12/17(月) 00:12:11.95 ID:b24XDeZ00
突っ込まれた後、アンカーつけずに1行〜2行で小出しにする奴は全員クズ
320名無しさん@お腹いっぱい。:2012/12/18(火) 04:16:32.77 ID:qjaGm6vJ0
sprintf ("%02d", $hoge);

これと同じ事をAutoHotkeyでやるにはどう書けばいいんでしょうか?
321名無しさん@お腹いっぱい。:2012/12/18(火) 07:49:06.38 ID:qjaGm6vJ0
自己解決したので取り下げます
322名無しさん@お腹いっぱい。:2012/12/19(水) 09:50:37.90 ID:zhFsWhhx0
同じプロセス名のPIDを全て取得したいです。
https://sites.google.com/site/autohotkeyjp/reference/commands/Process
例4: DllCallを利用して実行中のプロセス一覧を取得し、メッセージボックスに表示する
で、プロセス名と同時にPIDを取得できればと思ったのですがやりかたがわかりません。
申し訳ありませんが教えてください。
323名無しさん@お腹いっぱい。:2012/12/19(水) 10:10:41.32 ID:RVkTFNTP0
PIDを全て取得したあと、なにをしたいのかを書いたほうがよいかと。
324名無しさん@お腹いっぱい。:2012/12/19(水) 11:47:48.52 ID:YYiQqEEv0
>>322
WinGet same_apps, list, ahk_exe notepad.exe
MsgBox % "Count: " same_apps
Loop % same_apps
{
id := same_apps%A_Index%
WinGet pid, pid, ahk_id %id%
MsgBox % "PID: " pid
}
Return
325名無しさん@お腹いっぱい。:2012/12/20(木) 12:34:51.67 ID:r5lNrZ5v0
GUIによってクラス取得できなかったり、テキスト取得できなかったりします。
これては何が原因ですか?
解決策や大体方法ってありますか?
326名無しさん@お腹いっぱい。:2012/12/20(木) 23:07:43.19 ID:6qmVdPLy0
ttp://i.imgur.com/Bbac2.png
StringReplaceとかRegExReplace()とか使おうとするとこのエラーが出るんですがどの文字がイリーガルなんでしょう?

Everything等でコピーしたファイル(群)をだいなファイラーのカレントディレクトリに貼り付けしようとしてるのですがこれが邪魔して先に進めません
一応1ファイルを貼り付けることは出来るようになったのですが複数ファイルとなると改行を半角スペースに置換しなければならないので……

当方AHK_L U32です
327名無しさん@お腹いっぱい。:2012/12/20(木) 23:33:43.20 ID:KnjRzDDQ0
>>326
%Files%のとこ変数を指定するとこだから%で囲んだら「C:\Appsなんたらかんたら」っていう変数だと解釈されるよ

Test = xxxaiueoxxx
xxxaiueoxxx = xxxあいうえおxxx

StringReplace, OutputVar1, Test, xxx,, All
StringReplace, OutputVar2, %Test%, xxx,, All
MsgBox, %OutputVar1%`n%OutputVar2%
328名無しさん@お腹いっぱい。:2012/12/21(金) 00:09:09.27 ID:eYe18/Hi0
>>327
ありがとうございました、お陰様でうまくいきました
329名無しさん@お腹いっぱい。:2012/12/21(金) 10:09:33.57 ID:GUJMRzaC0
>>323
ごめんなさい。
目的を書いたほうがよかったですね。
同じProcessを複数実行したときに監視して1つだけ処理させたかったです。

>>324
できました。
ありがとうございます。
330名無しさん@お腹いっぱい。:2012/12/22(土) 11:08:55.93 ID:/Phr9nK00
開いているフォルダの複製を新しいウィンドウで開く。つまり、同じフォルダを並べて表示させたい。

ttp://www.autohotkey.com/board/topic/60985-get-paths-of-selected-items-in-an-explorer-window/
ここにあるExplorerのフルパスを取得する関数で、複製したいフォルダのパスを拾い、
それを Run コマンドで実行させれば行けると思ったのですが、どうも上手くいきません。

F1::path := Explorer_GetPath()
F2::run,%path%

F1 → F2 :フォルダが開かれない
F1 → フォルダを閉じる → F2 :フォルダは開くが、次にF2を押してもフォルダは開かれない

多分、指定したパスのフォルダが既に存在している場合には、キャンセルされるのだと思います。
どうにかキャンセルを回避する方法はないでしょうか?
331名無しさん@お腹いっぱい。:2012/12/22(土) 11:35:26.37 ID:NwrirQf00
F2::Run, Explorer.exe %path%
とかは?
332330:2012/12/22(土) 11:44:58.66 ID:/Phr9nK00
>>331
出来ました。ありがとうございます。
333名無しさん@お腹いっぱい。:2012/12/23(日) 00:22:09.74 ID:hn0uXkKq0
ttp://muumoo.jp/news/2008/02/27/0ahk.html
ここ見て
sc029::LWin
としてもWinキーを離してくれないんですがどうしたらいいのでしょう
sc029::send,{LWin}
とするとWin+Rとか効かなくなりますよね
334名無しさん@お腹いっぱい。:2012/12/23(日) 01:31:19.43 ID:GfjEdpc/0
Windowsキーの割り当てが変更されるわけではないのでWin+Rとか関係なくね?
sc029::send,{LWin}
これで問題ないと思うんだが?

反応しないならこれでもいいし
sc029::
Send,{LWin Down}
Send,{LWin Up}
Return
335名無しさん@お腹いっぱい。:2012/12/23(日) 01:57:27.76 ID:GfjEdpc/0
sc029+R って意味か失礼
336名無しさん@お腹いっぱい。:2012/12/23(日) 03:22:21.85 ID:GfjEdpc/0
>>333
>>4 他のキーならこれでいけるんだけど駄目かな?

;vk1Dsc07B = 無変換
#UseHook
vk1Dsc07B::
SendInput,{LWin Down}
KeyWait,vk1Dsc07B
SendInput,{LWin Up}
Return
337名無しさん@お腹いっぱい。:2012/12/23(日) 11:22:28.85 ID:hn0uXkKq0
>>334
後者で出来ました
ただDownとUpの間にsend,rとかはさむとまたWinキーを離してくれません
よく分からないので保留しときます
どうもでしたm(_ _)m
338名無しさん@お腹いっぱい。:2012/12/28(金) 03:46:39.98 ID:ESOvoOi40
すみません、前スレでオナニー用片手フルコントロールキーマップについて質問しました777です
なんか>>333さんと同様なんですが、↓のようなのをやるとカタカナひらがなキー(vkF2sc070)を離してくれません
send,{vkF2sc070 Up}を最後に挟んだり>>336さん方式にしたりもしたんですが……
どうにかして離させることは出来ませんか? このままでは捗りません……

vkF2sc070 & k::
 if(keymap=0){
  send,: & k
} else if(keymap=1){
  send,: & k
} else if(keymap=2){
  send,: & k
} else if(keymap=3){
  send,k
}
return

vkF2sc070 & l::
 if(keymap=0){
  send,: & l
} else if(keymap=1){
  send,: & l
} else if(keymap=2){
  send,: & l
} else if(keymap=3){
  send,l
}
return
339名無しさん@お腹いっぱい。:2012/12/28(金) 04:19:44.61 ID:ESOvoOi40
あ、すみません>>4読んでなかった
出直してきます
340名無しさん@お腹いっぱい。:2012/12/28(金) 22:00:47.60 ID:+2wcYtZJ0
AとBのフォルダに同名ファイルが存在するときにAのものを削除するってどう書くんでしょ
341名無しさん@お腹いっぱい。:2012/12/28(金) 22:14:24.06 ID:CU6d2p5A0
342名無しさん@お腹いっぱい。:2012/12/30(日) 02:24:52.71 ID:Zc8z910L0
FileAppendでクリップボード内の日本語を含むパスを扱うと日本語が・・になってしまうのですが、回避するにはどうすればいいのでしょう?
32bitのUnicode版なので2バイト文字云々は大丈夫だろうと思ってたんですが……
343名無しさん@お腹いっぱい。:2012/12/30(日) 02:43:03.48 ID:l6Rrm5Z20
344名無しさん@お腹いっぱい。:2012/12/30(日) 03:08:08.76 ID:Zc8z910L0
最後に, UTF-8ってつければいいとAutoHotkeyJPに書いてありました
流行らせるページしか見てなかった……
345名無しさん@お腹いっぱい。:2012/12/30(日) 23:16:09.24 ID:sq1B8EyW0
特定のウィンドウがアクティブな時にどれか(不特定)のキーを入力したら指定したウィンドウをアクティブにする
という動作をさせる方法ってありますか?
346名無しさん@お腹いっぱい。:2012/12/31(月) 00:11:34.39 ID:/x88YbXJ0
#IfWInActiveつかって
面倒くさがらずに、全部のキー列挙するだけ
347名無しさん@お腹いっぱい。:2013/01/01(火) 01:23:54.68 ID:pBjx41bK0
どのキーに何を割り当てるか悩みまくった一年だった……
348名無しさん@お腹いっぱい。:2013/01/01(火) 03:42:06.90 ID:bq282g/M0
あまりにスクリプトが増えて一つのキーじゃなしにストロークに割り当ててる
ランチャーソフトfenrirを「AutoHotkeyスクリプトランチャー」にしてそこからコマンド入力して機能にアクセスしてる
349名無しさん@お腹いっぱい。:2013/01/01(火) 15:10:47.50 ID:jV4UHTQA0
Error1,2,3のタイトルのダイアログがアクティブになったら"キャンセル"を押させたいのですがうまく動きません。
一応、下のように作ってみたのですが起動させようとしても一向にAHKが反応してくれません。
反応しないとはタスクバーにHマークが出てこないと言う意味です。
間違っている点があれば教えて下さい。

#IfWinActive Error1 ahk_class #32770
ControlClick キャンセル, Error1 ahk_class #32770
return
#IfWinActive

#IfWinActive Error2 ahk_class #32770
ControlClick キャンセル, Error2 ahk_class #32770
return
#IfWinActive

#IfWinActive Error3 ahk_class #32770
ControlClick キャンセル, Error3 ahk_class #32770
return
#IfWinActive
350名無しさん@お腹いっぱい。:2013/01/01(火) 17:50:15.33 ID:cXUJFGA80
#If系はホットキーを定義する際に用います
通常の実行制御の場合はIfWinActiveを使用します

いつ出るか分からないようなものを対象とするなら
自分でタイマーなりループを回して常に監視しておく必要があります
351名無しさん@お腹いっぱい。:2013/01/01(火) 18:01:03.38 ID:70JJzZ9L0
間違えだらけ、修正というか書き直しになるなw
とりあえずリファレンス全部読んでから書いた方がいいぞ・・・。
ttps://sites.google.com/site/autohotkeyjp/
352名無しさん@お腹いっぱい。:2013/01/01(火) 18:13:30.51 ID:kYJIQPUQ0
そこアルファベット順がないのが不便すぎて使えないんだよな
いつも流行らせるページ使ってるわ
353名無しさん@お腹いっぱい。:2013/01/01(火) 18:20:47.50 ID:70JJzZ9L0
354名無しさん@お腹いっぱい。:2013/01/01(火) 18:28:18.82 ID:kYJIQPUQ0
どこクリックすればそんなページ出るんだ?

いずれにしても初心者にはコマンドの種別なんてできないし
ググったあとに詳細調べるから全部あわせてアルファベット順になってくれてないと不便なんだよ
355名無しさん@お腹いっぱい。:2013/01/01(火) 18:31:19.92 ID:zefJ5iik0
>>353
一覧表示って出来たのか…
さっそくブックマークに登録したw
356名無しさん@お腹いっぱい。:2013/01/01(火) 18:34:30.31 ID:70JJzZ9L0
どこのページも更新止まっちまったからなー
いっそのことWIKI作ったほうがいいんだろうけど
下地用にコマンド解説内容、丸々コピーすると怒られるよね?w
357名無しさん@お腹いっぱい。:2013/01/01(火) 19:43:04.70 ID:TjuImFJt0
流行らせるページ作者に確認すりゃええんでない。
358名無しさん@お腹いっぱい。:2013/01/01(火) 19:45:40.37 ID:jV4UHTQA0
>350-351
ありがと
SetTimerで思った事ができそう
359名無しさん@お腹いっぱい。:2013/01/01(火) 20:01:23.58 ID:FpvIk0CP0
公式のDocumentationだけで十分だろ
360名無しさん@お腹いっぱい。:2013/01/01(火) 20:03:05.83 ID:zefJ5iik0
英語が読めたらなぁ…
361名無しさん@お腹いっぱい。:2013/01/02(水) 13:09:28.25 ID:rzgozGmn0
苦手意識から読めないと思ってるだけで
技術文書だと簡単な表現しか使われてないから
高校さえ出てれば専門用語を辞書検索してだいたい読めるはず
362名無しさん@お腹いっぱい。:2013/01/02(水) 14:27:29.04 ID:N0xSBjEb0
いちいち専門用語を辞書検索に反感して言うわけじゃないが
Wiki作るのは賛成。
だが協力はしない
363名無しさん@お腹いっぱい。:2013/01/02(水) 14:55:02.43 ID:fl2FwUZF0
だって役に立たないもんな>>362
364名無しさん@お腹いっぱい。:2013/01/02(水) 21:33:29.46 ID:mpzqLcH10
英語は読み込めば理解できるものでもパっと見で概略つかめないんだよね
辞書引いた直後には意味が分かっても次に見たときにまた読解が必要てのは自分はしんどいな

コマンド解説やヘルプってそれそのものが辞典みたいなもんで
ちょっと確認したいときでも何度も読み返すから未だに古い日本語ヘルプ使ってるわ
ヘルプましんのchm編集すっげめんどくさかったけど
365名無しさん@お腹いっぱい。:2013/01/03(木) 00:00:15.18 ID:BSPLfxPq0
ClipWaitが効かないんですがなにか関係するコマンドありますか?
おかげで古いクリップボードの中身が使われてしまいます……
366名無しさん@お腹いっぱい。:2013/01/03(木) 00:02:12.86 ID:hInERZ8J0
367名無しさん@お腹いっぱい。:2013/01/03(木) 00:29:23.96 ID:EJqdcX/f0
めんどくさいときは>>14
便利だなぁ
368名無しさん@お腹いっぱい。:2013/01/03(木) 00:40:55.22 ID:xjG1EXYz0
そりゃ既にテキストとして読み取れる内容がクリップボードに入ってりゃclipwait意味ないでしょ
クリップボードをクリアしておくとかなんかしないと
まあとりあえず>>14
369名無しさん@お腹いっぱい。:2013/01/03(木) 02:07:30.49 ID:YSRUBcxW0
お前ら意地悪だなw コード出させる間でもなく原因わかってんじゃんか

>>365
clipwaitは「クリップボードの中身が変わるまで」ではなく、
「クリップボードが空じゃなくなるまで」の判定
なので>368のいうように実行前にクリップボードをクリアしておくなどの処理が必要
370名無しさん@お腹いっぱい。:2013/01/03(木) 02:50:33.30 ID:tjlDRf0G0
Clipboardの使い方なんてほとんど定型なのに
わざわざ動かないコード書かせてどんなエレガントな添削をするつもりなんだろ
371名無しさん@お腹いっぱい。:2013/01/03(木) 04:44:35.77 ID:HCJOs8v60
14へ行け
372名無しさん@お腹いっぱい。:2013/01/03(木) 05:33:24.81 ID:V9vm+ogp0
流行らせるページのタスクトレイアイコン操作のスクリプトを使ってみたのですが、
Tray_GetInfoは格納される変数が全て0になってしまい、Tray_GetTextは文字化けしてしまうと言うか
何かバグが起こっているようで使う事が出来ません
Win32API等を呼び出せば出来るようデスガ1時間程格闘した結果ぼくにはちんぷんかんぷんです
環境はWindows764Bit、AutoHotkeyU64です
以下コードと画像です、もうほんとどうかお助けくだしい・・・

ttp://gazo.shitao.info/r/i/20130103053227_000.jpg

DetectHiddenWindows,On
var:=Tray_GetCount()
msgbox %var%

loop %var%
{
idx=%A_index%
Tray_GetInfo(%idx%,hwnd,uid,msg,hicon)
msgbox %idx%`nhwnd %hwnd%`nuid %uid%`nmsg %msg%`nhicon %hicon%
}

loop %var%
{
idx=%A_index%
text:=Tray_GetText(%idx%)
msgbox %idx%`n%text%
}
以下関数
373名無しさん@お腹いっぱい。:2013/01/03(木) 07:27:25.04 ID:L9uEbYea0
あそこのは、ANSI32bit専用なので、 U64だと動かない
374名無しさん@お腹いっぱい。:2013/01/03(木) 17:45:16.91 ID:kTbspySq0
CopyList.txtがある場合Copyを、MoveList.txtがある場合Moveを実行
その後使用したtxtを削除

ってのを↓以上に確実かつシンプルにやる方法ってありますか?
ちなみに両txtがどちらも存在しないことはあっても同時に存在することはありません
あと*CopyList.txtの*はTeraCopyの仕様です

RunWait, C:\Soft\TeraCopy\TeraCopy.exe Copy *CopyList.txt "%DestDir%"
If ErrorLevel <> 0
RunWait, C:\Soft\TeraCopy\TeraCopy.exe Move *MoveList.txt "%DestDir%"
FileDelete, *List.txt
375名無しさん@お腹いっぱい。:2013/01/03(木) 18:21:34.92 ID:0uvjJEtd0
Loop, *List.txt
  MsgBox, %A_LoopFileName%
FileDelete, *List.txt

下手に省略するより、普通にIfExist・Elseを使って書いた方が分かりやすくていいと思うけど
376名無しさん@お腹いっぱい。:2013/01/03(木) 21:03:23.69 ID:kTbspySq0
となるとこうなりますかね

IfExist, CopyList.txt {
RunWait, C:\Soft\TeraCopy\TeraCopy.exe Copy *CopyList.txt "%DestDir%"
} else IfExist, MoveList.txt {
RunWait, C:\Soft\TeraCopy\TeraCopy.exe Move *MoveList.txt "%DestDir%"
}
FileDelete, *List.txt
return
377名無しさん@お腹いっぱい。:2013/01/03(木) 23:32:39.09 ID:kTbspySq0
あー、なんかもうよくわかんね
動いたけど結局長ったらしくなっちまった

IfExist, CopyList.txt
{
RunWait, C:\〜\TeraCopy.exe Copy *CopyList.txt "%DestDir%" /Close
FileDelete, *List.txt
}
elseIfExist, MoveList.txt
{
RunWait, C:\〜\TeraCopy.exe Move *MoveList.txt "%DestDir%" /Close
FileDelete, *List.txt
}
return

>>375
すいませんが全く意味わかりません
378名無しさん@お腹いっぱい。:2013/01/04(金) 02:48:54.63 ID:0YGLKXSy0
動くコードの最適化依頼した挙句、ほんの3行のコードも調べず音を上げるのかよ
MsgBoxのとこを RunWaitに変えりゃいいだけだろ
379名無しさん@お腹いっぱい。:2013/01/04(金) 03:25:30.30 ID:A5kTD1It0
Copy *CopyList.txtとMove *MoveList.txtだからLoopだけじゃ無理じゃね?
380名無しさん@お腹いっぱい。:2013/01/04(金) 07:11:22.35 ID:33nOpJs60
XPsp3→Win7sp1x64に移行中なんだけど、スクリプトコントロール使おうとするとエラー起きた。

oSC := ComObjCreate("ScriptControl")
------------------------------------------
Error: 0x80040154 - クラスが登録されていません

WSHからCreateObject出来たし、ScriptControlが使えるのは確認済み。
他のオブジェクト、ComObjCreate("Scripting.FileSystemObject") は動いたりする。
検索しても同類の問題は見当たらないんだけど、何が問題か分かります?
381名無しさん@お腹いっぱい。:2013/01/04(金) 07:54:50.98 ID:33nOpJs60
失礼、32bit版入れたら通った
382375:2013/01/04(金) 09:06:57.50 ID:ksDudQWz0
>>379
あ、見落としてたわw
StringLeft入れんといかんね

>>377、すまん
383名無しさん@お腹いっぱい。:2013/01/05(土) 23:33:00.72 ID:0Ive1sK/0
ロジクールのM500かG500でAutohotkey使ってる人いますか?
このマウスのボタンがすべてAHKで使えるか知りたいんですが。
バッファローのダメマウスでAHKが使えなくてこりたんでロジクールのマウス購入を検討しているんですが。
384名無しさん@お腹いっぱい。:2013/01/06(日) 00:00:40.91 ID:3IX22dlM0
すべては無理。AHK で扱えるのは、
LButton - 左クリック
RButton - 右クリック
MButton - ミドルクリック
XButton1 - G500 なら、おそらくサイドボタン
XButton2 - G500 なら、おそらくサイドボタン
こんだけ。その他のボタンは、付属のソフトウェア(SetPoint とか)で、 たとえば F13 とかに割り当てれば、AHK でも扱えるようになる
385名無しさん@お腹いっぱい。:2013/01/06(日) 00:05:32.73 ID:DNT4s2++0
>>383
MMOとかするならあと2個ほどボタンが多いG700選ぶと快適かも?
386名無しさん@お腹いっぱい。:2013/01/06(日) 00:10:49.50 ID:E2zJ0k7i0
>>384
なるほど。設定次第でなんとかいけるんですね。
あとチルトはそのままで割り当て無理ですか?
今使ってるエレコムのチルトホイールつきはWheel left rightでいけてますが。

>>385
ワイヤレスが嫌なんですよね。
387名無しさん@お腹いっぱい。:2013/01/06(日) 00:17:09.00 ID:acxHTDJU0
チルトは大丈夫でしょ。
388名無しさん@お腹いっぱい。:2013/01/06(日) 00:17:54.45 ID:DNT4s2++0
G700無線糞燃費だからオプションのケーブル使って有線で使うのが普通になってる。
389名無しさん@お腹いっぱい。:2013/01/06(日) 00:30:23.07 ID:E2zJ0k7i0
>>387
そうですか。なら問題無いです。

>>388
オプションケーブルなんてあるんですね。昔のワイヤレスマウスはそういうのなかったんですよね。

やっぱりG500買います。After Effectsの編集作業にボタンがたくさんあると便利なんですおね。
どうもでした。
390名無しさん@お腹いっぱい。:2013/01/06(日) 00:53:23.35 ID:4x+ZQI1P0
M950なんかは付属のケーブル繋げば充電もしてくれる
他はよう知らんが
391名無しさん@お腹いっぱい。:2013/01/06(日) 01:13:45.54 ID:o5bzjvvw0
G700も付属のケーブルを接続すれば
電池を抜いても有線マウスとして使える
でも、付属ケーブルが糞固い
392名無しさん@お腹いっぱい。:2013/01/06(日) 01:52:42.06 ID:gtsU4eIo0
G700はUSBケーブル別途買い足しがデフォ
電池はだいたい一日ももたない
393名無しさん@お腹いっぱい。:2013/01/06(日) 13:43:58.93 ID:yGJH9Ppz0
MX620の、ホイール押し下げのMButtonと、左上にある検索キーに「F15」を割り当てて、
F15をフックにしてahkでアプリごとの小技サブメニューを出す環境を作った。

http://ec2.images-amazon.com/images/I/41bgD5gMtOL._SL500_AA300_.jpg

左指をちょっと外側に出すだけで押せて、かなり快適だった。
マウスがぼろくなって代わりを探したら、こういう単独のボタンが付いた後継が
ほぼ無く、MButtonまでも廃止されたモデルが多くて泣いた・・・

MButtonが無くなった原因は、ホイールのカチカチとヌルヌルを
ホイールを押し下げるごとにトグルで切り替える物理スイッチに変わったため。
こんなの、めったに変えるもんじゃないから底面でいいんじゃないだろうか。

結局、ぼろいのを修理しながら使い続けてるけど、そろそろ限界、困ってる。
394名無しさん@お腹いっぱい。:2013/01/06(日) 15:13:05.88 ID:gtsU4eIo0
>>393
> こんなの、めったに変えるもんじゃないから

えー、専ブラとか画像ビューワとかで結構しょっちゅう切り替えてるわ
395名無しさん@お腹いっぱい。:2013/01/06(日) 15:16:30.70 ID:DNT4s2++0
>>393
MButton = 中ボタン (ホイールクリック) が無いマウスなんてほとんど無いだろ?
左クリック横にボタンがあるマウスも大量にあるのに何言ってんだ?

マウス探しはこっち行け↓
[マウス]入力装置ForPCActionGamer[キーボード]80
http://kohada.2ch.net/test/read.cgi/gamef/1356934817/
396名無しさん@お腹いっぱい。:2013/01/06(日) 16:02:04.59 ID:yGJH9Ppz0
MButtonが廃止されてるのがあるから困ってるわけで。

>左クリック横にボタンがあるマウスも大量にあるのに何言ってんだ?

ボタンが小さかったり、複数あって+と−などで結局どっちも使いにくかったり、
ストロークの少なく硬いタクトスイッチだったりと散々、
少なくともあんたがスレみてホイっと探せるような代替は1つも無いよ。
397名無しさん@お腹いっぱい。:2013/01/06(日) 16:23:37.10 ID:bA7gOZ9Y0
なんでマウススレになってんの?
398名無しさん@お腹いっぱい。:2013/01/06(日) 18:57:41.72 ID:dZFpz0Hj0
>>396
条件後出しでドヤ顔されても・・・
399名無しさん@お腹いっぱい。:2013/01/07(月) 03:51:18.32 ID:6DMuFXPq0
ハード板にありがちな流れになってるな
400名無しさん@お腹いっぱい。:2013/01/07(月) 10:31:06.45 ID:TebtyZoA0
ブラウザのパスワードボックスに入力したパスワードをAutoHotKeyで取得できたりするものでしょうか?
401名無しさん@お腹いっぱい。:2013/01/07(月) 11:17:16.93 ID:eYTAVTDo0
どういう用途?
402名無しさん@お腹いっぱい。:2013/01/07(月) 17:03:30.12 ID:aOc8GPvh0
聞いてやるなよw
403名無しさん@お腹いっぱい。:2013/01/08(火) 06:00:49.87 ID:6A/2qc/s0
Send, !d^a{Delete}
SendRaw, javascript:alert(document.getElementById('hoge').value)
Send, {Enter}

とかやって、WinGetTextするとか


COM使うほうがずっと楽だけど
404名無しさん@お腹いっぱい。:2013/01/08(火) 09:04:41.55 ID:kR6F7W7e0
Devasの検索結果画面についてお知恵をお貸しください

ttp://i.imgur.com/OFhI2.jpeg
点線で囲まれた(キーのフォーカスがある)部分をキーボードでダブルクリックしたいのですが、そこを指定するにはどうしたらいいのでしょう
マウスカーソルが乗ってる訳じゃないからMouseGetPosは無理ですし、ControlGetPos、ControlGetFocusも開きたい行と他の行の区別がつきませんし……

何か手は無いものでしょうか?
指定さえ出来ればClick系でClick, L, X, Y, 2とかでいいと思うのですが
当方の環境はVista32bit AHK_L U32です
なるべく条件後出しになりたくないので、お伝えすべきことがありましたらお教えください
405名無しさん@お腹いっぱい。:2013/01/08(火) 09:38:33.89 ID:GFUrcN8h0
横だけどComObjCreate("ScriptControl")便利だな
COM使えるの知らなくてahk人生の9割損してたぜ
406名無しさん@お腹いっぱい。:2013/01/08(火) 22:21:17.91 ID:jnlj4ooE0
一つ前にアクティブだったウィンドウってどう取得すれば良いですか?
407名無しさん@お腹いっぱい。:2013/01/09(水) 00:28:14.82 ID:2G0WvnjB0
OnClipboardChange中でClipboard書き換えると
その書き換えで再度OnClipboardChangeが呼ばれるみたいなんだけど、どうしたらいいですか?
Jpにはそんなことならないって書いてあるけど、なってる
408名無しさん@お腹いっぱい。:2013/01/09(水) 00:57:06.23 ID:R+kZRtZH0
>>407 マニュアルにはすぐには呼ばれないからディレイいててね?って書いてた

If the script itself changes the clipboard, its OnClipboardChange label is typically not executed immediately;
that is, commands immediately below the command that changed the clipboard are likely to execute beforehand.

To force the label to execute immediately, use a short delay such as Sleep 20 after changing the clipboard.

;#Persistent
;return

; OnClipboardChange:
; ToolTip Clipboard data type: %A_EventInfo% %Clipboard%
; Clipboard := Clipboard . "-test"
; Sleep 50 ;0〜20msecとかだとうまくいきませんでした。
; ToolTip ; Turn off the tip.
; return
409名無しさん@お腹いっぱい。:2013/01/09(水) 01:25:08.06 ID:R+kZRtZH0
>>406 0.1秒周期でアクティブだったウィンドウを2代監視※ するというのは?
テストでAlt+F1を押したら前のに切り替る。

※重くてよろしくないので 多分ウィンドウの切り替えを監視するもっといい方法がmsdnとかにあるはず・・イベントとかフックとか

#Persistent
SetTimer, timer_get_prev_win, 100
return

timer_get_prev_win:
WinGet, hWnd, ID , A
if (hWnd_current != hWnd) {
ToolTip, %hWnd%, 100, 100, 1
hWnd_old := hWnd_current
hWnd_current := hWnd
} else {
ToolTip, , , , 1
}
return

; テスト
!F1::
WinActivate, ahk_id %hWnd_old%
return
410名無しさん@お腹いっぱい。:2013/01/09(水) 01:38:56.58 ID:2G0WvnjB0
>>408
ありがとう。Sleep30ぐらいから平気な感じでした。
411名無しさん@お腹いっぱい。:2013/01/09(水) 02:54:00.11 ID:R+kZRtZH0
>>404 試してないし外してるかもしれませんが
GetScrollInfo を呼んで現在の位置nPosを取ってる例がありました。

[AHK_L] ScrollInfo - Scripts - AutoHotkey Community
ttp://www.autohotkey.com/board/topic/78829-ahk-l-scrollinfo/
412名無しさん@お腹いっぱい。:2013/01/09(水) 16:45:02.79 ID:BHx0M9O20
>>409
おぉ!ありがとうございます
他にも色々と調べてみます
413名無しさん@お腹いっぱい。:2013/01/09(水) 18:23:25.91 ID:++qgaWBh0
>>411はナシで 試したらスクロール位置の情報しか取れなかった。

選択しているIndexを取得するにはControlGetのChoiceで試すか、
ControlGetのマニュアルにある、コントロールにKB_GETCURSELなんかを送ってみるといいのかな・・現在Devasじゃなくても どれも動かず・・・。

F1::
; (1) × 過去ログPart7によると文字列が取れるらしいけど何も取れず
ControlGet, _nChoice, Choice, , TScrollBox1, ahk_class TfrmResult

; (2) ×
SendMessage, KB_GETCURSEL := 0x0188, 0, 0, TScrollBox1, ahk_class TfrmResult
_nPos1 := ErrorLevel + 1 ; 0

; (3) × コントロール指定しても駄目
ControlGet, hWndTBox, HWND, , TScrollBox1, ahk_class TfrmResult
if (ErrorLevel = 0) {
SendMessage, KB_GETCURSEL := 0x0188, 0, 0, , ahk_id %hWndTBox%
_nPos2 := ErrorLevel + 1 ; 0
}
ListVars
return
414名無しさん@お腹いっぱい。:2013/01/09(水) 18:43:28.47 ID:xZS7MSfU0
ものすごく原始的だけどImageSearchで
↓の画像検索させるとかw
┌───┐
│………│
│………│
└───┘
415名無しさん@お腹いっぱい。:2013/01/09(水) 19:18:33.43 ID:++qgaWBh0
>>414 サクッとうまく行ったw

CoordMode, Pixel, Window
CoordMode, Mouse, Window
Loop, 500
{
winY := 65 + ((A_Index-1) * 16)
; MouseMove, 20, winY
PixelGetColor, pgres, 20, winY
if (pgres != 0xffffff) {
break
}
}
if (pgres = 0) {
cY := winY - 10
pos = x20 y%cY%
Loop, 2
{
;ControlClick, %pos%, A ; うまくいかず
}

MouseGetPos, pX, pY
MouseClick,, 20, cY, 2, 0
MouseMove, pX, pY
}

ControlClickは使い方がよくわからんです・・
416名無しさん@お腹いっぱい。:2013/01/09(水) 20:33:32.02 ID:pAf+NHQ10
>>411
ありがとうございます
GetScrollInfoを調べたところ、私が指定したいところはリストボックスかリストビューと言うらしいと分かりました
それで調べたところ、↓が参考になるのではと感じましたが実際の使い方がよくわかりません……
ttp://www.officepro.jp/excelvbaform/form_combo/index3.html

もしかしたらControlGetでも出来るのかも……?
もちょっとしらぼてみます
417名無しさん@お腹いっぱい。:2013/01/09(水) 23:13:43.03 ID:++qgaWBh0
>>416 ここいらでギブアップですが、Spy++というVC6や2010付属のツールで
コントロールの種類や、クリックなどした時のメッセージが調べられるはずです。

(Spy++でDevasを監視しながら>>413を動かしたところ、全て空振りだった。
またダブルクリック時には実際、"LB_LBUTTONDBLCLK"というメッセージが相対X,Y座標で出されていて、
たとえば>>415のクリック部分は以下で再現可能)

pos := (winY << 16 ) | 20
SendMessage, LB_LBUTTONDBLCLK := 0x0203, 1, pos, TScrollBox1, ahk_class TfrmResult
418名無しさん@お腹いっぱい。:2013/01/09(水) 23:53:15.64 ID:pAf+NHQ10
色々考えていただきありがとうございます
こちらの理解が追い付かず>>413-415を別件と勘違いしてました……

>>415は成功例ということではないのでしょうか?
^oにあてたのですが反応ありません
あとControlGet一つで済むような簡単なことではないんですね……これ
419名無しさん@お腹いっぱい。:2013/01/09(水) 23:56:33.27 ID:truDb6qe0
あれこれ考えるのがめんどいなら>>414の方法でいいんじゃない?
420名無しさん@お腹いっぱい。:2013/01/10(木) 00:00:59.46 ID:sm0Nht9Z0
こんな感じとか
WinGetPos,,, Width, Height, A
ImageSearch, X, Y, 0, 0, Width, Height, %A_ScriptDir%\devas.png
MouseClick, L , X+10, Y+10, 2, 0

devas.pngの見本
ttp://www.dotup.org/uploda/www.dotup.org3827637.png
421名無しさん@お腹いっぱい。:2013/01/10(木) 00:19:38.58 ID:aMhgOgzL0
>>419
面倒というより理解するのにすごく時間がかかります……
今までキーリマップくらいしかしたことなかったので
流行らせるページの力を借りて>>415が何をしているのかはなんとなくわかるのですが、なぜ動かないのかはまったく……

>>420
希望通りに動きました、ありがとうございます!
これは見本を用意して画面の中でそれと一致する部分を探し座標を返す、というものですよね?
こんなスマートな方法があるなんて……
422名無しさん@お腹いっぱい。:2013/01/10(木) 03:38:15.03 ID:XrjVsLb/0
テキストエディタ gpad でautohotkeyのahkファイルを開いたときに
コードで色分けするためのファイルって出回ってないでしょうか?
423名無しさん@お腹いっぱい。:2013/01/10(木) 05:44:32.09 ID:RdtTZQLa0
>>422
別のエディタだけど自力で作った、お前さんもそうしな
424名無しさん@お腹いっぱい。:2013/01/10(木) 16:37:24.00 ID:06feD9Ex0
スレ違いだけど、AutoItスレ落ちたんだな
425名無しさん@お腹いっぱい。:2013/01/10(木) 18:10:32.51 ID:EF3fR0oK0
>>422-423
Extras\Editors\ って今インストーラーに含まれてないんだっけ?
昔はあんなかのSyntax加工すれば強調表示作るの楽だったんだが
426名無しさん@お腹いっぱい。:2013/01/10(木) 18:50:45.27 ID:li1JhGrL0
Lのインストーラーには含まれてないぽいね
ttp://www.autohotkey.com/board/topic/86134-autohotkey-10-classic-and-basic-versions/
こっちのには入ってる
427名無しさん@お腹いっぱい。:2013/01/10(木) 19:49:15.72 ID:06feD9Ex0
428名無しさん@お腹いっぱい。:2013/01/10(木) 22:47:31.67 ID:EF3fR0oK0
うーむ、Lは微妙に初心者導入しにくくなってるんだな

>>426-427
この辺はテンプレに入れといてもいいかもしれない
これから始めてみようと言う時に、馴染みのエディタで色分けできるかどうかはモチベ維持に大きく関わるし
429名無しさん@お腹いっぱい。:2013/01/11(金) 09:40:58.48 ID:E/W2ZCxw0
何スレか前で紹介されてた分

otbedit用
http://gist.github.com/299038

秀丸用
SciTE4AutoHotkey用
http://lukewarm.s101.xrea.com/up/

NotePad2
http://xhmikosr.github.com/notepad2-mod/

>>422
gpad用を作ったらぜひアップしてくれ
430名無しさん@お腹いっぱい。:2013/01/11(金) 17:10:46.20 ID:IKwWZC040
こだわり過ぎる必要もないがインデントはどうしてるだろう?
AHKだとラベルと#if系のインデントの扱いに悩む

1)
x::
  send, {somekey}
  return

2)
x::
  send, {somekey}
return

3)
x::
send, {somekey}
return

#ifのインデントをするかどうか)
#if xxx
  y::z
#if
431名無しさん@お腹いっぱい。:2013/01/11(金) 19:17:47.26 ID:zqpSRmhc0
>>430 秀丸のアウトライン表示で^returnも出したいから2)かなぁ #ifの中はホットキーやラベル(^[0-9a-z]*:)も行頭でアウトライン判断したいのでインデント無しにしてる
432名無しさん@お腹いっぱい。:2013/01/11(金) 22:45:41.04 ID:CeUyOu2U0
自分も入口と出口を明確に視覚化したいので 2
functionの中のreturnはインデントするけど
433名無しさん@お腹いっぱい。:2013/01/11(金) 22:50:05.00 ID:E/W2ZCxw0
俺は1だな
その代りreturnの後に改行を沢山入れてる
434名無しさん@お腹いっぱい。:2013/01/11(金) 23:35:23.49 ID:ZwEbAdA70
2だね
始まりと終わりは明示したい
アウトラインで^.+?::はやるが^returnまではやらんくていい
returnの下には空行を一つ

#Ifは参考になんないと思う
435名無しさん@お腹いっぱい。:2013/01/11(金) 23:44:13.87 ID:sWQ5tIpb0
同じような事で悩んでる人はいるんだな…
基本2で#ifには前後に空行入れて挟んでるけど、モヤモヤする
436名無しさん@お腹いっぱい。:2013/01/12(土) 01:37:16.19 ID:11lSYMFL0
#If も ホットキーもBSDスタイルで中括弧入れてるわ
437名無しさん@お腹いっぱい。:2013/01/12(土) 10:04:01.34 ID:X9vnbjEz0
最初は2)だったけど
functionのreturnをどうするか悩んで結局1)に

#ifはあんまり気にしてないな
438名無しさん@お腹いっぱい。:2013/01/12(土) 10:57:52.31 ID:2CHlD5Aw0
意外と2の人多いんだな
公式だと1ぽいし、変則的な書き方だから自分だけかと思ってたわ
439名無しさん@お腹いっぱい。:2013/01/12(土) 11:38:44.06 ID:gfAbGYvz0
>>430
Emacs の ahk-mode.el 使ってるとデフォルトで 1 になる
Python ぽいインデントで特に悩んだことはないな
440名無しさん@お腹いっぱい。:2013/01/12(土) 13:32:06.38 ID:VQ0HP9Zw0
Vim向けに用意されているahk.vimを使うと
インデックスが崩れまくるのは俺だけなんだろうか
シンタックスは割りと綺麗に効くんだけどな
441名無しさん@お腹いっぱい。:2013/01/15(火) 05:09:22.12 ID:IJ9Q/rseP
AHK_lに移行したらTraytip(タスクバーのバルーン)使えなくなった。
検索してもヒットしないが、同様の報告ありますか?どうしようもないのかな。
442名無しさん@お腹いっぱい。:2013/01/15(火) 07:49:51.31 ID:boH5fIIX0
L64 / win7 x64 で普通に使えてるよ
たぶん通知アイコンのカスタマイズで通知非表示になってんじゃない?
443名無しさん@お腹いっぱい。:2013/01/15(火) 20:58:55.67 ID:lwsTc1Gv0
マウスのセンターボタンを押している間だけマウスの動きを上下左右逆にしたいのですが、
どのように書けばいいでしょうか?
444名無しさん@お腹いっぱい。:2013/01/15(火) 21:10:15.03 ID:USJf6JsR0
>>443
MButton
getmousepos
mousemove

以上を組み合わせる
445名無しさん@お腹いっぱい。:2013/01/15(火) 22:39:38.89 ID:IJ9Q/rseP
>>442
レスありがとう。よくわからないが最終的に再起動で解決。
OS側の何かの問題だったっぽい。
446名無しさん@お腹いっぱい。:2013/01/16(水) 00:26:53.03 ID:JYl8P/4g0
同じ種類のウインドウを新しく立ち上げる度に、前にあった同じ種類のウインドウよりも
”若干”右にずらして立ち上げる(立ち上げた後新しいウインドウを右にずらす)みたいなことってできますか?
そのまま新しいウインドウをたちあげると、まったく同じ位置に重なってしまいます。

ためしにこう書いてみたのですが
run C:\afxw\AFXW.EXE
#^Right::WinMoveStep(8,0)
新しいウインドウが立ち上がる前に既存のウインドウを右にずらしてしまいます。
ウインドウのタイトルバーは、
「管理者: [パス]あふw 1.5」「管理者: 2)[パス]あふw 1.5」「管理者: 3)[パス]あふw 1.5」....

これって簡単にできますか?ぐぐればみつかりますか?
447名無しさん@お腹いっぱい。:2013/01/16(水) 03:38:25.67 ID:MTqJG1PV0
>>446
#F1::
WinGetPos, WinX, WinY,,, ahk_class TAfxWForm
Run, "D:\afxw\AFXW.EXE",,, PID
WinWait, ahk_class TAfxWForm ahk_pid %PID%
WinMove, ahk_class TAfxWForm ahk_pid %PID%,, (WinX+20), (WinY+0)
Return

WinWaitのウインドウ指定でRunで取得したPIDを使うのがポイント
448名無しさん@お腹いっぱい。:2013/01/16(水) 03:45:55.06 ID:MTqJG1PV0
なんか気が付いたら関数書いてたんで、折角のなので貼っておきますね

#F1::RunWindowShift("D:\afxw\AFXW.EXE", 20, 0, "ahk_class TAfxWForm")

RunWindowShift(Target, MoveX:=16, MoveY:=16, WinTitle:="", WinText:="", Timeout:=10)
{
  SplitPath, Target, FileName, WorkDir
  IfWinExist, %WinTitle% ahk_exe %FileName%, %WinText%
  {
    WinGet, MinMax, MinMax, %WinTitle% ahk_exe %FileName%, %WinText%
    If (MinMax == 0)
    {
      WinGetPos, WinX, WinY,,, %WinTitle% ahk_exe %FileName%, %WinText%
      Run, %Target%, %WorkDir%,, PID

      WinWait, %WinTitle% ahk_pid %PID%, %WinText%, %Timeout%
      If (ErrorLevel)
        Return 0
      
      WinGet, MinMax, MinMax, %WinTitle% ahk_pid %PID%, %WinText%
      If (MinMax == 0)
        WinMove, %WinTitle% ahk_pid %PID%, %WinText%, (WinX+MoveX), (WinY+MoveY)
      Return PID
    }
  }
  Run, %Target%, %WorkDir%,, PID
  Return PID
}
449名無しさん@お腹いっぱい。:2013/01/16(水) 04:11:04.52 ID:JYl8P/4g0
>>447
ありがとうございました(^o^)
OutputVarPID 起動したプログラムのプロセスIDを格納する変数名。
すげー、こんな引数の使い方あるんだ。
助かりました。感謝します
450名無しさん@お腹いっぱい。:2013/01/19(土) 20:33:31.25 ID:05Y6TxWS0
Pythonとかでいうインポートはどうするのでしょうか
451名無しさん@お腹いっぱい。:2013/01/19(土) 20:49:05.49 ID:TkjNI7AY0
452名無しさん@お腹いっぱい。:2013/01/19(土) 21:00:56.00 ID:05Y6TxWS0
>>451
どうもです。一通り目を通してきます
453名無しさん@お腹いっぱい。:2013/01/20(日) 18:30:35.15 ID:YKBiVB3v0
FileappendのTextをインデントさせたいのですが実際書き出す時はタブは入れたくありません
どうすればいいでしょう?

例)
^c::
\tFileappend,
\t(
\tほにゃらら
\tほにゃらら
\tふにゃー
\t), text.txt, UTF-8
return

とすると↓

ほにゃらら
ほにゃらら
ふにゃー

と書き出されるようにしたいです
\tはタブだと思ってください

ちなみに\nを使って一行にまとめることはできるのですが、ものすんごく長くなって可読性が著しく低いです
あれ嫌です
454名無しさん@お腹いっぱい。:2013/01/20(日) 18:39:42.11 ID:w74zkbbt0
LTrim
455名無しさん@お腹いっぱい。:2013/01/20(日) 18:57:50.90 ID:UJdlpgUX0
^c::
  Fileappend, % ""
   . "ほにゃらら`n"
   . "ほにゃらら`n"
   . "ふにゃ〜"
  , text.txt, UTF-8
return
456名無しさん@お腹いっぱい。:2013/01/20(日) 21:02:26.33 ID:DBAha5rg0
>>453
>>454で出てるけど、もう少し甘やかしてやろう
https://sites.google.com/site/autohotkeyjp/reference/Scripts#TOC--1
457名無しさん@お腹いっぱい。:2013/01/21(月) 01:30:39.88 ID:FY3X9uXO0
LTrimで出来ました、ありがとうございます
最初StringTrimLeftのことかと思っちゃいました
>>455さんもありがとうございます

>>456
もっと甘やかしてください
さしあたっては一人の夜が寂しいので子守唄などを……
458名無しさん@お腹いっぱい。:2013/01/21(月) 19:08:49.39 ID:RG5gngyq0
昔の時計のように
毎時00分になったら同じサウンドファイルを実行するようなタイマーを作りたい時はどうしたらいいですか?

SetTimerは指定間隔でタイマーを実行するだけなので
今回のように指定時刻で発動したい場合にはどう書いたらいいか分かりませんでした
459名無しさん@お腹いっぱい。:2013/01/21(月) 19:14:41.50 ID:ZAERgtrP0
タスクスケジューラに登録するほうがよさげ
460名無しさん@お腹いっぱい。:2013/01/21(月) 19:26:51.75 ID:OiW2GJwP0
>>458
AHKでやりたいなら、SetTimerで1秒ごとに時間確認するしかないと思う

SetTimer, hoge, 1000

hoge:
If(A_Min = 0)
{
SoundPlay, test.wav
}
Return
461名無しさん@お腹いっぱい。:2013/01/21(月) 19:29:03.25 ID:OiW2GJwP0
>>460
間違えた、これじゃ0分台に毎秒鳴っちゃうなw
If(A_Min = 0 && A_Sec = 0)
に修正
462名無しさん@お腹いっぱい。:2013/01/21(月) 22:16:53.41 ID:QfYhT3U80
予め設定した任意のウインドウが前面アクティブになったら、自動で特定のキーを押したいんだけど、
やっぱりloopとかでずっと毎度確認させておくしかありませんよね?
ずっとそういうの走らせておくと負荷が増えるでしょうし、そういうの嫌いなので敬遠したいのです。

Autohotkeyじゃないフリーソフトで、特定のウインドウが前面になったら
作業をはじめるソフトありますけど、あれもどうせずっと監視負荷かかってるんでしょうけど
463名無しさん@お腹いっぱい。:2013/01/21(月) 22:31:58.02 ID:u4q5SIbN0
そんな負荷なんてあってないようなもんだと思うけど
464名無しさん@お腹いっぱい。:2013/01/21(月) 22:49:31.30 ID:RG5gngyq0
>>459-461
ありがとうございます!
タスクスケジューラにWAVファイルを登録してみたら再生するたびに
いちいちWMPウィンドウが起動してしまうのでAHKのほうが良さそうに思いました

細かい話ですが
hoge:
If(A_Min = 0 && A_Sec = 0)
SoundPlay, test.wav
Return
スレッドを実行するのってどのくらい負荷がかかるんでしょうか?

極端ですが 1秒じゃなく100ミリ秒
SetTimer, hoge, 100 とかにスレッド実行間隔を狭めると、それなりに負荷が増えるのか
それともこんなのは無視できるぐらいの負荷なのでしょうか?
465名無しさん@お腹いっぱい。:2013/01/21(月) 23:01:58.50 ID:1BzKfLUJ0
タスクマネージャー見ればいいじゃん
466名無しさん@お腹いっぱい。:2013/01/21(月) 23:21:22.51 ID:b0IVjByp0
>>464
wavを直接登録しないで
wavを再生するだけのAHKスクリプトをタスクスケジューラーに登録すればいい
467名無しさん@お腹いっぱい。:2013/01/21(月) 23:30:23.05 ID:OiW2GJwP0
>>462
https://sites.google.com/site/agkh6mze/howto/winevent
Windowsに相乗りする形だから多分負荷も軽い

>>464
タイマー実行する内容とマシンパワーによるんじゃないの
500ミリ秒程度なら大抵の場合無視できるレベルだろうし、
時刻確認するくらいなら100ミリ秒でも気にならないと思う
468名無しさん@お腹いっぱい。:2013/01/21(月) 23:56:35.82 ID:RG5gngyq0
>>465-467
ありがとうございます。タスクマネージャでは何の負荷も掛かってないように見えます・・

時刻をチェック( If(A_Min = 0 && A_Sec = 0) )するぐらいだったら
超短期100ミリ毎でも気にならない負荷なんですね
469名無しさん@お腹いっぱい。:2013/01/22(火) 00:13:58.11 ID:WwHX9KHE0
10でも使用率全く変化しないと思うぞ
470名無しさん@お腹いっぱい。:2013/01/22(火) 01:00:37.88 ID:MZKW7qU80
>>467
レスありがとうございました。まったく知りませんでした。
URL先の例文をちょこっと改変して、使ってやろうかしらと思ったら、
むずーw
471名無しさん@お腹いっぱい。:2013/01/22(火) 10:42:06.06 ID:KAdlKMrT0
>>470
Windows APIの仕様を調べたり理解するのは確かに労力がいるけど
アクティブウィンドウ切り替えを検知するだけならそのページのサンプルまんまでいけるよ
472名無しさん@お腹いっぱい。:2013/01/22(火) 21:10:14.75 ID:MZKW7qU80
>>471
そうですか...自分ほんとになにも知らないので。
いけるとのことですので、もうちょっと見てみます。
でも、サンプルを見た限り、すべてのアクティブウインドウの切り替え
になにかさせるように見えます。特定の一つのソフトウェアのウインドウが
アクティブになったときに、キー押させたいんです。
誘導ありがとうございました。
473名無しさん@お腹いっぱい。:2013/01/22(火) 21:40:00.84 ID:/8AUs2tB0
わからなけりゃ無理せずにWinWaitActiveなりSetTimerでいいと思うけどな
SleepなしにLoopぶん回すとかは論外だけど
474名無しさん@お腹いっぱい。:2013/01/22(火) 21:47:55.31 ID:KAdlKMrT0
>>472
コピペして動かしてみたら分かりやすいよ
アクティブウィンドウが変わるとツールチップが表示されると思うから
WinActivateHandler関数の中身のみ手を加えたりすれば良さそうだよね

>特定の一つのソフトウェアのウインドウがアクティブになったとき
これもWinActivateHandler関数の中に書いちゃえばいい
WinActivateHandler(...) {
 IfWinActive("ahk_class somewindow") {
  ; 特定のウィンドウがアクティブになったときのみに
  ; この中に書いた内容を実行させる
 }
}
475名無しさん@お腹いっぱい。:2013/01/22(火) 21:50:46.96 ID:KAdlKMrT0
ちょっと間違った
IfWinActive()関数なんてなかった
IfWinActive, ahk_class somewindow
あるいは
If WinActive("ahk_class somewindow")
が正しい
476名無しさん@お腹いっぱい。:2013/01/23(水) 00:04:22.81 ID:MZKW7qU80
教えて頂いてありがとうございます。
「それはできる」っていうことを教えて貰っただけでも大分お得なのですが、
テストしてみてもできないなぁ。
Tooltipは出るんですが、どのウインドウが全面になってもでてる。
限定できてない。おれの書いたのでは。

WinActivateHandler(hWinEventHook, event, hwnd, idObject, idChild, thread, time) {
IfWinActive, ahk_class MozillaWindowClass
WinGetTitle, title, ahk_id %hwnd% (前後行、同じ)

の2行目を足しただけなんですが。
ほかにもコピペのを書き直さないといけないところあるかもしれないのかな。
IfWinActiveのあとを小括弧で囲むようなことをしないといけないのかな。

これあれば便利なのでもうちょっと考えてみます。
477名無しさん@お腹いっぱい。:2013/01/23(水) 00:20:41.03 ID:mU/uJWXm0
>>476
サンプルは、要するにウィンドウが切り替わったら教えてもらうってことだから、
どのウィンドウが前面に出てきてもツールチップが出るのは当たり前
あとはTooltipのとこだけ書き換えてそれが指定ウィンドウか確認するだけでしょ

WinGetClass, class, ahk_id %hwnd%
If (class = "AU3_Spy.exeで調べたクラス名")
{
Send,
}
478名無しさん@お腹いっぱい。:2013/01/23(水) 01:22:30.83 ID:2qEXEY6Y0
なんかしらんがキーロガーらしきものが見つかったガクブル
H@tKeysH@@k.DLL: Trojan.W32.HotKeysHook.A-2
と思ったら
AHKで作ったエロゲ攻略スクリプトなような気がする
479名無しさん@お腹いっぱい。:2013/01/23(水) 02:06:52.71 ID:cVTLBPV+0
AHKもexeが作れるから、これでウイルスを作るやつがいてもおかしくないか
480名無しさん@お腹いっぱい。:2013/01/23(水) 07:32:25.04 ID:mU/uJWXm0
Aviraだと、AHK2EXEで作った実行ファイルは中身空でも全てウイルス認定されてた
誤検知報告してしばらくしたら検知されなくなったけど
481名無しさん@お腹いっぱい。:2013/01/23(水) 11:33:01.28 ID:pWsz8ahB0
>AHKで作ったエロゲ攻略スクリプト
そっちの方が気になる
あと実行ファイル化するとAvastでもこのファイル不審って反応するよ
482名無しさん@お腹いっぱい。:2013/01/23(水) 13:41:57.79 ID:CRP6GBvf0
なにそれw
エロゲ攻略スクリプトとか怖すぎw
483名無しさん@お腹いっぱい。:2013/01/23(水) 15:34:57.01 ID:4SiGHfCU0
実際は操作補助スクリプトだろ
484名無しさん@お腹いっぱい。:2013/01/23(水) 16:18:12.37 ID:/crZKM7j0
初歩的っぽいけどわからんので質問
キーが押されてる間、装飾キーを押してることにする
やりたいこと的には(イメージ)

a::send, ("Ctrl") & ("Shift")
485名無しさん@お腹いっぱい。:2013/01/23(水) 16:41:07.54 ID:F8cMVSu+0
>>484
a::
send, {ctrl down}{shift down}
keywait, a
send, {ctrl up}{shift up]
return

装飾キーはネタかもしれんけど正しくは修飾キー
486名無しさん@お腹いっぱい。:2013/01/23(水) 17:13:02.90 ID:/crZKM7j0
>>485
ありがとう!keywaitがみそなのね
そして間違いの指摘もアリガトウ、思い込みってこわいね
487名無しさん@お腹いっぱい。:2013/01/24(木) 03:00:47.13 ID:gvcfQkb60
みんなすごいことしてるよね
自分はコンビーネーションキーを変換したり
それをソフトごとに挙動替えたりしかしてないわ

どっかで拾ってきたスクリプトの一部分を理解して
自分なりにアレンジくらいはできるけど
0から大がかりなのは作れないわ
488名無しさん@お腹いっぱい。:2013/01/24(木) 12:45:42.87 ID:945pKXoE0
ctrl+hogeのショートカットが上手く機能しないソフトがあるんだけど、どうしたらいいかな?

^Right::
 ControlSend,ClassHoge,{Right}
 return
・・・とか書いてもダメ。クラスを変えても、カーソルキーじゃない普通の文字にしてもダメ

F1::みたいにファンクションキーだといけるから、環境じゃなくてソフトの問題だと思うんだけど・・・
ちなみに、なぜか^F1::だとダメで、+Rightだとおk

^Right::F1
F1::
 ControlSend,ClassHoge,{Right}
 return
・・・もダメですた
489名無しさん@お腹いっぱい。:2013/01/24(木) 13:46:05.09 ID:TeZWhKt30
>>488
他のSend使ってみたら?SendMode変更も
490名無しさん@お腹いっぱい。:2013/01/24(木) 14:02:52.26 ID:QYja0SeO0
ControlSend使いたいならWinTitleは指定するべきじゃね

1. ControlSend,ClassHoge1,{Right},WintiTle
2. ControlSend,,{Right},ahk_id %ControlhWnd%


control名をClassNNで指定するなら末尾に番号つくはず、window SPYで確認してみ
確実にやりたいならコントロールのハンドル取得して2の方式でやればだいたいけるはず
https://sites.google.com/site/autohotkeyjp/reference/Window


ていうか単にSendとControlSendをとりちがえてるだけな悪寒
491名無しさん@お腹いっぱい。:2013/01/24(木) 23:10:56.47 ID:945pKXoE0
>>489
inputもplayもダメですた・・・

>>490
┌─┬─┐
│@│A│
├─┴─┤
│ B │
└───┘
アクティブウィンドウがこんな風に3つのペインに分かれてて、
フォーカスはBにある状態で@やAを操作したいんですよね

#IfWinActive, ahk_class WinTitle1
^Right::
 ControlGet,controlHWND1,Hwnd,,ClassNN1,ahk_class WinTitle1
 ControlSend,,{Right},ahk_id %controlHWND1%
 return
#IfWinActive

こんな感じで書いてもダメでした
>>488のスクリプト時もそうでしたが、上手くキーが通ることもあるんですが、
通ったり通らなかったりで・・・
連続して5回くらい通ったかと思うと次は3回通らなかったり、気まぐれで困ってます
492名無しさん@お腹いっぱい。:2013/01/24(木) 23:51:59.43 ID:dNpBbL/p0
あるソフトが〜
とあるアプリで〜

とボカす必要性って、どこにあるの?
493名無しさん@お腹いっぱい。:2013/01/24(木) 23:57:21.55 ID:XtxM3a0X0
XPですが現在選択しているファイルのファイル名のコピーを簡単に行うにはどうしたらいいでしょうか?
494名無しさん@お腹いっぱい。:2013/01/24(木) 23:58:29.82 ID:xvtD33160
エロゲである
過去の質問遍歴がばれる
495名無しさん@お腹いっぱい。:2013/01/24(木) 23:59:26.84 ID:XtxM3a0X0
追記:ファイル名をクリップボードに送るという意味
496名無しさん@お腹いっぱい。:2013/01/25(金) 00:06:47.90 ID:nO0UR7/90
Ctrl+cをSendしてSplitPath
497名無しさん@お腹いっぱい。:2013/01/25(金) 00:32:08.15 ID:8TqLIrpd0
ありがとう
498名無しさん@お腹いっぱい。:2013/01/29(火) 17:46:13.28 ID:q1derZ65i
ファイルのフルパス収得目的で同じようにahk使ってるけど、いつの間にかワードやエクセルで書式無視してのコピペに使うようになってた。
499名無しさん@お腹いっぱい。:2013/01/31(木) 12:38:27.68 ID:oI4JsJDK0
MouseMove,-16,0,,r
のようなコードでマウスカーソルを相対移動させてる時に
ユーザーがマウスカーソルを動かすと誤動作してしまうんですが
マクロ実行中はユーザーからの入力をロックさせるということはできませんか
500名無しさん@お腹いっぱい。:2013/01/31(木) 12:42:16.70 ID:r5ebVVNc0
BlockInput
501名無しさん@お腹いっぱい。:2013/01/31(木) 12:58:22.97 ID:oI4JsJDK0
BlockInput,On
...
BlockInput,Off
ではさめばいいんですね。ありがとうございました。
502名無しさん@お腹いっぱい。:2013/01/31(木) 23:20:01.20 ID:jFyPnqkZ0
変換キーを押しながらマウス移動下をしてる時に左右キーのどちらかが押されたら斜めに、って
やりたいのですが思ったように動いてくれません。どこが悪いのでしょう
vk1Csc079 & s::
if getkeystate("a")
MouseMove, -11, 11 , 1, R
else
MouseMove, 0, 11 , 1, R
return
503名無しさん@お腹いっぱい。:2013/02/01(金) 00:04:45.30 ID:Lvgr/jLR0
変換+WASDで縦横斜めにカーソル移動したいってこと?
504名無しさん@お腹いっぱい。:2013/02/01(金) 00:17:53.93 ID:etQQOqtI0
よくわかんないけど、

普段 → 普通にマウス操作。ex.マウス下に動かす
特殊 → マウス操作しつつ、変換+カーソル。ex.マウス下に動かしつつ、変換+左

ってことじゃね
505名無しさん@お腹いっぱい。:2013/02/01(金) 02:27:37.29 ID:bDd6YDDv0
ごめんなさい、見返したらよくわからないですね、、
マウス移動は上下左右それぞれ1つずつは動いてくれてるんですが
下を押しながら左で左下に、右を押しながら上を押して右上に。という感じでWASDでカーソル操作がしたいのですが
(結局は>>503がしたいけれど)斜めのところでどうすればいいのかわからない。といった感じです。へるぷみー!
506名無しさん@お腹いっぱい。:2013/02/01(金) 02:40:04.82 ID:Lvgr/jLR0
>>505
vk1Csc079 & w::
vk1Csc079 & a::
vk1Csc079 & s::
vk1Csc079 & d::
  While (GetKeyState("vk1Csc079", "P"))
  {
    MoveX := 0, MoveY := 0
    MoveY += GetKeyState("w", "P") ? -11 : 0
    MoveX += GetKeyState("a", "P") ? -11 : 0
    MoveY += GetKeyState("s", "P") ? 11 : 0
    MoveX += GetKeyState("d", "P") ? 11 : 0
    Sleep, 10
    MouseMove, %MoveX%, %MoveY%, 1, R
  }
  Return


これでどう?
507名無しさん@お腹いっぱい。:2013/02/01(金) 22:43:37.22 ID:bDd6YDDv0
>>506
う…うごかない、、ですがWASDには変数操作をさせて動かすという感じは
なんとなく伝わってきたのでそんなアプローチでやってみます
508名無しさん@お腹いっぱい。:2013/02/02(土) 00:43:16.00 ID:605eqp6b0
全角スペースそのままコピペしたとか?
509名無しさん@お腹いっぱい。:2013/02/02(土) 00:47:17.28 ID:oiG3GNcR0
全角スペースじゃなく【TAB】とかにした方がいいのかな?
510名無しさん@お腹いっぱい。:2013/02/02(土) 02:01:39.49 ID:IbcH0npi0
キーボードがうんこ

の可能性
Nキーロールオーバーのを買うか
斜め専用キーを設定するか
511507:2013/02/02(土) 02:07:57.06 ID:/AgeXOfO0
うごきました!ゼンカクでした。ありがとうございました。
ほんとにもう、、感謝です
512名無しさん@お腹いっぱい。:2013/02/02(土) 13:16:51.83 ID:CAjke4a60
二つやりたいことがあるのですが、いい方法がありましたら教えてください
1.任意のウィンドウのボタンをタスクバーから消す
2.Windows8では(7から?)タスクバーが常に最前面表示で領域固定されていて
ウィンドウを最大化してもタスクバーを除いた部分までしか広がらず画面一杯に最大化できません
画面一杯にウィンドウを最大化させたい

調べてみた所ツールウィンドウ化することで目的を果たせそうだったのですが
試した結果、ウィンドウのスタイルがクラシック表示の様になり見た目がよくありません
さらにいじってみるとTOOLWINDOWからWS_SYSMENUを取り除くことで
理屈は分からないのですが元通りのスタイルが適用されるようになりました
結果、一応以下の様なものができあがりました
ただ素人考えなので、ウィンドウ開閉ボタンが消えてしまったりと難ありです
もっとスマートな方法があったら教えて頂けないでしょうか

WinSetTitle, ahk_class Progman,,XABCDExclude ;デスクトップとタスクバー除外
WinSetTitle, ahk_class Shell_TrayWnd,,XABCDExclude
return

#z::
DetectHiddenWindows, On
WinWait, A
WinGetActiveTitle, AW
WinHide, %AW%,, XABCDExclude
WinSet, ExStyle, ^0x80 ;WS_EX_TOOLWINDOW
WinSet, Style, ^0x00080000 ;WS_SYSMENU
WinSet, Topmost, TOGGLE
WinShow, %AW%
return
513名無しさん@お腹いっぱい。:2013/02/04(月) 04:54:47.97 ID:FA7/FKmD0
IME_GetConvertingについて質問です
変換候補窓において、alt+kをTabに割り当てようとしています(alt+kで候補を選択したいということです)

しかし、alt+kは個別のウィンドウにおいても、よくキーが割り当てられています
例えばエディタではalt+kにPgDnを割り当てています
AHKでは#IfWinActiveが優先するため、この場合、変換中でもalt+kはPgDnになってしまいます

かといって、これを最優先するように最初の#IfWinとして書くと、
今度は個別の設定(PgDnなど)が効かなくなってしまいます
どうにか変換中だけalt+kをTabにするうまい方法はないでしょうか

Label1:
 Send,{Tab}
 return

#IfWinActive, A
!k::
 if IME_GetConverting()=0
   Hotkey,!k,Label1,Off
 else
   Hotkey,!k,Label1,On
 return
#IfWinActive

一応、試行錯誤の末に、↑のように書いてみたのですが、うまくいきませんでした・・・
514名無しさん@お腹いっぱい。:2013/02/04(月) 07:05:20.79 ID:3AtmnZEo0
>>513
こんなのは?

#If IME_GetConverting()
!k::Send, {Tab}
#If

#IfWinActive エディタ指定
!k::Send, {PgDn}

#IfWinActive なんか別のソフト指定
!k::なんか別の処理
#IfWinActive
515名無しさん@お腹いっぱい。:2013/02/04(月) 12:03:51.51 ID:mniDA1zd0
Windows8ではデスクトップアプリケーションでのみAutoHotKeyが動作するのでしょうか?
516名無しさん@お腹いっぱい。:2013/02/04(月) 13:02:35.72 ID:FA7/FKmD0
>>514
うまくいきました! ありがとうございます!
#Ifなんてコマンドがあるんですね・・・リファレンスには見当たりませんでした

一部のウィンドウ(ワードの検索小窓など)ではうまく動かないようですが、
エディタやブラウザなど、ほとんどの環境で問題なく変換候補が選べました
ありがとうございますー
517名無しさん@お腹いっぱい。:2013/02/04(月) 19:15:19.36 ID:0io5GWW80
#IfはAutoHotkey_Lで追加された機能だから流行らせるページにはないよ
https://sites.google.com/site/autohotkeyjp/reference/commands/index_key
518名無しさん@お腹いっぱい。:2013/02/04(月) 19:31:35.83 ID:zgTphjI30
自分もWindows8に関して質問させてください
alttabmenuは7と同様に動作しますか?
両方使用している方がいればいいんですけど
519名無しさん@お腹いっぱい。:2013/02/04(月) 20:19:59.17 ID:5Ho14i5G0
>>516
ワードでうまく動かないのは修飾キーのAltが原因じゃない?
Altを使わないホットキーに変更したらうちではちゃんと動く

>>518
オレはWin8持ってないけど>>94-103あたりで話題になってる
520名無しさん@お腹いっぱい。:2013/02/04(月) 20:32:17.53 ID:zgTphjI30
>>519
見た感じAltTabMenuが8で動くかどうかとは具体的には書いてない感じですかねぇ
>>131 >>134もそうですけど
ありがとうございます
521名無しさん@お腹いっぱい。:2013/02/04(月) 23:57:20.35 ID:0h6UKwo60
>>519
IME_GetConverting()の制約だと思う、IMEのシームレス表示の時は値取れないから
522名無しさん@お腹いっぱい。:2013/02/05(火) 22:15:07.31 ID:9lgA8wfo0
>>519,521
ワード本文ではシームレス表示を切ることできちんと動作しました
動かないのはctr+Fで出る小窓上でのことです
こういうポップアップ系については、
ウィンドウ操作が特殊だったり難しかったりするという話なので、これは仕方ないと諦めております
十分便利ですので! 助かっております!
523名無しさん@お腹いっぱい。:2013/02/05(火) 22:19:25.56 ID:9lgA8wfo0
あ、>>517さん、ありがとうございます! 参考に致します!
524名無しさん@お腹いっぱい。:2013/02/06(水) 02:13:45.40 ID:QoaawrgJ0
>>522
普通に小窓のwin指定が別物だからってだけなのでは
ポップアップ系といっても大概は特殊でもないよ
525名無しさん@お腹いっぱい。:2013/02/07(木) 17:18:42.99 ID:7N4nHyuw0
本家 → L で Strlen() での戻り値がバイト数から文字数に仕様変更されたようですが
VBのLenB関数的なものが別途用意されたわけではないみたいでちょっと困っています
全半混在文字列のバイト数を得たいのですが、代替方法はないでしょうか?


具体的には↓の Unicode対応版 ファイルドロップ関数を使いたいのですが
これだとパスに日本語が混じってると動かないみたいです
http://www.autohotkey.com/board/topic/79145-help-converting-ahk-ahk-l/
526名無しさん@お腹いっぱい。:2013/02/07(木) 18:19:26.76 ID:4WxMF3HJ0
>>525
その Url の関数は Unicode に対応してないね
バイト数を得たいなら、単純に StrLen() *2 すればいいだけだよ

過去ログに Unicode 対応版があったので貼っておく
AutoHotkey スレッド part11
http://hibari.2ch.net/test/read.cgi/software/1280482227/332
527名無しさん@お腹いっぱい。:2013/02/08(金) 01:27:57.85 ID:yiBR12/Q0
>>526
おお!ありがとうございます、ばっちり動くようになりました
一応StrLen() *2 はやってみたんですが最初の一個しかドロップできなかったので
てっきりLengthが違ってるのかと思ってました

U対応やx64対応でポインタ周りはひと通り見なおしてはいたんですが
AllocやRtlMoveMemoryが出てくるとどうも思考停止してしまいます
528名無しさん@お腹いっぱい。:2013/02/08(金) 22:41:16.84 ID:9GItAqiv0
すいません。
1) アス比そのままでウインドウを拡大したり縮小したりするのってどうしたらできますか?
ウインドウの右下に矢印を持って行って斜め右下にドラッグするのと同じ機能のやつです。

2) マウスのダブルクリックを、特定のソフトウェアウインドウがアクティブなときに、違う機能を割り当てる
ってのやっぱり無理ですよね?

おしえてください。
529名無しさん@お腹いっぱい。:2013/02/08(金) 23:08:50.02 ID:yiVohghI0
>>528
1→winmoveをいじる
2→何がやっぱりなのかは分からないが通常は可能。AHKスレ検索なりを推奨
530名無しさん@お腹いっぱい。:2013/02/09(土) 00:00:33.23 ID:6OAQX2tq0
>>528
一応言っておくけど、スクリプトをまるまる上げるつもりはさらさらない
それを期待してるなら無駄だから帰ったら
「こうしたくてこうしたんですけどダメでした。どこがダメだか教えて下さい」なら、力になるけど
531名無しさん@お腹いっぱい。:2013/02/09(土) 01:42:54.53 ID:fmBrf3pH0
そういうツッコミを受けて、適当に歯抜けのコードを書いてここに書いて、
どこを修正すればいいんですかって何回も連発してたやついたな。

数年前だっけ。いわゆる日記君。
532名無しさん@お腹いっぱい。:2013/02/09(土) 09:59:40.11 ID:E/XF3UY40
ダブルクリックはブロック、普通のクリックだったら通すってやりたいのですがどうすればよいのでしょうか?
本家,マニュアルのを参考にしたんですがいい考えがうかびません。。

#If MouseIsOver("ahk_class Notepad", "Edit1") ; テスト用。メモ帳の編集部分だけ有効
LButton::
  KeyWait, LButton
  KeyWait, LButton, D T.3
  If (!ErrorLevel) {
    msgbox 別の機能
    return
  }   ;;; Click (遅い
return
#If

MouseIsOver(WinTitle, ctrl_in := "") {
  MouseGetPos,,,hWnd, ctrl_cur
  return (ctrl_in == "" || (ctrl_in && ctrl_in == ctrl_cur)) && WinExist(WinTitle . " ahk_id " . hWnd)
}
533名無しさん@お腹いっぱい。:2013/02/09(土) 18:58:52.20 ID:jJJe4w1R0
>>532
書いてみたら大して変わらなかったでござる。
RButton::
KeyWait,RButton
KeyWait,RButton,D T0.2
If(errorlevel){
msgbox,( ゚∀゚ )キタ━━━!
}
Return
534名無しさん@お腹いっぱい。:2013/02/09(土) 19:30:46.06 ID:E/XF3UY40
>>533 どうもです。
自分のはこれを参考にしました
ttp://www.autohotkey.com/board/topic/89659-double-click-xbutton1-to-launch-notepad/?p=567732
535名無しさん@お腹いっぱい。:2013/02/09(土) 19:41:23.17 ID:jJJe4w1R0
目的は達成したのか?
536名無しさん@お腹いっぱい。:2013/02/09(土) 21:55:36.54 ID:E/XF3UY40
3行目にClickで妥協しました
537名無しさん@お腹いっぱい。:2013/02/10(日) 01:29:38.34 ID:OfMQVl1a0
stringTrimLeft , outstr , %A_LoopFileFullPath% , StrLen(%3%)
loopのフルパスから%3%(フォルダを指定)を削ってサブフォルダを含めたパスを取りたいんですけど
エラー出て困っています。

Error: The following variable name contains an illegal character:

引数は使えないとか制限有りますか?
538名無しさん@お腹いっぱい。:2013/02/10(日) 01:59:00.33 ID:D6LYYdFu0
splitpath
539名無しさん@お腹いっぱい。:2013/02/10(日) 02:03:15.24 ID:D6LYYdFu0
ではなさそうだが、よくわからん
540名無しさん@お腹いっぱい。:2013/02/10(日) 03:08:28.60 ID:EXpfFUoO0
>>537
エラーを素直に読んだら駄目文字の所為だから
L版使わなきゃ駄目じゃないの?
外してたらスマン
541名無しさん@お腹いっぱい。:2013/02/10(日) 05:06:09.96 ID:FnxzPPKp0
inputvarのところは%A_LoopFileFullPath%じゃなくてA_LoopFileFullPathでしょ
やりたいことがよくわからんがStringReplaceじゃだめなの?
542名無しさん@お腹いっぱい。:2013/02/10(日) 08:42:47.60 ID:zhnBsNCy0
StringTrimLeft, OutputVar, InputVar, %Count% だな
InputVarは変数名でCountは直値
https://sites.google.com/site/autohotkeyjp/reference/commands/StringTrimLeft


%3%の中身わからんけど相対パスを取りたいってことかな?
outstr := Substr(A_LoopFileFullPath,Strlen(%3% "\")+1)
とかでもいけんじゃね
543537:2013/02/10(日) 09:44:29.79 ID:b/IlD6Zo0
色々有り難うございます
でも上手くいきませんでした。

やりたいこと
Aフォルダ(%1%)からBフォルダ(%2%)にある同名ファイルだけを抽出してCフォルダ(%3%)に置きたい。
その際、Bフォルダに存在しているがAフォルダにない場合はerror.logに書き出し、元のファイルを抜き出す。

%1% = C:\Users\myname\Desktop\dlg\source
%2% = C:\Users\myname\Desktop\dlg\target
%3% = C:\Users\myname\Desktop\dlg\result
ahk2exeで実行ファイル化して batchから起動しています。

--------------------------------------------------以下ソース
FileCopyDir, %2% , %3% , 1
sleep,1000

Loop, %3%\*.* ,1,1
{
StringTrimLeft , outstr , A_LoopFileFullPath , StrLen(%3%)
IfExist %1%\%outstr%
{
FileCopy, %1%\%outstr%, %A_LoopFileFullPath% , 1
}
else
{
FileAppend ,does not exist: %1%\%outstr% -> %A_LoopFileDir%\%A_LoopFileName%`r`n,%A_ScriptDir%\error.log
}
}
--------------------------------------------------終わり
最初は%1% %2%だけで上書きにしようと思っていたのですが
途中で%3%に書きだすように変更したために変な感じになってます・・・
これでダメな部分がわかりますでしょうか?
544537:2013/02/10(日) 09:48:07.90 ID:b/IlD6Zo0
追記
AフォルダとBフォルダにはサブフォルダがあります。
545名無しさん@お腹いっぱい。:2013/02/10(日) 10:51:38.83 ID:zhnBsNCy0
だからCountは直値なんだってば
あとコマンドラインパラメータは変数としては使えないから別の変数に取らないとダメ

result = %3%
StringTrimLeft , outstr , A_LoopFileFullPath , % StrLen(result)

StrLen(%3%) は「C:\Users\myname\Desktop\dlg\result」という名前の変数を指定してることになる
546名無しさん@お腹いっぱい。:2013/02/10(日) 11:10:39.67 ID:zhnBsNCy0
\も削るから % StrLen(result "\") か

>542のsubstr()も
outstr := Substr(A_LoopFileFullPath,Strlen(result "\")+1) だな
547537:2013/02/10(日) 11:24:48.82 ID:b/IlD6Zo0
直値ってそういう意味か
言われてみれば、そのまんまのエラーが出てるね
%とかよくわからん部分はまだあるけど動きたみたいです。
マジありがとう
548名無しさん@お腹いっぱい。:2013/02/11(月) 00:06:53.91 ID:PF/lWswt0
>>547 同じく%まじわかんないから、最近 Notepad++他デバッガで値を確認しながらステップ実行してる。

SciTE4AutoHotkey
ttp://www.autohotkey.net/~fincs/SciTE4AutoHotkey_3/web/

Notepad++
ttp://www.youtube.com/watch?v=-F09kuk54wY
549名無しさん@お腹いっぱい。:2013/02/12(火) 23:31:51.61 ID:kq9ZElGt0
>>548
SciTE4AutoHotkeyで、開いたファイルの履歴を消すことはできないのかな
どこで設定するかが分からない
誰か分かる人いる?
550名無しさん@お腹いっぱい。:2013/02/13(水) 19:33:43.26 ID:BxHB0Jvu0
>>549 Global properties(日本語の場合「共有〜設定」) "save.recent=1" -> "save.recent=0"
じゃダメだよね・・
551名無しさん@お腹いっぱい。:2013/02/13(水) 20:22:03.81 ID:hExK1ZcuT
マウスジェスチャのサブルーチンにウィンドウ移動のキー割り当てをしてるのですが
タイトル指定(日本語)で移動させるのはどうすればよいのでしょうか

^F1::WinMove,ahk_class (AU3_Spy.exeでクラス指定),,2488,123 ← 動く
^F2::WinMove,WinTitle (AU3_Spy.exeで日本語のタイトル指定),,0,0 ← 動かない

AHK unicode64bit 1.1.09.00
552551:2013/02/13(水) 20:41:05.08 ID:hExK1ZcuT
すみません
WinTitleのところに入れるのですね。申し訳ない
553名無しさん@お腹いっぱい。:2013/02/13(水) 21:36:27.43 ID:pAe7q3zl0
>>550
ありがとうございます!それでokです!
554名無しさん@お腹いっぱい。:2013/02/14(木) 02:32:55.18 ID:VQ5vuT+O0
BlockInput, Onを使ってもホットキーに割り込まれてしまうんですが、
ホットキーも完全にブロックする方法ってありませんか?
555名無しさん@お腹いっぱい。:2013/02/15(金) 07:53:14.89 ID:n7k+hGVF0
>>554 コード見せてkds BlockInputにはhook hotkeyはtriggerdってかいてあるからだめなのかな
#MaxThreads1 か#MaxThreadsPerHotkey 1 か 実行中の時だけ Hotkey, キー名,, Off するとか・・
556554:2013/02/15(金) 11:07:09.89 ID:uwar21Mq0
\::
CoordMode, Mouse, Relative
KeyWait, LButton
BlockInput, On
MouseGetPos, x0, y0
MouseMove, 380, 240, 0
MouseClick
MouseMove, 320, 320, 0
MouseClick
MouseMove, 600, 70, 0
MouseClick
ClipSaved := ClipboardAll
Clipboard :=
Send, {Left 3}+{Left 3}^c
ClipWait, 1
if ErrorLevel {
BlockInput, Off
MsgBox, クリップボードにテキストをコピーできませんでした。
return
}
If Clipboard Is integer
SetFormat, Float, 03
Clipboard += 1.0
Sleep, 25
Send, ^v
Clipboard := ClipSaved
ClipSaved :=
MouseMove, 440, 400, 0
MouseClick
MouseMove, x0, y0, 0
BlockInput, Off
return
557554:2013/02/15(金) 11:08:39.30 ID:uwar21Mq0
>>555
Murdoc Cutterで1回押すごとにテキストボックスのファイル名をカウントアップして出力ボタンを押すというものです>>556
これの実行中に以下のホットキー(1GOP進める)を押すとファイル名のカウントアップが行われず
そのまま出力しようとしてファイル名重複のアラートが出ます(恐らく選択範囲をコピーする前に解除してる)

Right::
CoordMode, Mouse, Relative
KeyWait, LButton
BlockInput, On
MouseGetPos, x1, y1
MouseMove, 210, 320, 0
MouseClick
Sleep, 25
MouseMove, x1, y1, 0
BlockInput, Off
return
558名無しさん@お腹いっぱい。:2013/02/15(金) 11:20:10.69 ID:Q+zgcLAc0
Murdoc Cutterで最終的になにをやってるのかがわからないが、
デフォルトで、入力ファイルと同じファイル名が自動的に入ってなかったっけ?

まずは重複しないファイル名を適当につけておいて、あとで整列する仕事を
AHKでやらせたほうが効率的な気がする
559554:2013/02/15(金) 11:35:53.89 ID:uwar21Mq0
>>558
1本を細切れにしてると思っていいです
連結させずにバラバラに吐かせるためにこうなってます
560名無しさん@お腹いっぱい。:2013/02/15(金) 11:46:33.67 ID:Q+zgcLAc0
ああなるほど。
それだったら俺は、

・マウスカーソル絶対値指定で外部アプリを制御するのが億劫
・クリップボード経由でいじると、いろいろと想定外の何かが必ず起きる

が経験則で多いので、出力するファイルの新規作成をAHKで監視して、
新作がきたらfilemoveですぐにどけて、Murdocのほうは常に同じファイル名で
outさせるかなぁ
561名無しさん@お腹いっぱい。:2013/02/15(金) 11:49:48.12 ID:Q+zgcLAc0
ちなみにMurdocは「出力完了」のダイアログをちゃんと閉じてからじゃないと、
filemoveができない。このへんの自動化は画面を見て監視する必要がある。
562名無しさん@お腹いっぱい。:2013/02/15(金) 21:32:01.31 ID:uwar21Mq0
>>555
#MaxThreads1は非推奨らしいです
#MaxThreadsPerHotkeyで挟んでみましたが効果はありませんでした
Hotkey, キー名,, Off はRightの指定ができなかったです
>>560
AHKは割り当て以外の使い方が全くわからないので少し時間がかかりそうです

とりあえずSendをSendInputにしてスピードを上げて凌いでみます
563名無しさん@お腹いっぱい。:2013/02/16(土) 03:00:20.64 ID:q34Co9Ik0
いつもは音量ミキサーからマウス操作でやってる
マイクのミュートを1KEYでしたいの

SoundSetでやってみたけどダメだった
「サウンド解析スクリプト」を実行しても目的のマイクデバイスは出てこない

環境:
Win7x64 , AHK Version 1.0.46.17

参考URL:
ttps://sites.google.com/site/autohotkeyjp/reference/commands/SoundSet
564名無しさん@お腹いっぱい。:2013/02/16(土) 03:12:22.64 ID:bxtZVs8z0
そのリンクから飛べるがvista以降はSoundSet無意味
https://sites.google.com/site/autohotkeyjp/reference/misc/Trouble#SoundSetGetonVista
565名無しさん@お腹いっぱい。:2013/02/16(土) 03:31:49.64 ID:q34Co9Ik0
>>564
ありがとう

代替機能をフリーソフトで探しにいきます><
566名無しさん@お腹いっぱい。:2013/02/16(土) 19:06:36.96 ID:pgOQn4Xi0
そこにリンク貼ってある関数でいいじゃん
俺も使ってるよ
567名無しさん@お腹いっぱい。:2013/02/19(火) 12:11:10.40 ID:ew1X9YmP0
ディレクトリ名が、大文字と小文字で相違する場面でハマってしまいました。

実際に存在してるディレクトリ名「C:\AbC」

ifexistだと、Windows側が差を吸収して常に「存在あり」になります。
大文字小文字を厳格に指定するFTPのダウンロード制御で、
「転送先のディレクトリがないよ」というエラーが出てしまいました。

ifexist,C:\ABC →成立
ifexist,C:\abc →成立
ifexist,C:\AbC →成立
↓こうしたい
ifexist,C:\ABC →不成立
ifexist,C:\abc →不成立
ifexist,C:\AbC →成立

一番最後だけ通過するよう厳格にチェックするには、どのようにしたらよいでしょうか。
568名無しさん@お腹いっぱい。:2013/02/19(火) 18:07:56.90 ID:r2CUIvVp0
>>567
Loop, c:\*, 2
{
if (RegExMatch(A_LoopFileFullPath, "AbC")) {
msgbox % "hits: " A_LoopFileFullPath
}
}
RegExMatch だとデフォルトでcase sensitiveでした。。ディレクトリ名を一発で引っ張れるのないかなぁ
569名無しさん@お腹いっぱい。:2013/02/20(水) 22:18:48.50 ID:6OnoMbHJ0
検索ソフトのEverythingがアクティブな状態だとautohotkey、mousgesture.ahkの
マウスジェスチャーやショートカットキーが働かないんですがどうすればいいのでしょうか

他のクリップボード監視ソフト等の呼び出しキーショートカットも効かなかったりと
Everything自体が他ソフトのショートカットを動かないようにしてるっぽいんですが
Everythingにautohotkeyでキーショートカットを当てることを書いてるサイトもあったりするんですよね
570名無しさん@お腹いっぱい。:2013/02/20(水) 22:56:08.48 ID:mv3AM2Vl0
管理者権限とかじゃねーの
571名無しさん@お腹いっぱい。:2013/02/20(水) 22:56:46.08 ID:ybtrSJHe0
AHKLはインストーラ版しか無いのでしょうか?
572名無しさん@お腹いっぱい。:2013/02/20(水) 23:02:31.31 ID:tjD8sD160
プログラム未熟者ですが
関数とGosubてどう使い分けるのでしょうか?

戻り値を必要としない場合でも関数で全てこと足りると思うのですが
関数のデメリットもあるんでしょうか?
573名無しさん@お腹いっぱい。:2013/02/20(水) 23:27:22.84 ID:5jlXFfFu0
574名無しさん@お腹いっぱい。:2013/02/20(水) 23:32:34.24 ID:ybtrSJHe0
>>573
自分の確認不足でした。
ありがとうございます。
575名無しさん@お腹いっぱい。:2013/02/21(木) 00:06:18.36 ID:tq7Pwaxo0
Altキーを押しながらCを押すって動作をさせたい場合はどの様に入力したら良いのでしょうか?
send,!C
では駄目でした。
先にAltを押してほんの一瞬遅れてCを押すって感じにしたいです。
576名無しさん@お腹いっぱい。:2013/02/21(木) 00:07:58.95 ID:wOXuXPL60
send,{alt down}
sleep,100
send,c
こんな感じ?
577名無しさん@お腹いっぱい。:2013/02/21(木) 00:21:24.14 ID:tq7Pwaxo0
>>576
動きました!が、
Altキーが押しっぱなしの状態になるのでが
そうなる事を回避するにはどうしたら良いのでしょうか?
手動でAltキーを押せば解除出来ます。
578名無しさん@お腹いっぱい。:2013/02/21(木) 00:29:12.80 ID:Yew6/Ne90
send,{alt up}を加えてください
579名無しさん@お腹いっぱい。:2013/02/21(木) 00:36:25.87 ID:tq7Pwaxo0
>>578
解消しました!
>>576,578
感謝です^^
580名無しさん@お腹いっぱい。:2013/02/21(木) 01:00:33.96 ID:MF/No1EK0
>>572
Gosubは関数が実装される前にできたもの
MenuやTimerとかは今でもサブルーチンラベルに飛ぶので
他は大抵ら関数で代替えできるのでそっち使えばいい


あと、あまりお薦めできる使い方じゃないが、subはラベルに飛ばしてるだけなので
関数みたいに入口は明確に一つじゃなくても実はかまわない

 if (前準備まだ)
   Gosub jyunbi ;前準備→本番
 Else
   Gosub honban ;本番だけ
 次の処理〜

jyunbi:
  前準備1
  前準備2
  前準備3
honban:
  本番処理
return
581名無しさん@お腹いっぱい。:2013/02/21(木) 01:02:23.52 ID:MF/No1EK0
×MenuやTimerとかは今でもサブルーチンラベルに飛ぶので
○MenuやTimerとかは今でもサブルーチンラベルに飛ぶので避けられないけど
582 ◆T98aC7LCC. :2013/02/21(木) 07:20:03.40 ID:XtZcssSw0
1月からローカルで延々と作業してましたがようやく形になりましたので告知させていただきます。

サイト名: AutoHotkey Wiki
URL: http://ahkwiki.net

AutoHotkeyを流行らせるページ、AutoHotkeyJp 様方には2週間ほど前に文章を使用させていただくという旨のメールを送っています。
編集段階で気がついた部分はなるべく修正しましたがまだまだ編集すべきところがたくさんあると思います、皆様のお力添えをどうぞよろしくお願いいたします。
583名無しさん@お腹いっぱい。:2013/02/21(木) 07:52:54.33 ID:zeK7WlKZ0
お疲れ様です
サイドバーのコマンドはデフォで開いてくれてた方がいいような
あとページタイトルが日本語+括弧になってる記事の編集ページのほとんどに警告が出てるような
584 ◆T98aC7LCC. :2013/02/21(木) 08:07:29.65 ID:XtZcssSw0
>>583
さっそくのアクセスありがとうございます。
エラー?ですがこちらでは再現しなかったので申し訳ないですが
ページ名、使用環境(OS、ブラウザ)、警告の内容 教えていただけますか?

以下の場合は仕様です。
警告: このページの記事名の付け方は、当ウィキペディアのガイドラインなどにそっていないかもしれません。理由は以下のとおりです。
警告:ログインしていません。編集すると、IPアドレスがこのページの編集履歴に記録されます。
585名無しさん@お腹いっぱい。:2013/02/21(木) 08:53:15.34 ID:zeK7WlKZ0
>>584
仕様なんですね なら問題無いです
586名無しさん@お腹いっぱい。:2013/02/21(木) 08:53:22.81 ID:jxR69Inn0
>>582
ありがとう。便利です。
587名無しさん@お腹いっぱい。:2013/02/21(木) 10:04:00.23 ID:wOXuXPL60
autohotkeyjpは更新が止まったみたいだから、こう引き継がれるのはいいことだね
開発環境の構築とデバッグ機能を充実してほしい
588名無しさん@お腹いっぱい。:2013/02/21(木) 17:55:22.24 ID:rL6/w3yH0
他人が翻訳して書いた文章をコピペしてアフィ付けただけじゃないの。そういや似たような事がマウ筋であったな
589名無しさん@お腹いっぱい。:2013/02/21(木) 18:01:04.73 ID:oxWahYt90
あの流れをうんざりするほど見てる身としては話をふるやつもウザイ
590537:2013/02/21(木) 20:01:58.23 ID:tqzmtA9P0
マジで足引っ張るだけのやつはウザいな。クズすぎる
591名無しさん@お腹いっぱい。:2013/02/21(木) 20:46:26.08 ID:mDLhgvnu0
>>580
凄く勉強になりました ありがとうございます

ラベルをreturnで終わらせないで続けて書けば
入り口を複数作ることができるという事ですね
592名無しさん@お腹いっぱい。:2013/02/21(木) 21:51:16.28 ID:xVZVfegL0
ドメインやサーバの費用にするとか言うのかもだけど
アフィの貼りっぷりがなんともw

他人の仕事に乗っかってサイトを作って
wikiだから更新も人任せでもいけるし
カネ目当てのページ扱いされるのは
覚悟の上でやってるんじゃないの
最初だけちょっと自分で足してれば
とりあえず格好もつくし

こうは書いたけど、俺としてはカネ目当てのほうが
継続的にメンテしてくれそうだし歓迎だな
気分悪いって奴は無料wikiでも別に立ち上げて
どんどん使われるように頑張ってくれよ
ライセンスがパブリックドメインになってるから
アフィwikiのほうから全記事をコピーしても大丈夫だぞ
593名無しさん@お腹いっぱい。:2013/02/21(木) 22:18:14.46 ID:tqzmtA9P0
あ?因縁つけてんのかと思ったらアフィ貼りまくりなん?
フィルターで全部消えてるから見えないわw
594名無しさん@お腹いっぱい。:2013/02/21(木) 23:18:18.85 ID:wXTn9mG60
Gosubはホットキーに飛べるじゃん
595名無しさん@お腹いっぱい。:2013/02/22(金) 00:24:03.64 ID:9sfDc0xq0
>>594
もうちょっと詳しくお願いします
逆なら分かるのですが・・・
596名無しさん@お腹いっぱい。:2013/02/22(金) 07:02:06.88 ID:3rhhNlQT0
ホットキー「に」て、どういうこと?
597名無しさん@お腹いっぱい。:2013/02/22(金) 08:03:13.24 ID:15jgzyi+0
俺もオミトロンで全く見えないから気づかなかった
598名無しさん@お腹いっぱい。:2013/02/22(金) 09:10:15.83 ID:1Qdt6imo0
ホットキーラベルに飛べるってことじゃないの
a::
Msgbox,a
Return
b::
GoSub,a
Msgbox,b
Return
599名無しさん@お腹いっぱい。:2013/02/22(金) 20:02:19.36 ID:XUUeTvaS0
ウェブサイトで5か所を自動でクリックさせたくて下記のを作ってみました。
クリックはできるようになったんですが、スペースキーを押すまで繰り返すように作れないでしょうか?
ぐぐったりしてるんですが、まだ自分のスキルでは無理なようで・・お願いします

#IfWinActive ahk_class MozillaWindowClass
F1::
MouseGetPos, x0, y0
WinGetPos, X, Y, Width, Height
MouseMove, 730, 460
MouseClick, left
Sleep, 1000
MouseMove, 400, 535
MouseClick, left
Sleep, 1000
MouseMove, 660, 500
MouseClick, left
Sleep, 1000
MouseMove, 660, 525
MouseClick, left
Sleep, 1000
MouseMove, 660, 430
MouseClick, left
Return
#IfWinActive
600名無しさん@お腹いっぱい。:2013/02/22(金) 23:01:01.96 ID:zVll76ro0
>>599
loopとgetkeystate使え

loop{
繰り返したい内容
if getkeystate(space)
return
}
601名無しさん@お腹いっぱい。:2013/02/23(土) 01:04:54.33 ID:B3O9d/7M0
右クリック + ホイールダウンをAlt + Tabにしたいのですが
どのように書けばいいでしょうか?
602名無しさん@お腹いっぱい。:2013/02/23(土) 01:30:35.75 ID:pNH9BoKc0
>>601
頑張れ
603名無しさん@お腹いっぱい。:2013/02/23(土) 01:40:10.53 ID:xhHpGFi60
>>601 ttp://ahkwiki.net/%E3%83%9B%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC
早速使ってみたが、検索で"alttab"が引っかからないなコレ
604名無しさん@お腹いっぱい。:2013/02/23(土) 01:52:31.53 ID:B3O9d/7M0
>>603
出来ました
Ctrl + F6の場合はどうすればいいでしょうか?
RButton & WheelDown::Send {Ctrl Down}{F6}{Ctrl Up}
としたところ単独の右クリックが無効になってしまいます…
605名無しさん@お腹いっぱい。:2013/02/23(土) 02:15:40.75 ID:pNH9BoKc0
>>604
そんなの当たり前
いちいち書き込んでないで、>>603から学べよ
wikiの中を検索しろ

いくらなんでも>>601,>>604みたいな、糞みたいに初歩的な質問をするんじゃねーよ
その程度のことなら、「基本的な使い方」みたいなとこに目を通すだけでわかるだろうが
わからないならお前にこのソフトは向いてない、諦めろ
606名無しさん@お腹いっぱい。:2013/02/23(土) 02:16:30.66 ID:xhHpGFi60
>>604 同じ頁の「修飾シンボル」~見て
607名無しさん@お腹いっぱい。:2013/02/23(土) 02:27:56.43 ID:B3O9d/7M0
>>606
やってみました
これだとホイールを回したときも右クリックのポップアップが出てしまいます
なかなか難しいですね
608名無しさん@お腹いっぱい。:2013/02/23(土) 08:25:53.50 ID:o6EDYp5Y0
その辺は誰もが一度ははまる罠
左右マウス乗っ取りは制御むずかしいよ、微妙な操作感で妥協するか
諦めてX1,X2あたりに割り振るかしたほうがいい
609名無しさん@お腹いっぱい。:2013/02/23(土) 16:46:39.77 ID:lNnm2ixd0
Loop,PARSEで特定の拡張子のフルパスを列挙するのに

Var := "D:\myDocuments\*.zip`n"
Var .= "D:\myDocuments\*.rar`n"
・・・

Loop, Parse, Var, `n

のようにしているのですが、一行で複数特定の拡張子を当てはめるにはどうすればいいのでしょうか
610名無しさん@お腹いっぱい。:2013/02/23(土) 17:22:45.68 ID:hjuNjHyQ0
>>609
If (RegExMatch(A_LoopField, "i)\.(zip|rar)$"))
611名無しさん@お腹いっぱい。:2013/02/23(土) 17:58:27.20 ID:dCNwSkqs0
マウスパッドの純正ソフトで特定動作で.exeを実行出来るツールがあるのですが
.ahkは指定出来ません。
AHKLで作った物を.exeにする方法があれば教えて下さい。
612名無しさん@お腹いっぱい。:2013/02/23(土) 18:02:15.66 ID:hjuNjHyQ0
613名無しさん@お腹いっぱい。:2013/02/23(土) 18:52:44.95 ID:lNnm2ixd0
>>610
正規表現はまだ手に負えそうにないので現状で我慢します
ありがとうございました
614 ◆T98aC7LCC. :2013/02/24(日) 01:37:05.23 ID:dXbH172g0
>>603
報告ありがとうございます。先ほど不具合を修正いたしました。

Mediawiki検索で大文字小文字の違いを無視するように設定を変更
Googleカスタム検索をサイドバーに追加
615名無しさん@お腹いっぱい。:2013/02/24(日) 12:52:53.59 ID:LZniQRGM0
乙乙
616名無しさん@お腹いっぱい。:2013/02/25(月) 17:32:43.73 ID:st8WD3K80
MDI子ウィンドウをアクティブにするにはどうしたらいいのでしょうか?
WinActivate, ahk_id %hWnd%;hWnd=子ウィンドウのウィンドウハンドルです
ではできませんでした
他の子ウィンドウがアクティブになっている状態でhWndを前面に持ってきたいんです
617名無しさん@お腹いっぱい。:2013/02/25(月) 19:13:41.28 ID:Bw6+H3ko0
>>616
具体的にどのプログラムに対して(知られるのが嫌なら同じ状況が再現できる物)
どんなスクリプト書いたか(必要な部分全文 他のミスかどうか判断できない)
618名無しさん@お腹いっぱい。:2013/02/25(月) 23:31:43.13 ID:st8WD3K80
>>617
有難うございます。プログラムはEXCEL2007です。

hWnd := getMousePosWindowEx()
getMousePosWindowEx(def_cmode = 1)
{
CoordMode,Mouse,Screen
MouseGetPos, mx,my
hWnd := DllCall("WindowFromPoint",Int,mx, Int,my, UInt)
619名無しさん@お腹いっぱい。:2013/02/25(月) 23:33:59.69 ID:st8WD3K80
Loop
{
WinGet,ExStyle,ExStyle,ahk_id %hWnd%
if (ExStyle & 0x100 = 0x100) ;WS_EX_WINDOWEDGE
{
WinGet,Style,Style,ahk_id %hWnd%
if (Style & 0x00C00000 = 0x00C00000) ;WS_CAPTION
Break
}
hWnd := DllCall("GetParent",UInt,hWnd, UInt) ;親ウィンドウ検索
ifEqual,hWnd,0, Break ;Error
}
ifEqual def_cmode,1, CoordMode,Mouse,Relative
return hWnd
}
IfWinNotActive, ahk_id %hWnd%
WinActivate, ahk_id %hWnd%
※getMousePosWindowExを作ってくださった人有難うございます。

↑のように書いて重なり合った子ウィンドウをアクティブ化したいです
620名無しさん@お腹いっぱい。:2013/02/25(月) 23:48:51.28 ID:st8WD3K80
書き込めないため分割したらインデントもなく見難くなってしまいました・・
すみません。気をつけます
621名無しさん@お腹いっぱい。:2013/02/26(火) 00:55:20.03 ID:XM2Sq1LT0
Excelは WM_MDIACTIVATEでアクティブ化できないんだよな
しょうがないんで原始的にControlClickで対応してる

MdiClient := DllCall("GetParent",Ptr,hChild, Ptr) ;
SendMessage, 0x229, 0,0,,ahk_id %MdiClient% ;WM_MDIGETACTIVE
if (hChild != ErrorLevel) {
  if(ChildClsName = "Excel7") ;Excelカスタム
     ControlClick,,ahk_id %hChild%
  Else
     PostMessage,0x222, %hChild%,0,,ahk_id %MdiClient% ;WM_MDIACTIVATE
}

インデントは全角スペースなんで置換よろしく
622名無しさん@お腹いっぱい。:2013/02/26(火) 13:11:34.83 ID:YsX4GWTF0
>>569
亀レスだがEverythingの1.3.1.636b Betaだと対応してる
623名無しさん@お腹いっぱい。:2013/02/26(火) 13:26:27.34 ID:wk16gQ3+0
>>621
本当に有難うございます。
hChildは hChild := getMousePosWindowEx() で取得するので合っていますよね?

ChildClsName = "Excel7"の部分が Excelのバージョンによって違うのかExcel2007では動きませんでした・・
(他のMDIソフトウェアでは動きました!)
SendMessage, 0x229, 0,0,,ahk_id %MdiClient% ;WM_MDIGETACTIVE
if (hChild != ErrorLevel)
の部分が理解できないため宜しければ解説頂けないでしょうか
624名無しさん@お腹いっぱい。:2013/02/26(火) 14:29:43.33 ID:XM2Sq1LT0
>>623
>ChildClsName = "Excel7"の部分が Excelのバージョンによって違うのかExcel2007では動きませんでした・・
すまん ChildClsName はhChildのClass名ね(ClassNNではなく)
WinGetClass,ChildClsName,ahk_id %hChild% をifの前に取得してからやってみて


>if (hChild != ErrorLevel)
ErrorLevelにはWM_MDIGETACTIVEで取得したアクティブなMDI子ウィンドウのハンドルが入ってる
http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms644915%28v=vs.85%29.aspx

対象の子ウィンドウが既にアクティブな時は何もしないようにしてる
つっても判定なしで常に実行しても特に支障はないと思うので、邪魔くさかったら削っちゃてもおk
625名無しさん@お腹いっぱい。:2013/02/26(火) 15:36:29.26 ID:wk16gQ3+0
>>624
本当にありがとうございました!
なるほど戻り値がErrorLevelに格納されているんですね
Excelでもバッチリです
626名無しさん@お腹いっぱい。:2013/02/26(火) 18:51:32.25 ID:R2IcDDh4P
Win32API無知でスマソ
MdiClient := DllCall("GetParent",Ptr,hChild, Ptr)

MdiClient := DllCall("GetParent",UInt,hChild, UInt)

PtrはL専用という以外に 両者はどう違うんですか?
627名無しさん@お腹いっぱい。:2013/02/27(水) 01:07:24.68 ID:u4F8yNb80
x86とx64ではポインタ型のバッファサイズが違うため、UIntのままではx64版で正常に機能しない
Ptrって書いとけばLが自動でサイズ判断してくれる

>618-619の getMousePosWindowEx()は 2005年くらいに作った関数なのでそのあたり未考慮だが
DllCallの部分だけ修正すればx64 でもおkだと思う
hWnd := DllCall("WindowFromPoint",Int,mx, Int,my, Ptr)
hWnd := DllCall("GetParent"Ptr),hWnd,Ptr)
628名無しさん@お腹いっぱい。:2013/02/27(水) 01:09:39.92 ID:u4F8yNb80
×hWnd := DllCall("GetParent"Ptr),hWnd,Ptr)
○hWnd := DllCall("GetParent",Ptr,hWnd,Ptr)
629名無しさん@お腹いっぱい。:2013/02/27(水) 19:49:12.45 ID:KvFVP2/5P
>>627-628
勉強になりました。サンクスです。
630名無しさん@お腹いっぱい。:2013/02/28(木) 10:38:35.26 ID:Annsqc8S0
Windows7でWindowsサービスのウィンドウ上でマウスの横取りができないのですが、これってAutoHotKeyのexeに何日のプロパティを設定すれば治ったと思ったのですが、何を変更すればよかったのでしたっけ?
631名無しさん@お腹いっぱい。:2013/02/28(木) 18:12:05.55 ID:a4gvITa10
管理者権限の問題じゃ無いの?
632名無しさん@お腹いっぱい。:2013/02/28(木) 18:45:08.54 ID:uH7K3E2r0
UAC無効にしてる?
633名無しさん@お腹いっぱい。:2013/03/01(金) 17:08:24.10 ID:RNG84SxI0
モニタを外部出力のFn+F3キーをAutoHotKeyでコントロールしようと思い、「#InstallKeybdHook」でキーを調べましたが何も出力されませんでした。

「Fn+F3キー」のモニタの外部出力をAutoHotKeyで制御する方法はあるでしょうか?
634名無しさん@お腹いっぱい。:2013/03/01(金) 17:20:19.78 ID:b8uwB4Yi0
Fnは、キーボードのコントローラに届くものと、届かないものがある。

KOJINSHAとかの、さほどカスタマイズしてない(会社的に出来ない)三流メーカーのほうが、
キーコードがそのまま出てきたりして制御しやすい。

届かない奴は、なにをやってもダメだと思う。

画面関係の常駐ユーティリティが入ってて、タスクトレイから
同じ切り替え操作ができるならば、そっちを攻略したほうがよい。
635名無しさん@お腹いっぱい。:2013/03/01(金) 23:46:21.72 ID:2LWp7w/J0
対象アプリケーションのメニューのオン/オフ状態を取得することもできるんでしょうか?

http://uploda.cc/img/img5130bcd99007f.png
↑のようなメニューで、シークバー、コントロール、ファイル情報はオンの状態になっていて
統計(T)はオフになっていますよね。
これを取得したいんです
636名無しさん@お腹いっぱい。:2013/03/01(金) 23:50:50.09 ID:qRzd57Od0
その箇所の文字色を取得すればいいんじゃない?
637名無しさん@お腹いっぱい。:2013/03/01(金) 23:59:21.62 ID:2LWp7w/J0
文字色ですか・・・
メニューを表示させることなく、メニューの状態を取得できますかね?
638名無しさん@お腹いっぱい。:2013/03/02(土) 00:08:25.33 ID:CSJKyD+20
>>637
たぶんMPC-HCの設定ファイルから直接読み取るしかないような
http://memo.xight.org/2005-01-12-1
これを見るとiniに保存する設定があるから、レジストリからも読み取れるだろうけれどini経由で読み取るのが簡単かも
639名無しさん@お腹いっぱい。:2013/03/02(土) 00:24:24.55 ID:bT9C0rm60
>>638
WinMenuSelectItemとかでメニューバーのコマンドを送ることはできても
状態を取得するのは無理なんですね。
詳しくありがとうございます。

動的に取得したかったのでini経由というのは・・・
でもアイデアサンクス
640名無しさん@お腹いっぱい。:2013/03/02(土) 11:06:12.04 ID:qHFXeJbi0
統計(T)のオンオフをAHKから制御するのであったら
AHK内でAHK(T)のオンオフ状態を変数に保持しておくとか
オンオフを変更するときにAHKを絡ませておくのが現実的では
641名無しさん@お腹いっぱい。:2013/03/02(土) 19:52:12.73 ID:bT9C0rm60
サンクス。 やってみます
642名無しさん@お腹いっぱい。:2013/03/03(日) 05:08:23.78 ID:smqPpZO50
指定した秒数でAHKLの効果が消えるって設定は出来ますか?
初心者なので色々なホームページを見ながら作っているのですが
キーが押しっぱなしになって解除方法が分からない事とかがちょいちょい起こるので
そんな設定があればなと思いまして
643名無しさん@お腹いっぱい。:2013/03/03(日) 08:47:25.89 ID:LSlNAv5D0
DelayまたはTimterのあとにReload

だがそういう対症療法はホントはあまり取るべきじゃない
挙動がおかしいのが記述に問題があるからだと思われ、書き方を見なおすべき
修飾キーの押しっぱなし対処は>6を参照
644名無しさん@お腹いっぱい。:2013/03/03(日) 09:21:30.75 ID:TuGD2PhB0
その押しっぱなしになるスクリプトを見せてくれないとアドバイスのしようがない
645名無しさん@お腹いっぱい。:2013/03/03(日) 13:27:53.50 ID:9BR+/+Yx0
1. Xを1回押したらそのままShift+↑を入力
2. Xをもう1回押したらShift+↓を入力
3. Xをさらにもう1回押したらShift+↑
といった感じで1つのキーで交互に入力ってどう書いたらいいんでしょう
646名無しさん@お腹いっぱい。:2013/03/03(日) 13:59:05.22 ID:LSlNAv5D0
フラグ立てて前回の送信キーが何だったか判断すればいい
キーリピートあるから押下解除まちの処理も必要
647名無しさん@お腹いっぱい。:2013/03/03(日) 14:01:34.92 ID:9BR+/+Yx0
なるほど頑張りますありがとう!
648名無しさん@お腹いっぱい。:2013/03/03(日) 21:38:09.47 ID:9BR+/+Yx0
Send, +2でなぜかShift+2じゃなくてShiftと2が別々に入力されてるみたいなんだけどなんでだろう…
649名無しさん@お腹いっぱい。:2013/03/04(月) 13:53:06.60 ID:+dbxIVs10
GoSubで飛んだラベル先で、ラベル呼び出し元に戻さずスクリプトを停止することってできるのでしょうか?
終了フラグ立てて戻ってから停止させればいいだけなので、特に困ってるわけではないのですが
650649:2013/03/04(月) 14:17:52.49 ID:+dbxIVs10
すみません、自己解決しました Exitってコマンドがあるんですね
651名無しさん@お腹いっぱい。:2013/03/05(火) 15:23:22.17 ID:nSr3VUUbP
Win8でPixel系のコマンドを高速化する方法はありませんか?
652名無しさん@お腹いっぱい。:2013/03/05(火) 19:38:27.03 ID:GL7ccZCB0
そういや、そんな問題があったな。>win7で画像認識が遅い件

有料契約期間中はDLし放題のエロ動画を1ヶ月でフルコンプすべく、
XPマシンを用意して、DLボタン押し処理を24時間連続でやったわ
653名無しさん@お腹いっぱい。:2013/03/05(火) 20:04:30.69 ID:BXZF0Fge0
こちらの環境では遅延を感じること使えているがどうなんだろう
それでも明らかに遅いなら、コマンド自体の高速化はおそらく厳しいと思うから
やりたいことを実現するための方法の代案を考えてみては
654名無しさん@お腹いっぱい。:2013/03/05(火) 22:24:40.95 ID:nSr3VUUbP
仮想XPで代用できるかも知れないのでそっちの方向で進めてみます
レスthx
655名無しさん@お腹いっぱい。:2013/03/06(水) 11:18:11.34 ID:u39smDy80
メニューの選択はキー操作で可能ですが、メニューバー下のツールバー(?)のアイコン通したいのですが、ピクセル指定のマウスクリックではなく、他の簡単な方法はないでしょうか?
656名無しさん@お腹いっぱい。:2013/03/06(水) 13:59:03.69 ID:ShBecH/I0
>>655
アプリケーションに依ってしまい、汎用的に使える方法はピクセル検索以外にはない
むしろアイコンが用意されているものはメニューバーから全て選べることが多いはず
メニューバーに載っているものはAlt使えば全てワンアクションでAHKなら実行できる
657名無しさん@お腹いっぱい。:2013/03/07(木) 16:39:15.90 ID:2xPoStUV0
すいません、教えてください。
以前こちらであふのウインドウを新しく一つ立ち上げたときに、あふの既存のウインドウよりも少し右にずらす
スクリプトを教えて頂きました。非常に有用なのですが、わがままながらまたひとつ改善希望があります。

しかし、それでは、新しくウインドウをもう一つ立ち上げた時に
そのフォルダ表示が既存のあふウインドウのフォルダ表示と全く同じ(複製)ではなく、
直近に閉じたあふウインドウのフォルダ表示を復活させてしまうのです。(あふの設定で項目なしっぽい?)
Alt+z というショートカットキーコマンドをすると、既存のあふウインドウとまったく同じフォルダ表示のウインドウを一つ
立ち上げることができるのですが、それだと教えていただいたスクリプトに組み込めません。
run....PID というのが使えないからだと思います。
自分でいま考えたところだと、同じソフトのウインドウが2つ立ち上げたときに後に立ち上げた
ウインドウのみを指定して移動させるってのが思いつきません。

以前教えていただいたスクリプトはこれです。
WinGetPos, WinX, WinY,,, ahk_class TAfxWForm
Run, "C:\afxw\AFXW.EXE",,, PID
WinWait, ahk_class TAfxWForm ahk_pid %PID%
WinMove, ahk_class TAfxWForm ahk_pid %PID%,, (WinX+40), (WinY+0)

あふに関係することですが、現状、こちらにのみに書き込みました。
すいません、どうにかなりませんか?よろしくお願いします。
658名無しさん@お腹いっぱい。:2013/03/07(木) 17:31:26.05 ID:2LIzlLHx0
キーボード入力を横取りすることはできるようですが、ジョイパッドの入力を横取りすることはできますか?
659名無しさん@お腹いっぱい。:2013/03/07(木) 17:33:57.01 ID:39IDxhVL0
>>658
https://sites.google.com/site/autohotkeyjp/reference/KeyList
まずは自分でリファレンス読もうね
660名無しさん@お腹いっぱい。:2013/03/07(木) 17:45:17.94 ID:QEettc6t0
>>657
ド素人のオレが即席で書いた
エロイ人に怒られてみたいので誰かよろしく

#IfWinActive, ahk_class TAfxWForm
!z::
WinGet, oldPID, PID, A
WinGetPos, WinX, WinY,,, A
Send, !z
Sleep, 200
Loop
WinGet, newPID, PID, ahk_class TAfxWForm
Until newPID != oldPID
WinMove, ahk_pid %newPID%,, WinX+40, WinY
Return
661名無しさん@お腹いっぱい。:2013/03/07(木) 17:53:03.21 ID:2LIzlLHx0
>>659
読んだのですが、それらしい機能が見当たらなかったので確認の為に質問してみました。
662名無しさん@お腹いっぱい。:2013/03/07(木) 18:21:49.53 ID:39IDxhVL0
>>661
そうでしたか
ジョイスティックは、普通のボタンに関しては横取りできる
しかしボタン以外は厳しい
ジョイスティックを扱いたいならJoyToKeyを使うとよいです
個人的には、JoyToKeyでジョイスティックにキーを設定し、その上からAHKでカスタマイズしている
663名無しさん@お腹いっぱい。:2013/03/07(木) 18:23:40.22 ID:WOLiU5NS0
よーわからんがジョイパッドっつーのはジョイスティックとは違うコード吐くんかい?
664名無しさん@お腹いっぱい。:2013/03/07(木) 18:26:46.82 ID:39IDxhVL0
同じだったはず…上記の発言はその前提で説明してしまったので、
もしパッドとスティックで挙動が違っていたならすまない
665名無しさん@お腹いっぱい。:2013/03/07(木) 18:33:39.36 ID:2xPoStUV0
>>660
書いて頂いてありがとうございました。
動きました。最初の試行のうち2回ぐらい何度設定したキーを押しても
あふの2つ目が起動しなかったり、立ち上がった2つ目のあふのフォントが
おかしかったりしたのですが、いま何度もやってみると、ちゃんと動いてくれました。
あふとかほかの問題だったのかな。

なるほどAlT Z の前にWingetしておくのですね。
でもどうやって新しいウインドウのPIDを特定してPIDを割り当ててるんだろう。
Sleep200がミソなのかな。loopはなんだろう。
ぼくにはわかりませんが使わさせて頂きます。
ありがとうございました。
666名無しさん@お腹いっぱい。:2013/03/07(木) 22:51:35.40 ID:hnpeSACH0
>>662
ボタンだけなら横取りできるんですね、見落としてたようです。
ゲーム側の設定では未使用にできないボタンがあり、JTKでの設定では二重になってしまうのでイベント
を横取りできないかと思っていたんです。
回答ありがとうございました、探して設定してみます
667名無しさん@お腹いっぱい。:2013/03/07(木) 23:08:07.58 ID:dpChc2C90
>>665
loopとsleepがわからないようなレベルでahkが使えるわけないだろ
古事記乙
668名無しさん@お腹いっぱい。:2013/03/07(木) 23:13:53.50 ID:BZic7RnN0
> ぼくにはわかりませんが使わさせて頂きます。

ちょっとイラっときた
669名無しさん@お腹いっぱい。:2013/03/07(木) 23:35:18.17 ID:iNemENlq0
そいつ前から言い回しに苛ついてた
670名無しさん@お腹いっぱい。:2013/03/07(木) 23:51:15.88 ID:2JlbWNT10
気持ち悪いのがたくさん釣れましたねー
671名無しさん@お腹いっぱい。:2013/03/08(金) 00:57:51.17 ID:e+5FnBKC0
クレクレは親切な餌やり人が出た時点で負け
672名無しさん@お腹いっぱい。:2013/03/08(金) 01:41:42.40 ID:8uNqPL+Q0
>>668
すいません。どこがダメなの?おしえてほしい。
だってわからないし。
673名無しさん@お腹いっぱい。:2013/03/08(金) 02:18:08.44 ID:61FzCs7v0
この流れで質問ってちょっと怖いですけどお願いします

あるキーがリマップ出来ないんですが何が干渉してるのか探る方法なにかありませんか?
IEとIronだけ:をリマップ出来ず、それらだけ元のahkファイルから抜き出して実行するとリマップ出来るので他の部分から妨害されてると思うのですが
674名無しさん@お腹いっぱい。:2013/03/08(金) 02:19:29.56 ID:3bbp0hUw0
「あるキーが」って、なんで隠す必要があるの?
675名無しさん@お腹いっぱい。:2013/03/08(金) 03:24:41.13 ID:61FzCs7v0
ABCとその他大勢のソフトをahk_classで指定したahkファイルがあるんですが、
ABどちらかでもあるとCの:のリマップが阻害されます。AB共に:には手を出していません
ABCだけのahkファイル作ってみたら阻害されません←ここが分かりません

>>674
:があるキーです。分かりづらくてすみません
676名無しさん@お腹いっぱい。:2013/03/08(金) 03:25:43.68 ID:61FzCs7v0
Aは
#ifWinActive, ahk_class (\{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8\}|\{483DF8E3-09E3-40d2-BEB8-67284CE3559F\})
^e::Send,{Enter}
!j::Send,^+{left}
^+!j::Send,^+!{left}
!k::Send,^+{down}
!l::Send,^+{up}
^q::Send,!{F4}
^w::Send,!{F4}
^,::Send,^1
^.::Send,^2
!;::Send,^+{right}
^+!;::Send,^+!{right}

^i::KeyMap:= !KeyMap
^vk1Dsc07B::KeyMap:= 0
^vk1Csc079::KeyMap:= 1
j::SendInput, % KeyMap ? "^{WheelUp 30}" : A_Thishotkey
+j::Send, % KeyMap ? "+{left}" : A_Thishotkey
k::Send, % KeyMap ? "{down}" : A_Thishotkey
+k::Send, % KeyMap ? "+{down}" : A_Thishotkey
^k::Send, % KeyMap ? "^{down}" : A_Thishotkey
l::Send, % KeyMap ? "{up}" : A_Thishotkey
+l::Send, % KeyMap ? "+{up}" : A_Thishotkey
^l::Send, % KeyMap ? "^{up}" : A_Thishotkey
`;::SendInput, % KeyMap ? "^{WheelDown 30}" : A_Thishotkey
+;::Send, % KeyMap ? "+{right}" : A_Thishotkey
677名無しさん@お腹いっぱい。:2013/03/08(金) 03:26:32.66 ID:61FzCs7v0
A続き
a::Send, % KeyMap ? "^a" : A_Thishotkey
c::Send, % KeyMap ? "^c" : A_Thishotkey
d::Send, % KeyMap ? "{PgDn}" : A_Thishotkey
+d::Send, % KeyMap ? "+{PgDn}" : A_Thishotkey
e::Send, % KeyMap ? "{End}" : A_Thishotkey
f::Send, % KeyMap ? "^f" : A_Thishotkey
h::Send, % KeyMap ? "{Home}" : A_Thishotkey
m::Send, % KeyMap ? "{AppsKey}" : A_Thishotkey
n::Send, % KeyMap ? "^n" : A_Thishotkey
o::Send, % KeyMap ? "{Enter}" : A_Thishotkey
p::Send, % KeyMap ? "!{Enter}" : A_Thishotkey
q::Send, % KeyMap ? "!{F4}" : A_Thishotkey
678名無しさん@お腹いっぱい。:2013/03/08(金) 03:27:06.47 ID:61FzCs7v0
更にA続き
r::;#first key
Suspend, On
if KeyMap
{
Input,InputChar,C I L1 T2,{Esc},a,d,e ;#second keys
if InputChar = a
Send,+!r
if InputChar = d
Send,^+d
if InputChar = e
Send,!r
}else{
Send,r
}
Suspend, Off
return
s::Send, % KeyMap ? "^+s" : A_Thishotkey
u::Send, % KeyMap ? "{PgUp}" : A_Thishotkey
+u::Send, % KeyMap ? "+{PgUp}" : A_Thishotkey
v::Send, % KeyMap ? "^v" : A_Thishotkey
x::Send, % KeyMap ? "^x" : A_Thishotkey
/::Send, % KeyMap ? "^f" : A_Thishotkey
679名無しさん@お腹いっぱい。:2013/03/08(金) 03:27:42.22 ID:61FzCs7v0
Bは
#ifWinExist, ahk_class \{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8\}
pause::Send,^+s
で一部Aと重複しています
ちなみにこの重複してるのはfoobar2000のメインウィンドウです
680名無しさん@お腹いっぱい。:2013/03/08(金) 03:28:21.47 ID:61FzCs7v0
Cは
#ifWinActive, ahk_class (IE|Internet Explorer_TridentDlg)Frame
^b::Send,^+i
^d::Send,{Del}
^e::Send,{Enter}
^h::Send,{BS}
^+i::Send,{F12}
^q::Send,!{F4}
^,::Send,^+{Tab}
^.::Send,^{Tab}

^i::KeyMap:= !KeyMap
^vk1Dsc07B::KeyMap:= 0
^vk1Csc079::KeyMap:= 1
j::Send, % KeyMap ? "{left}" : A_Thishotkey
+j::Send, % KeyMap ? "+{left}" : A_Thishotkey
!j::SendInput, % KeyMap ? "{left 5}" : A_Thishotkey
+!j::SendInput, % KeyMap ? "+{left 5}" : A_Thishotkey
k::Send, % KeyMap ? "{down}" : A_Thishotkey
+k::Send, % KeyMap ? "+{down}" : A_Thishotkey
!k::SendInput, % KeyMap ? "{down 5}" : A_Thishotkey
+!k::SendInput, % KeyMap ? "+{down 5}" : A_Thishotkey
l::Send, % KeyMap ? "{up}" : A_Thishotkey
+l::Send, % KeyMap ? "+{up}" : A_Thishotkey
!l::SendInput, % KeyMap ? "{up 5}" : A_Thishotkey
+!l::SendInput, % KeyMap ? "+{up 5}" : A_Thishotkey
`;::Send, % KeyMap ? "{right}" : A_Thishotkey
+;::Send, % KeyMap ? "+{right}" : A_Thishotkey
!;::SendInput, % KeyMap ? "{right 5}" : A_Thishotkey
+!;::SendInput, % KeyMap ? "+{right 5}" : A_Thishotkey
681名無しさん@お腹いっぱい。:2013/03/08(金) 03:29:47.24 ID:61FzCs7v0
C続き
a::Send, % KeyMap ? "^a" : A_Thishotkey
b::Send, % KeyMap ? "^{End}" : A_Thishotkey
+b::Send, % KeyMap ? "^+{End}" : A_Thishotkey
c::Send, % KeyMap ? "^c" : A_Thishotkey
d::Send, % KeyMap ? "{PgDn}" : A_Thishotkey
+d::Send, % KeyMap ? "+{PgDn}" : A_Thishotkey
e::Send, % KeyMap ? "{End}" : A_Thishotkey
+e::Send, % KeyMap ? "+{End}" : A_Thishotkey
f::Send, % KeyMap ? "{F3}{Enter}" : A_Thishotkey
+f::Send, % KeyMap ? "{F3}+{Enter}" : A_Thishotkey
h::Send, % KeyMap ? "{Home}" : A_Thishotkey
+h::Send, % KeyMap ? "+{Home}" : A_Thishotkey
m::Send, % KeyMap ? "{AppsKey}" : A_Thishotkey
n::Send, % KeyMap ? "^{Enter}^{Tab}" : A_Thishotkey
+n::Send, % KeyMap ? "^{Enter}" : A_Thishotkey
o::Send, % KeyMap ? "{Enter}" : A_Thishotkey
682名無しさん@お腹いっぱい。:2013/03/08(金) 03:30:19.23 ID:61FzCs7v0
更にC続き
p::Send, % KeyMap ? "!to" : A_Thishotkey
q::Send, % KeyMap ? "!{F4}" : A_Thishotkey
r::Send, % KeyMap ? "^r" : A_Thishotkey
t::Send, % KeyMap ? "^{Home}" : A_Thishotkey
+t::Send, % KeyMap ? "^+{Home}" : A_Thishotkey
u::Send, % KeyMap ? "{PgUp}" : A_Thishotkey
+u::Send, % KeyMap ? "+{PgUp}" : A_Thishotkey
v::Send, % KeyMap ? "^v" : A_Thishotkey
w::Send, % KeyMap ? "^w" : A_Thishotkey
x::Send, % KeyMap ? "^x" : A_Thishotkey
y::Send, % KeyMap ? "+{BS}" : A_Thishotkey
z::Send, % KeyMap ? "{BS}" : A_Thishotkey
/::Send, % KeyMap ? "^f" : A_Thishotkey
vkBA::Send, % KeyMap ? "^l" : A_Thishotkey
0::Send, % KeyMap ? "^0" : A_Thishotkey
でIEです

Vista 32bit, AHK_Lです
683名無しさん@お腹いっぱい。:2013/03/08(金) 03:50:21.35 ID:61FzCs7v0
あと:に^付けてやればABあってもリマップ出来ます
:をvkBAやvkBAsc028などにしても同様でABどちらかあれば出来ず、^を付ければ出来ます
684名無しさん@お腹いっぱい。:2013/03/08(金) 03:51:20.41 ID:61FzCs7v0
全く以て意味不明です
疲れました、もう寝ます
685名無しさん@お腹いっぱい。:2013/03/08(金) 09:20:51.42 ID:e+5FnBKC0
原因特定で重要なのは絞り込み
必要最小限の構成で現象が出るとこまで追い込む
ダラダラ長いコード眺めててもなかなか見つけらんないからね

・#ifwinactive ahk_class の正規表現バラしてどのウィンドウ記述で引っかかってるか確認
・ホットキー一行ずつ試しながら削ってく
・あまり関係ないかもだが keymap ? とかの判断要素は一時的に外す(デバッグ時の確認行程減らして見通しよくする)
686名無しさん@お腹いっぱい。:2013/03/08(金) 11:17:01.96 ID:iCdEnQt20
確かに自分のコードをまず見せるようにとはみんな言うが
ここまでノイズが激しいコードを載せるのは逆に良くない
>>685さんが言ってくれてるが、影響している(と思われる)部分に絞らないと
ここまで長いコードだと読むのも試すのもやる気になれない

こういう場合のデバッグ方法としてはAHK自体のデバッグ機能を使うべき
AHKのメインウィンドウのViewから、
・Hotkey and their medhods
:キーリマップ部分をコメントアウトし、:キーがすでにフックされているかどうかなどを確かめる
・Lines most recently executed
:キーリマップ部分を書いたままの状態で、正しく動作しないだろうがそのまま:キーを押し、
キーを押した時にどの部分のコードが実行されているのかを確かめる

これで原因は特定・解決できるはず
687名無しさん@お腹いっぱい。:2013/03/08(金) 11:31:39.33 ID:61FzCs7v0
よくよく考えたらahkファイルをどっかにうpすればよかったですね
文字通りにスレ汚しすみません……

>>685さん>>686さん
いろいろ確認法のご提示ありがとうございます
>>686さんの方法はまだ試してなかったので、帰宅し次第試したいと思います
688名無しさん@お腹いっぱい。:2013/03/08(金) 14:19:30.31 ID:3bbp0hUw0
>よくよく考えたらahkファイルをどっかにうpすればよかったですね

全然理解していない件
689名無しさん@お腹いっぱい。:2013/03/08(金) 15:47:12.86 ID:pQjcQ9Y+0
単純化すると、↓だぜ。

#IfWinActive, 条件A
#IfWinExist, 条件B
#IfWinActive, 条件C

#If〜 はファイルの頭(※)から読んで最初にマッチした条件があれば
そこに定義されているホットキーやリマップが発動する。

ってことは、条件Bに合致する窓があれば C の窓がアクティブでも動かず、
条件 B のホットキーが動くってことになるぜよ。

ってことは、WinActiveのブロックを前に持っていくのがいいんじゃないかと。
試す気は無いけど。

#IfWinActive, 条件A
#IfWinActive, 条件C
#IfWinExist, 条件B


(※) 複数ファイルに分割されていてもロード時には単一のテキストとして扱われる。
   したがって #Includeの位置が大事

余談: #If (式) 覚えるのが一番よさそう
690名無しさん@お腹いっぱい。:2013/03/08(金) 15:51:27.36 ID:tcPSEcxa0
普段使ってるコードが長い時は一旦それ横に置いといて
別の実験用コード書いてテストする事が多いわ
691名無しさん@お腹いっぱい。:2013/03/08(金) 17:06:02.14 ID:+zLI7HiA0
#IfWinActive, 条件
ホットキー::
じゃなくて

ホットキー::
IfWinActive, 条件
のほうが見やすい気がするんだが前者の方式のほうがいい?
慣れかな・・
692名無しさん@お腹いっぱい。:2013/03/08(金) 17:11:44.50 ID:4WVOUv/g0
慣れだな
693名無しさん@お腹いっぱい。:2013/03/08(金) 17:37:07.74 ID:LJQAuIvP0
後者の問題点
・すべてのアプリでホットキーが有効になってしまう。条件にマッチしないアプリ向けに Send % A_ThisHotkey でもするつもりか
・コードの肥大化。アプリが10、20に増えたときを想像してみるといい
694名無しさん@お腹いっぱい。:2013/03/08(金) 17:48:29.97 ID:+zLI7HiA0
>>692-693
勉強になったお。サンクス
695名無しさん@お腹いっぱい。:2013/03/08(金) 19:16:55.76 ID:+zLI7HiA0
WIN32APIとAHKは
どのくらい動作スピードが違うのでしょうか?

AHKはプログラムのスキルがない私でも
そこそこ弄れて便利だなと思うのですが・・・
やはり同じ仕事をするにもネイティブだと比べ物にならないくらい速いのでしょうか?
696名無しさん@お腹いっぱい。:2013/03/08(金) 19:23:23.01 ID:61FzCs7v0
>>686さんのも試したのですが、
Key history and script infoってのもあったのでやってみましたら、
ダメなときは
# d :
 u :
でした
#=Disabled via #ifWinActive/Exist
とあるので、ウィンドウ指定をミスしてる故にSend,^lが不発、ということですよね……
正規表現がなにか不味いのかとCを
#ifWinActive, - Windows Internet Explorer
にしてみましたが効果無し……

ABCその他全部ある場合にABとはあまり関係無いCだけ不調で、
ABを除くかABCだけにすると大丈夫ってどういうことなんでしょう……
もしその他が悪さしてるとなると切り分けて特定がめっちゃくちゃめんどう……orz

>>689
その線ではないようでした
697名無しさん@お腹いっぱい。:2013/03/08(金) 22:30:02.61 ID:+eb+Mmpb0
疑似ドラッグ&ドロップをする方法はありますか?
そのアプリケーションの起動時に指定した文字列(ファイルパス)を渡すのではなくて、
ファイルパスを特定のアプリケーションのウィンドウ上に移したいです
メモ帳のウィンドウ上にファイルをD&Dすると内容が表示されるようなあれです。
698名無しさん@お腹いっぱい。:2013/03/08(金) 22:32:25.33 ID:LJQAuIvP0
699697:2013/03/09(土) 00:31:40.82 ID:IZYUaw3U0
>>698
ありがとうございます。できました。
700名無しさん@お腹いっぱい。:2013/03/09(土) 01:30:47.20 ID:3oqWcPuH0
8−7なのか、結構進んでるやん
もうちょっとやね
701名無しさん@お腹いっぱい。:2013/03/09(土) 01:31:19.44 ID:3oqWcPuH0
ごばくしました
702名無しさん@お腹いっぱい。:2013/03/09(土) 09:03:45.99 ID:nLAONPIm0
ドライブCにあるPortableってフォルダをドライブRにコピーしたい場合、
FileCopyDir, C:\Portable,
の後どう書いたらペースト出来るのでしょうか?
また、コピー元のフォルダが複数ある場合の書き方も教えて下さいm(_ _)m
703名無しさん@お腹いっぱい。:2013/03/09(土) 09:20:21.87 ID:zKU8+fPh0
FileCopyDir, C:\Portable,R:\

複数ある場合は複数回 FileCopyDirする
記述減らしたいなら Loop 使ってどうにかする
704名無しさん@お腹いっぱい。:2013/03/09(土) 09:44:18.93 ID:nLAONPIm0
>>703
ありがとうございます。
それではコピーされなかったのですが他の問題の可能性もあるのでしょうか。。
windows7 64bitでAHKLを使用していて
ドライブRはRAMディスクでリムーバブルとして認識させています。

R:\の半角スペースの違いだけですが
FileCopyDir, C:\Portable, R:\
だとコピーはされている様ですがペーストはされません。
FileCopyDir, C:\Portable,R:\
だとコピーもされていない様です。
705名無しさん@お腹いっぱい。:2013/03/09(土) 11:08:50.00 ID:zKU8+fPh0
すまん、実際にスクリプト動かして動作確認はしてなかった
(試してみてできなかったこと、上手く行かなかったことは予め書いておいてくれたほうが話が早い
そこに注視して調べるから)

FileCopyDir, C:\Portable,R:\Portable,1

コピーとペーストの違いが分からんかったが、親フォルダごとコピーはDest側も指定しないと掘らない模様
あと何故か知らんがFileCopyDirは上書きフラグ立てないとコピーできなかった
win7 x64 AHKL UAC切った状態でテスト、UAC効いてる状態でどうなるかは不明
706名無しさん@お腹いっぱい。:2013/03/09(土) 11:15:28.91 ID:zKU8+fPh0
補足
上書きフラグなしでコピーできないのはR:\が既に存在してたからだった
R:\に Portable フォルダがない状態で
FileCopyDir, C:\Portable,R:\Portable は問題なかったわ
スレ汚しすまん
707名無しさん@お腹いっぱい。:2013/03/09(土) 12:55:43.84 ID:nLAONPIm0
おぉ!出来ました!
Portableも入力しなきゃ駄目だったんですね。
ありがとうございます^^
708名無しさん@お腹いっぱい。:2013/03/09(土) 18:39:10.02 ID:IZYUaw3U0
MassiGraというソフトで、ソフトが最前面になくてもf5で再読み込みをしたいのですが、うまくいきません
元の画像再読み込みショートカットキーはshiftとrです
f5::
ControlSend, , +r, ahk_class TF811202_MassiGra_Main
ControlSendの使い方が間違っているのでしょうか?
709名無しさん@お腹いっぱい。:2013/03/09(土) 19:05:13.81 ID:IegRyM3r0
>>708
第一引数に対象のControlを指定するか、WinTitleに"Control"のウィンドウハンドルを直接指定する必要がある
指定の仕方は↓
https://sites.google.com/site/autohotkeyjp/reference/Window#TOC-Control-Control-

ControlSend, ここにClassNN名を書く , +r, ahk_class TF811202_MassiGra_Main
あるいは
ControlSend,, +r, ここにControlのウィンドウハンドルを指定する
710名無しさん@お腹いっぱい。:2013/03/09(土) 19:23:48.46 ID:dvdXBFRj0
>>708
ControlSend, ahk_parent, +r, ahk_class TF811202_MassiGra_Main
でいける
711名無しさん@お腹いっぱい。:2013/03/09(土) 20:16:33.82 ID:IZYUaw3U0
>>709-710
ありがとうございます。できました。ばっちりです。
712名無しさん@お腹いっぱい。:2013/03/09(土) 22:16:13.64 ID:+VG4lEic0
ahk_parentのリファレンスてありますか?
初めて知りましたw
713名無しさん@お腹いっぱい。:2013/03/09(土) 22:49:05.88 ID:dvdXBFRj0
>>712
AutoHotkeyJpには書いてない
公式リファレンスに一応書いてある。(が、公式の説明もあまり詳しくなかったかもしれない)
714名無しさん@お腹いっぱい。:2013/03/09(土) 23:08:24.50 ID:+VG4lEic0
サンクス
715名無しさん@お腹いっぱい。:2013/03/10(日) 01:12:48.46 ID:F9ZuV87y0
本日のご視聴ありがとうございました。
次回も良かったら見に来てください。
おやすみなさいませ。
716名無しさん@お腹いっぱい。:2013/03/10(日) 14:20:16.48 ID:bXzvr8Wn0
最近PC用リモコンを買って、そのキーを変更するためにAHKも入れたんですけど
リモコンで>>を押すと →Ctrl+→Shift+→ みたいにキーが連続入力されるみたいなんです。

→が押されてから0.1秒以内にCtrl+→が押されたら→を送信せず別のキーを送信する
→が押されてから0.1秒経ったら→を送信する
みたいな動作をさせたいんですけどどうすればいいですかね?
717名無しさん@お腹いっぱい。:2013/03/10(日) 14:28:45.78 ID:a2+ZXFHY0
→が押されてから0.1秒以内にCtrl+→が押されたかどうかをifで判別すれば出来る
718名無しさん@お腹いっぱい。:2013/03/10(日) 14:31:56.14 ID:5qHgpWtq0
WinGet,pid1,PID,A
IfWinExist,ahk_class MediaPlayerClassicW
  WinGet,pid2,PID
Else {
  作業123
}

If(pid1!=pid2) {
  作業123
}

このような場合
作業123の部分をまとめて書くことはできるんでしょうか?
Else OR If (pid1 =! pid2)のように書ければいいなーと思ったんですが
719名無しさん@お腹いっぱい。:2013/03/10(日) 14:38:49.12 ID:LEZtiKuS0
>>716
このサンプル使えばいいんじゃね?

1つのキーに3種類以上の動作割り当て
http://ahkwiki.net/%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%E9%9B%86
720名無しさん@お腹いっぱい。:2013/03/10(日) 16:01:44.36 ID:DNOy/Dwi0
>>716
Right::
 hoge := 1
 sleep,100
 if (!hoge)
  MsgBox,1秒以内
 else
  Send,{Right}
 hoge := 0
return

^Right::
 if (hoge)
  hoge := 0
 else
  send,^{Right}
return
721名無しさん@お腹いっぱい。:2013/03/10(日) 16:18:37.19 ID:yH5pINNL0
毎時00分に実行とか指定できますか?
722名無しさん@お腹いっぱい。:2013/03/10(日) 16:25:25.73 ID:DNOy/Dwi0
723名無しさん@お腹いっぱい。:2013/03/10(日) 16:42:31.90 ID:bXzvr8Wn0
>>>717,719,720回答ありがとうございます
>>719を参考に何とか動く物を自作しました


Right::;右キーを押して0.05秒以内にCtrlを…
KeyWait,Ctrl,D T0.05
If(errorlevel)
{
;押さなかったら右を送信
KeyWait,a
send,{Right}
Return
}
;押したらキーを変更
send,2
^Right::Return
^+f::Return

Left::;左キーを押して0.05秒以内にCtrlを…
KeyWait,Ctrl,D T0.05
If(errorlevel)
{
;押さなかったら左を送信
KeyWait,a
send,{Left}
Return
}
;押したらキーを変更
send,1
^Left::Return
^+b::Return
724名無しさん@お腹いっぱい。:2013/03/10(日) 16:57:51.92 ID:LEZtiKuS0
>>723
KeyWaitとsendの位置が逆のような気が・・・。
これだと離してからキー送信してるよ。
725名無しさん@お腹いっぱい。:2013/03/10(日) 18:00:01.77 ID:bXzvr8Wn0
>>724
位置が逆というかテスト段階で入れて消し忘れてた KeyWait,a が不要な模様

あと、せっかく作ってくれたんで>>720も試してみたんですけど
71 hotkey have been received in the last 1170ms. と出て動作しませんでした
リモコンが送信するホットキー多すぎってことかな
726名無しさん@お腹いっぱい。:2013/03/10(日) 18:26:32.09 ID:LEZtiKuS0
ホットキーが短時間に大量に実行されるとなるエラーだね
どっかで無限ループになってんじゃない?
フック使わないでホットキーに割り当てているキーをSendするとなるね
#UseHook でフック使えばおk
727名無しさん@お腹いっぱい。:2013/03/10(日) 19:51:59.64 ID:bVOnFByq0
if (!hoge)
if (hoge)
みたいなのってよく使う?
解説リンクないかな
728名無しさん@お腹いっぱい。:2013/03/10(日) 20:02:44.84 ID:LEZtiKuS0
729名無しさん@お腹いっぱい。:2013/03/10(日) 20:28:22.54 ID:bVOnFByq0
サンクスです
730名無しさん@お腹いっぱい。:2013/03/12(火) 20:51:30.01 ID:IowZ7ral0
ちょっと今Win機触れないんで聞きたいんだけど↓みたいな書き方出来たっけ?

if (keyboard=1) or (keyboard=3)
#1::send, !{F4}
#2::send, !{space}n
#3::send, !{space}x

if (keyboard=2) or (keyboard=4)
#1::send, !veo
#2::send, !veb
#3::send, !mar
731名無しさん@お腹いっぱい。:2013/03/12(火) 21:10:44.57 ID:3cIqs7lC0
>>730
_Lなら出来るよ。#If (keyboard=1) ...
732名無しさん@お腹いっぱい。:2013/03/12(火) 21:39:22.74 ID:8EDIoiVI0
keyboard変数に任意の数値入れるのかな?
4つのキーボードのデバイスNo取りたいっつーと結構面倒だった気がするが
733名無しさん@お腹いっぱい。:2013/03/12(火) 21:56:15.01 ID:IowZ7ral0
>>731
#付けないと出来ないか……
ありがと

>>732
とりあえず4つのキーボードを手動切り替えのつもり
734名無しさん@お腹いっぱい。:2013/03/13(水) 20:31:04.68 ID:m8V2J4uB0
FenrirFSのタグ付け支援とかこれでなんか出来ないかね?
エロの管理が大変で大変で
735名無しさん@お腹いっぱい。:2013/03/14(木) 10:46:52.06 ID:8MyXxe4r0
「Lines most recently executed」で見られるログだけど
「Return」の行が邪魔なのでこれを省いたり空白にする方法はないだろうか・・
736名無しさん@お腹いっぱい。:2013/03/14(木) 11:10:53.19 ID:cs9DjpOQ0
むしろReturnがないと区切りをどう判断するのか
737名無しさん@お腹いっぱい。:2013/03/14(木) 11:16:05.82 ID:r/ZqnpiY0
そのログって、どういう作業をするときに参照するの?
AHK4年くらい使ってるが、使ってこと無いな
738名無しさん@お腹いっぱい。:2013/03/14(木) 12:16:42.66 ID:OcCF/Iis0
AHK本体の窓で見られる情報は基本みなデバッグ用だよ
739名無しさん@お腹いっぱい。:2013/03/14(木) 12:32:53.42 ID:mb59jpJdP
スクリプトが「思ってたんと違う」動作をしたときに何処で問題が起きたのか調べる時に使う
常駐スクリプトは数千行を超えたからこれがないとやってられん
740名無しさん@お腹いっぱい。:2013/03/14(木) 18:04:06.14 ID:r/ZqnpiY0
俺の場合、常駐スクリプト30000行になってて、
1秒ごと、1分ごと、1時間ごと、1日ごとに定期巡回させたりしてるから、
直前の行とか表示しても意味ないから使わなかったんだな。

いまは、ログファイルを決めて全部そこに、
%A_Now%と一緒になにをやったか吐き出してる。
741名無しさん@お腹いっぱい。:2013/03/14(木) 18:42:03.73 ID:OcCF/Iis0
Mouse without Bordersのホットキー強力すぎ
MWBのホットキーは Ctrl+Alt+R(任意キー) なのに、Shift+Ctrl+Alt+R って打っても横取りされる
AHKでも奪えないっぽい?
なんか打つ手ないかなあ
742名無しさん@お腹いっぱい。:2013/03/15(金) 01:52:48.67 ID:UI3UoELk0
オープンソースでAutoHotKey みたいな言語をLinux用にひな形だけ書こうと思ってるんだが
出来ればひな形だけ書いて有志に完成をまかせたい
そのためにどういう設計にすべきか考えた

Linux での言語シェアと 
Linux での vim, IDE と組み合わせやすさ、という点から 

Java で書くことにしたんだが
意見を聞かせて欲しい。文法はちょっと変えるつもりコメントは//とか
743742:2013/03/15(金) 01:55:44.54 ID:UI3UoELk0
文章がひどいがそこは勘弁してください
744名無しさん@お腹いっぱい。:2013/03/15(金) 02:02:18.73 ID:Ubjsv3pa0
>>742
最終的に、泥端末でahkの基本命令を使えるプロジェクトなら、喜んで人柱デバッグします
745名無しさん@お腹いっぱい。:2013/03/15(金) 03:40:54.85 ID:9dMyMiMs0
人を集めるってことだと
javascriptにキーマップ用の簡易記述を取り込んで
HTML5でGUIも書けます
みたいな胡散臭いのをC++で作るほうがいいんでない

キー割り当てを一つ書くだけでクラスや関数を書かされると
大多数のライトユーザは引いちゃう気がするんで
簡易記述は大事だと思う
746名無しさん@お腹いっぱい。:2013/03/15(金) 14:04:04.11 ID:sOBVmUDv0
>>745
a::b

の記法は成り立つように書きます
747名無しさん@お腹いっぱい。:2013/03/15(金) 17:31:07.33 ID:1KvcKe0o0
駐在してる(ペンタブの設定)ソフトのボタンやらチェックやらをAHKでバックで操作出来ますか?
WindowSpyで見えてる classNN : ButtonN らへんが怪しいのですがその先がワカリマセン><
748名無しさん@お腹いっぱい。:2013/03/15(金) 17:35:13.20 ID:t5rp/6qY0
私もワカリマセン><
749名無しさん@お腹いっぱい。:2013/03/15(金) 18:08:24.77 ID:V5qPLyW70
>classNN : ButtonN らへんが怪しいのですが

なにをもって怪しいと判断したのか具体的に。
750名無しさん@お腹いっぱい。:2013/03/15(金) 18:21:44.13 ID:4CyvdhLF0
翻訳してみると

常駐してる(ペンタブの設定)ソフトのボタンやチェックボックスの状態を、非アクティブ状態でAHKから操作出来ますか><

じゃないのかな>< チェックボックスやラジオボタンなら
ControlGet, Outputvar, Checked, , ATL:BUTTON7, ahk_class msseces_class
;msgbox , % Outputvar
if (!OutputVar) {
ControlClick , ATL:BUTTON7, ahk_class msseces_class
}
751名無しさん@お腹いっぱい。:2013/03/15(金) 19:13:12.94 ID:1KvcKe0o0
>>750 ワカリマセン!ゴメンナサイ>< そして翻訳アリガトウ ><
ttps://sites.google.com/site/autohotkeyjp/reference/commands/ControlGet
↑ここを眺めたりググったりしたけど、ボタンを押す やら チェックするのサンプルがなくてワカリマセン,スイマセン><

>>749 使うとしたらこれかなとオモッタダケデス ><
752名無しさん@お腹いっぱい。:2013/03/15(金) 20:47:21.28 ID:4CyvdhLF0
>>751 ControlGetは今の状態を取るもので 押すのはControlClick な
ボタンにも効くはず
そのページの下の方にリンクある あとは頑張れ
753名無しさん@お腹いっぱい。:2013/03/15(金) 21:48:01.33 ID:1KvcKe0o0
>>752
アリガトウ! >< いやほんとにありがたい。どうもでした
754名無しさん@お腹いっぱい。:2013/03/16(土) 00:52:46.32 ID:UPs5Yvwb0
Javaならアノテーション使えば便利かもしれんのぉ

@Instance(Persistent=true, TrayIcon=true)
public class Main extends Autohotkey {

 @Htokey("^a")
 public void winMoveRight() {
   Ptr hwnd = winGet("A");
   winMove(hwnd, 100, 0);
 }

}
755名無しさん@お腹いっぱい。:2013/03/17(日) 15:06:33.42 ID:ah8cFrWz0
↓みたいにフルパスを取得したいんですが

WinGet,pid,PID,A
h_Process := DllCall( "OpenProcess", "UInt", 0x10|0x400, "Int", False, "UInt", pid, "Ptr")
FileNameSize := 260
VarSetCapacity(ModuleFileName, FileNameSize, 0)
CallResult := DllCall("Psapi.dll\GetModuleFileNameExW", "Ptr", h_Process, "UInt", 0, "Str", ModuleFileName, "UInt", FileNameSize)
DllCall("CloseHandle", h_Process)
Return ModuleFileName

IEx86 (C:\Program Files (x86)\Internet Explorer\iexplore.exe)は効くんですが
IEx64 (C:\Program Files\Internet Explorer\iexplore.exe)へは動きません。

何処を直せばいいんでしょうか?
756名無しさん@お腹いっぱい。:2013/03/17(日) 15:22:36.90 ID:C8eqiq8k0
>>755
WinGet path, ProcessPath, A
MsgBox % path
757名無しさん@お腹いっぱい。:2013/03/17(日) 15:48:04.14 ID:ah8cFrWz0
サンクス!
そんなんでよかったんだ!w
なんで長々と書いてたのかorz
758名無しさん@お腹いっぱい。:2013/03/17(日) 15:58:32.78 ID:r+OYyVRg0
ProcessPathがサポートされたのはわりと後だよね
昔は98系とNT系でパスの取り方違ってて切り替えたりしてたわ
759名無しさん@お腹いっぱい。:2013/03/17(日) 16:03:08.67 ID:tbC/7trZP
ProcessPathていつから?
760名無しさん@お腹いっぱい。:2013/03/17(日) 16:09:35.46 ID:4ebl83P10
1.1.01.00 - July 30, 2011
Added new sub-command: WinGet, OutputVar, ProcessPath.
761名無しさん@お腹いっぱい。:2013/03/17(日) 16:12:03.93 ID:cMrk1f6a0
WMPで再生中の曲のタイトルを取得する方法はあるでしょうか?
762名無しさん@お腹いっぱい。:2013/03/17(日) 18:59:15.31 ID:08GnykSs0
1.1.09.04 - March 14, 2013

Fixed Gui menu accelerator keys not working when the Gui itself (not a control) has focus.
763名無しさん@お腹いっぱい。:2013/03/17(日) 21:16:24.46 ID:x/zuV9Dm0
64ビットネイティブなアプリケーションが対象でも
PostmessageのMsg引数は0x111なのでしょうか?
http://sites.google.com/site/autohotkeyjp/reference/misc/SendMessage

32ビット時はうまく行っていたのが全く動かなくなってしまいました・・・
WM_COMMANDの番号を調べる方法はありませんか
764名無しさん@お腹いっぱい。:2013/03/18(月) 09:16:15.34 ID:ncx78Lzm0
>>754
("^a") ("A")
765名無しさん@お腹いっぱい。:2013/03/18(月) 11:06:21.63 ID:7qNNzvnf0
>>764
一瞬、顔文字に見えた
766名無しさん@お腹いっぱい。:2013/03/18(月) 14:14:21.16 ID:loiyuDKK0
>>765
俺だけじゃなかったか……
767名無しさん@お腹いっぱい。:2013/03/18(月) 20:49:45.76 ID:qQeMdTRe0
>>756
ProcessPathが間違ったパスを取得してしまう事ってある?

対象プログラムのフォルダを手動で別の場所に移動して実行→そのプロセスに対してWinGet〜したら
旧フォルダのパスを取得したよw
どうしたらいいんでしょう
768名無しさん@お腹いっぱい。:2013/03/18(月) 22:10:50.82 ID:xtbw1LBf0
本当にそんな事が起こるならバグだから、ちゃんと検証してね
769名無しさん@お腹いっぱい。:2013/03/19(火) 05:46:20.90 ID:d/TOR+IC0
もしかしてOS、Vista?だったらありえるけど
770名無しさん@お腹いっぱい。:2013/03/19(火) 18:37:28.03 ID:jAx4I+kO0
UAC云々かな?
771名無しさん@お腹いっぱい。:2013/03/19(火) 20:17:59.07 ID:pidvmT6O0
767です
Win7です。今日再起動したら正しい値を取得してますね
でも昨日は酔っ払ってたわけじゃなく確かにそうでした
AHK再起動&対象アプリ再起動でも症状治りませんでした
64bitアプリは何かと特殊なのかな?
32bitアプリへのWinGetは昨日も正常に動作してました

・・今、再度フォルダ名を変えてみましたがやっぱり古いフォルダ名を取得しますね
772名無しさん@お腹いっぱい。:2013/03/19(火) 21:46:00.02 ID:icpX/yKh0
なぜ具体名を出さないんだろう?
773名無しさん@お腹いっぱい。:2013/03/20(水) 14:27:57.25 ID:G7cW5nZR0
Linarのサムネイルビューにキーボードのフォーカスがあるときだけキーリマップを有効、ってしたいんですが
マウスカーソルの位置はControlGetFocusで取得できるのですがキーボードのフォーカス位置が取得出来ません
どうすればいいでしょう?

具体的には下記です
;Linar
#ifWinActive, ahk_class Afx:[\w\d]{8}:[\w\d](:[\w\d]{8}){3}
Enter::
 Send, ^C
 Run, C:\Program Files\MassiGra\MassiGra.exe "%Clipboard%"
return

一応、各ClassNN書いておきます
サムネイルビュー……AfxFrameOrView90s1
メニューバー……ToolbarWindow322
フォルダツリー……SysTreeView321
774名無しさん@お腹いっぱい。:2013/03/20(水) 15:46:29.97 ID:U7MO56/j0
>>773
#If WinActive("ahk_exe Linar.exe") && Linar_IsFocusThumbView()
Enter::
Send, ^c
Run C:\Program Files\MassiGra\MassiGra.exe "%Clipboard%"
Return
#If

Linar_IsFocusThumbView() {
ControlGetFocus focusedView, ahk_exe Linar.exe
Return focusedView = "AfxFrameOrView90s1" ? True : False
}
775名無しさん@お腹いっぱい。:2013/03/20(水) 21:16:32.95 ID:G7cW5nZR0
>>774
ありがとうございます、出来ました
#if以降は流行らせるページでは見覚えのない記法ですが、他のスクリプト言語ですか?
776名無しさん@お腹いっぱい。:2013/03/20(水) 21:40:43.36 ID:wCJ7qU9O0
どうみても普通にAHKの記述
これが読めないってことはAHK以外の言語を触ったことないんだろう
AHKのリファレンスページではこの手の基本の基本の解説はないから
777名無しさん@お腹いっぱい。:2013/03/20(水) 21:54:54.61 ID:G7cW5nZR0
AHK含むスクリプトの基本的な記法でしたか
お察しの通りAHKしか知りません
今後なるべくお手間をかけたくないのですがどの言語の初歩解説から読んだらよいのでしょう?
778名無しさん@お腹いっぱい。:2013/03/20(水) 22:46:43.05 ID:xC4By+vb0
dotinstall.comのcとかluaの説明を見てみればいいかも?
779名無しさん@お腹いっぱい。:2013/03/20(水) 23:03:44.46 ID:Bef1lwDp0
俺もAHK以外は最近の言語全然知らないんだけど、
ハテナの分岐とか、わかってる人からしたら見通しってよくなるの?

それとも、昔のBASICみたいに極度に縮めて可読性を悪くして
悦に入ってる系の小細工?
780名無しさん@お腹いっぱい。:2013/03/20(水) 23:07:46.67 ID:G7cW5nZR0
>dotinstall.com
すごく丁寧で分かり易そうでした
ありがとうございます
781名無しさん@お腹いっぱい。:2013/03/21(木) 00:14:54.97 ID:X6dvjCid0
?の分岐はC++あたりで見たような
自分もわかってなかったけどあれはヘルプ熟読して覚えたわ
一文でまとめて式扱いで変数に突っ込めるのでなれると楽
ただelseif分岐が重なる時はさすがに普通にif文使ったほうがいいかも
782名無しさん@お腹いっぱい。:2013/03/21(木) 03:37:44.43 ID:00eKaNSl0
>>775 関数の使い方も、Ternary operator (二項演算子)でヘルプに書いてる
783名無しさん@お腹いっぱい。:2013/03/23(土) 01:56:49.70 ID:DZTiyXzm0
spyで取れるahk_classというのは
Win32APIのどれで取得できるものなんでしょうか。

アクティブなウィンドウのハンドル、
ハンドル->ウィンドウタイトルの取得は出来たんですが
ハンドル->ahk_classに相当する文字列の取り方がよくわかりません。

スレ違いどころか板違いなんですがもし知ってる人がいたら教えて下さい。
784名無しさん@お腹いっぱい。:2013/03/23(土) 02:06:48.42 ID:vNaTKThj0
785名無しさん@お腹いっぱい。:2013/03/23(土) 18:06:47.47 ID:Iu54y4/L0
プログラミング言語とスクリプト言語てどう違う? 
786名無しさん@お腹いっぱい。:2013/03/23(土) 18:32:55.10 ID:B6pmJP/20
>>785
プログラミング言語=スクリプト言語+コンパイル言語
787名無しさん@お腹いっぱい。:2013/03/23(土) 18:36:47.62 ID:S6BIPOnm0
>>785
いまはほとんど同じ
788名無しさん@お腹いっぱい。:2013/03/23(土) 18:58:09.82 ID:f1wgnGDy0
横や周囲を見る癖つけるといいよ
789名無しさん@お腹いっぱい。:2013/03/23(土) 19:03:38.56 ID:TW2QlgvR0
言語じゃなくて実行方式が違う
言語仕様の実装はコンパイラ&スクリプタでまちまち
完全ローカルなのもあれば既存言語を適用するものもあり

ahkはかなりチャンポン、色々まぜてかつローカル仕様も残ってる
790名無しさん@お腹いっぱい。:2013/03/23(土) 22:20:41.67 ID:x+Uof1NGP
俺もAHKしか知らないからか>>774以降が全然分からんかった
いかにも「プログラム」って感じがするわ
791名無しさん@お腹いっぱい。:2013/03/23(土) 23:11:17.09 ID:q2Cqya+D0
AHKしか知らないしJpしか見てないが>>774わかるぞ?
Return行は初めて見たけど、想像ついた
792名無しさん@お腹いっぱい。:2013/03/24(日) 00:51:19.90 ID:zy5FmDyQ0
#Ifとahk_exeによるWindow指定以外は流行らせるページでも全部解説されてると思うんだが…
793名無しさん@お腹いっぱい。:2013/03/24(日) 01:22:20.10 ID:uLHzF3RF0
ControlGetFocusのあとにカンマ入れなくて良いの?
794名無しさん@お腹いっぱい。:2013/03/24(日) 02:11:29.96 ID:zy5FmDyQ0
http://ahk.xrea.jp/Scripts.html
>コマンド名の直後は、空白文字で区切れば、カンマを省略してもよい。(第1引数に空白を指定する場合を除く)
795名無しさん@お腹いっぱい。:2013/03/24(日) 08:56:33.21 ID:w8pciHwC0
>>793
かんまわない
796名無しさん@お腹いっぱい。:2013/03/24(日) 22:33:08.06 ID:uLHzF3RF0
フォルダ以下のアイテムを正規表現でリネームって
Loop(files)とRegExReplace()とFileMoveだけで出来ますかね?
797名無しさん@お腹いっぱい。:2013/03/24(日) 23:30:23.07 ID:9xN658GQ0
やってから聞け
798名無しさん@お腹いっぱい。:2013/03/25(月) 16:36:15.01 ID:GUSsFF1b0
質問:RUNコマンドでプログラムを起動してもウインドウをアクティブにしない方法はありますか?

 具体的に書くと、全画面モードでゲームしている裏でKeyHoleTVを聞いてるんだけど、KeyHoleTVって一定時間で
切られちゃうので、自動で再起動&チャンネルの再接続させてるんだけどKeyHoleTVがアクティブになるためにゲームが
中断されてしまう。
 今は、直ぐにゲームをアクティブにするようにしてるけど、もともとKeyHoleTVがアクティブにならなければ良い話し
なんで。
799名無しさん@お腹いっぱい。:2013/03/25(月) 17:53:21.78 ID:bqwO0U3W0
最小化または非表示で起動させればいいだけじゃないの?
ttp://ahkwiki.net/Run_/_RunWait
800798:2013/03/25(月) 18:51:46.93 ID:GUSsFF1b0
非表示では外のコマンドがうまく働かなくて思った動作をしないんですよね。最小化はやっぱり一旦フォーカスがKeyHoleTVに
移ってしまうようなんです。やり方が悪いのかな。
801名無しさん@お腹いっぱい。:2013/03/25(月) 20:26:19.29 ID:fH4S+s9b0
ControlSend, ahk_parent, {MButton}, ahk_id %Window%

でほとんどのアプリケーションへミドルクリックを送れません><
マウスボタンは難しいのでしょうか?
802名無しさん@お腹いっぱい。:2013/03/25(月) 22:33:18.68 ID:EB7DPXxu0
クリップフォルダ内の重複項目を探しだして消すにはどのように記述すればいいのでしょうか?
803名無しさん@お腹いっぱい。:2013/03/25(月) 22:55:29.84 ID:HVKepEgB0
しかるべく
804名無しさん@お腹いっぱい。:2013/03/25(月) 23:25:28.46 ID:olrHEJI70
>>798
適当なツールでゲームを常に最前面にすれば?
805802:2013/03/25(月) 23:30:37.71 ID:EB7DPXxu0
スレ間違えてました。すみません
806名無しさん@お腹いっぱい。:2013/03/25(月) 23:35:07.62 ID:GUSsFF1b0
>>804
なるほど。その手があったか。
ありがとう。
807名無しさん@お腹いっぱい。:2013/03/28(木) 01:26:56.08 ID:mlrPipwX0
プログラムできる人て情報系の学校出てるか
そういう仕事に就いているかのどちらかなのかな
808名無しさん@お腹いっぱい。:2013/03/28(木) 01:43:55.84 ID:uZiD50ry0
大学に行けば私立文系でもjavaやphpを勉強したり、統計言語を勉強するよ
809名無しさん@お腹いっぱい。:2013/03/28(木) 13:12:37.94 ID:pw6WNwNK0
俺はjavaみたいな本格的なプログラムはさっぱりできないけど、
hsp、AHK、Proxomitronみたいな物ならなんとか扱える
810名無しさん@お腹いっぱい。:2013/03/28(木) 13:47:54.22 ID:a/MFtEH90
メモリ関係の扱いを別にすればどれも似たようなものでしょ
811名無しさん@お腹いっぱい。:2013/03/28(木) 21:35:23.78 ID:yzLqHUKW0
私は最近ifと三項演算子の使い分けを覚えました
812名無しさん@お腹いっぱい。:2013/03/28(木) 23:34:59.02 ID:zP4NKt+R0
三項演算子について解説してあるサイトがあれば教えて下さい
813名無しさん@お腹いっぱい。:2013/03/28(木) 23:37:13.56 ID:u/zBE7sL0
>プログラムできる人て情報系の学校出てるか
>そういう仕事に就いているかのどちらかなのかな

イギリス人は英文科卒でなくても英語話せますよ?

普段からちょいちょいプログラム読み書きするクセが
あるかどうか。それだけのお話。
814名無しさん@お腹いっぱい。:2013/03/28(木) 23:59:55.46 ID:6+in3SeT0
>>812
>>1にあるだろ
815名無しさん@お腹いっぱい。:2013/03/29(金) 00:21:10.64 ID:2Ktk6qce0
英文科って英語の勉強するところじゃないだろ
文学に関して勉強するところだろ
外語大も言語能力習得の場ではなく、地域研究やその他研究の場だろ
816名無しさん@お腹いっぱい。:2013/03/29(金) 00:55:51.27 ID:71Q31yre0
飛び先が256ワード以内なら即値JMPを使わないとか、
この命令はクロック消費がいくつで・・・とかのアセンブリ以外は
全部同じレベルに思える
817名無しさん@お腹いっぱい。:2013/03/29(金) 01:06:55.00 ID:limK0Scq0
じゃあ ここにいる人はVC++とか持ってる?
818名無しさん@お腹いっぱい。:2013/03/29(金) 06:26:54.98 ID:wiFjmmSP0
いい加減スレ違
819名無しさん@お腹いっぱい。:2013/03/29(金) 09:18:27.22 ID:t++tMnpN0
うむさすがにそろそろAHKに戻すべき
とだけ言うのも何なので戻すために話題の提供でも

CapsLock→Ctrl を完全に実現するのはAHKでは不可なのはよく知られた事実
それでもそれもどきな挙動を実現しようと試みた人も多いのでは?その手法を教えて下さい
820名無しさん@お腹いっぱい。:2013/03/30(土) 00:36:09.12 ID:732i+7O90
そもそもCapsLock→Ctrl にしようとするのは何故なんだろう
ctrlが押しやすくなるわけだけど、結局はctrl+aとかctrl+vを押しやすくするためでしょ
そう考えたら変換+aや変換+vでctrl+a,ctrl+vにすればいいと思うようになった
これならautohotkeyできちんと設定できるよ
821名無しさん@お腹いっぱい。:2013/03/30(土) 01:14:09.99 ID:bYPaXzrX0
Ctrl の位置には別に不満はないが、CapsLockだきゃーぬっころしたい

Windowsのいつの頃からか忘れたが CapsLock単体押しで勝手にIME ONになる
挙動になっちゃって誤爆するたびにイライラするわ
しかもIME側のキー設定からもカスタマイズできないとかね
822名無しさん@お腹いっぱい。:2013/03/30(土) 09:55:53.78 ID:68DYIf5G0
なんか忘れたけど、Windows側が最初に読み込むキーマップの定義INIを
個別に編集して、PCをリブートするだけで、永久に抹殺できなかったっけ?

CapsLockを殺すだけなら、それでできたはず。
その設定を編集するGUIツールで変更した記憶がある。
823名無しさん@お腹いっぱい。:2013/03/30(土) 10:00:47.84 ID:niLC5k5+0
>>820
歴史的に今のCapsLockの位置はしばしばCtrlで使われてきた経緯がある
もちろんja配列のキーボードはenよりも後に出てるわけだから、そもそも昔は変換キーや無変換キーがない
するとやはりCtrlの位置候補としてはCapsLockくらいしかない
そういう経緯があって一部のLinuxディストリではGUIの設定でCapsLock→Ctrlできたりする
824名無しさん@お腹いっぱい。:2013/03/30(土) 10:03:04.20 ID:niLC5k5+0
>>822
レジストリいじればもちろんできる
INI書き換えるのもありだけど、そんな奇妙なことするくらいならCapsLockをF13にでも置き換えたほうがいい
ただレジストリ変更は最終手段であって、レジストリ変更なしでできるならそうしたいと望む人が多い
825820:2013/03/30(土) 10:43:17.93 ID:732i+7O90
>>823
そうだったのか
なるほどね
826名無しさん@お腹いっぱい。:2013/03/30(土) 10:51:45.12 ID:68DYIf5G0
日本人はたいていシフトで済ますが、アメ公は大文字1つ打つだけなのに

 CAPSON→1字打つ→CAPSOFF

ってやるらしいよ。
今でも、それなりに需要があるキーなんだろう。
827名無しさん@お腹いっぱい。:2013/03/30(土) 12:26:33.60 ID:JupL3uNk0
迷うことなくレジストリいじったわ
828名無しさん@お腹いっぱい。:2013/03/30(土) 13:36:38.34 ID:Mrys9Vew0
AutohotkeyでOキーを押したらhuiの3キーが同時押しされたことにしたいんですけどそういうのって出来ますか?

格ゲー配列を再現したいんです
829名無しさん@お腹いっぱい。:2013/03/30(土) 13:42:52.18 ID:JupL3uNk0
出来るよ
830名無しさん@お腹いっぱい。:2013/03/31(日) 20:13:29.74 ID:ylQFejpa0
キーボード買い換えたら、Lockランプが明るい奴だったのでこんなの作ってみた

http://www6.atwiki.jp/eamat/pub/MyScript/ の「IME.ahk」を利用
;IME状態をscrollランプで表示
_ImeInfoTimer:
  if IME_GET(_mhwnd()) {
   SetScrollLockState,On
  }else{
   SetScrollLockState,Off
  }
return

ほとんどのソフトはscrollLockがONでも特に変化はないが
Excelはアローキーで画面をスクロールさせるモードになるので注意
831名無しさん@お腹いっぱい。:2013/04/01(月) 11:33:25.52 ID:ZAzUT5MH0
autohotkeyでウィンドウクラスじゃなくexe指定ってできないんでしょうか。
ググって見てもちょっとやり方がわからないんです
832名無しさん@お腹いっぱい。:2013/04/01(月) 12:44:54.80 ID:6Q19qOVo0
AutoHotkey_L なら ahk_exe で指定できるよ
833名無しさん@お腹いっぱい。:2013/04/01(月) 14:05:07.28 ID:ZAzUT5MH0
ありがとうございます。早速やってみます
834名無しさん@お腹いっぱい。:2013/04/01(月) 23:34:26.46 ID:Im4dM0Bm0
ついでに質問です
こっちは技術的な問題じゃなくてアイディアの方なんですけど、右のテンキーってどうしてますか?
ショートカットに使えそうなそうでないような、かと言ってあまり触らないキー群なんですけど何かに使えないかなと思って
835名無しさん@お腹いっぱい。:2013/04/02(火) 00:38:00.97 ID:wSXbY1iA0
Numpad0 モディファイアで色々やった
片手IME入力とかもやった

ひととおりやって飽きた
836名無しさん@お腹いっぱい。:2013/04/02(火) 20:01:55.91 ID:Noc2xLbg0
動画プレイヤーの拡張コントロールに使えるよ
「コマ戻し」「再生・一時停止」「1倍速」を連続送信して「再生&1倍速」
数秒スキップを連続送信して早送り・巻き戻し
コマ送り・コマ戻しを連続送信してスロー
みたいな感じ
837名無しさん@お腹いっぱい。:2013/04/02(火) 20:43:46.51 ID:nA3rGQB20
その気になりゃいくらでもプログラマブルキーとして活用可能だがつい普通に数字入力しようとして誤爆繰り返して諦めた
838名無しさん@お腹いっぱい。:2013/04/02(火) 21:35:49.92 ID:x2wFHo+90
それはウインドウクラスを見て、
該当のプレイヤーのみキー変換、他アプリでは無変換
そういう風にしないと誤爆するでそ。
839名無しさん@お腹いっぱい。:2013/04/02(火) 21:50:31.96 ID:HX2GlTHx0
DVD再生時、TS再生時などでクラスの名前が変わったりして、その判別を加えたり、
停止すると、あるはずのクラスが消滅してて動かなかったり、音声ファウルだと股挙動が変わったり、
いろいろやってるうちに、物凄くスパゲッティになり、いじるのも面倒になってくる
840名無しさん@お腹いっぱい。:2013/04/02(火) 22:07:54.82 ID:nA3rGQB20
>>838
もちろんそれはしてる
だが該当のアプリでも、通常と同じようにテンキーとして使おうとして誤爆するのよね
条件反射ってこわいわ
841名無しさん@お腹いっぱい。:2013/04/05(金) 17:28:38.10 ID:2hh1jCtP0
Run,C:\eclipse\eclipse.exe
一瞬起動中の画面が出て消えてしまうんだけどなんで?
他のソフトは普通に起動できる win7 64bit autohotkeyL 64bit 1.1.09.04
842名無しさん@お腹いっぱい。:2013/04/05(金) 20:29:04.51 ID:dXZun1cX0
Run,C:\eclipse\eclipse.exe,C:\eclipse\
843名無しさん@お腹いっぱい。:2013/04/05(金) 21:38:48.09 ID:2hh1jCtP0
サンクス
844名無しさん@お腹いっぱい。:2013/04/08(月) 10:28:44.01 ID:sJRDC70w0
無変換キーでマウス右クリックを行ってます。
sc07B::MouseClick, left, , , , ,

上のスクリプトだとマウス右クリックがリピートされるのですが、
キー押下中はマウスドラッグになるように変更するにはどう変更すればいいか教えてください。
845名無しさん@お腹いっぱい。:2013/04/08(月) 11:25:29.50 ID:4C7E1An40
846名無しさん@お腹いっぱい。:2013/04/08(月) 11:56:25.05 ID:Dn8tjRym0
Pauseキーを他キーに置き換えたい。
Changekey等の他ソフトも使って。
ググったらPauseキーは無理ってあるけどほんと?
847名無しさん@お腹いっぱい。:2013/04/08(月) 17:16:45.45 ID:u2Qo4OMn0
>>846
勘違いしてるなググったならちゃんと読めば?
848名無しさん@お腹いっぱい。:2013/04/09(火) 21:34:04.44 ID:Mh9fC3gc0
SetTitleMatchMode, 2
って動かないの?
どうやっても後方一致できないんだけど
849名無しさん@お腹いっぱい。:2013/04/09(火) 21:40:46.55 ID:OG4pJD9H0
同じやつが質問繰り返してるのか、こんなやつが増えたのかどっちなんだろ
850名無しさん@お腹いっぱい。:2013/04/09(火) 22:15:03.80 ID:nagy1LGl0
>>849
たぶん前者
851名無しさん@お腹いっぱい。:2013/04/09(火) 22:35:56.33 ID:Mh9fC3gc0
いや、初やし
あと失礼、先頭につければちゃんと動いたわ
852名無しさん@お腹いっぱい。:2013/04/10(水) 11:42:12.68 ID:Lgxch2R3P
↑お前は見るからにアホっぽい。二度と来んな
853名無しさん@お腹いっぱい。:2013/04/10(水) 11:45:28.78 ID:GNIezB0m0
まぁ、実際のところここに入り浸ってる奴らもわかってないんだろ。ヒントの一つもかけないようじゃな
854名無しさん@お腹いっぱい。:2013/04/10(水) 12:36:26.01 ID:NhHe9v3H0
>>853
いや>>848ぐらいのことがわかってないのは>>848とお前ぐらいだよw
855名無しさん@お腹いっぱい。:2013/04/10(水) 13:37:30.91 ID:nimGd5gR0
>>853
うん、>848のレス読んだ段階ではAutoexecuteの問題だって気づけなかったわ
長くスレにいると初心者が引っかかりそうな内容はある程度検討つくようにもなるけど
エスパー回答も情報不足だとなかなかむずかしい

でも>848は自己解決の報告もしてるし逆切れしてスレ住人に噛みついた訳でもない
二度とくるなて言われるほどひどい質問態度でもないでしょ
あんま排他的になりすぎるのもどうかと思う
856名無しさん@お腹いっぱい。:2013/04/10(水) 15:53:24.13 ID:bzv01TBe0
久しぶりのAutoHotKeyですが、AutoHotKey_L用のMouseGesture2はないのでしょうか?
857名無しさん@お腹いっぱい。:2013/04/10(水) 15:56:05.59 ID:Ws+mBnov0
>久しぶりのAutoHotKeyですが

って、どういう意味?
858名無しさん@お腹いっぱい。:2013/04/10(水) 16:35:39.55 ID:NhHe9v3H0
>>856
>>2に書いてるよ
>MouseGestureについては有志の方がAHKL対応版を配布しているのでそれを利用するのもありです。
>http://code.google.com/p/mousegesturel/
859名無しさん@お腹いっぱい。:2013/04/12(金) 18:10:23.33 ID:aNNnkDqM0
Loop
{
Sleep, 10
GetKeyState, state, NumpadAdd, P
if state = U ; The key has been released, so break out of the loop.
break
; ... insert here any other actions you want repeated.
}

このコードでNumpadAddではなくすべてのキーが離されたらループを抜けるというコードは書けますか?

実際には4つ判定並べてCtrl, Alt, Shift, WinくらいをチェックすればだいたいOKなんですが
念のためすべてのキーが簡単にチェックできるならそう書きたいです
860名無しさん@お腹いっぱい。:2013/04/13(土) 02:22:00.59 ID:QiWpt/EN0
A_TimeIdlePhysical を使うのはどうだろうか
861名無しさん@お腹いっぱい。:2013/04/13(土) 21:15:04.05 ID:PbhCpzi90
Google Chromeで”戻る”コマンドのときに現在のページが最後(最初?)のページだったらタブを閉じる、
ただし、最後のタブだったらChromeを終了させずに何もしない、というスクリプトをマウスの戻るボタンに
割り当ててます。ただ、戻るボタンの状態や最後のタブかどうかというのをうまく取得できないので色判定で
代用しています。直接、chromeのボタンの状態やタブの数等を取得できないものでしょうか?
862名無しさん@お腹いっぱい。:2013/04/16(火) 14:32:17.75 ID:yD4VD/wV0
MouseGestureL.ahkってソフトごとにジェスチャを割り当てるマウ筋とは考え方が違うのですね…
マウ筋の代用には難しいか…
だれかマウ筋の代用として使っている人いますか?
863名無しさん@お腹いっぱい。:2013/04/16(火) 14:45:44.82 ID:Qcl/8K2+0
ソフト毎に割り当ても可能です。
864名無しさん@お腹いっぱい。:2013/04/16(火) 14:45:57.24 ID:gV5Fo3iH0
基本的に、マウ筋でできることって、ahkで全部出来るよ。
ソースは、3年前に移行した俺。

ahkを一通り8割くらいコマンドを把握したうえでの話だけど。
865名無しさん@お腹いっぱい。:2013/04/16(火) 14:47:21.11 ID:JnwInLAX0
ただ使いこなせてないだけじゃないのか・・・。
866名無しさん@お腹いっぱい。:2013/04/16(火) 17:07:01.02 ID:92x9a1T00
862が代用として使えないんだから使えるって言ってもしょうがないんじゃねーかな
低能に大金持たせても有意義に使えないのと一緒で
867名無しさん@お腹いっぱい。:2013/04/16(火) 20:05:45.45 ID:o1CMP6B70
まぁでもあのインターフェイスの仕様視認性悪くて使いにくいよね
仕方ないから動作割り当てなしの空のジェスチャ定義作ってパーテーション代わりにしたり、
他条件定義がある場合はその注釈を入れたりしてるわ
それでも(当たり前だけど)アプリ毎に完全に並べきれないのが歯痒い
868名無しさん@お腹いっぱい。:2013/04/16(火) 20:36:55.10 ID:Rv59P8lJ0
アイコン増えすぎ笑えない。区別させたいけどアイコンの変え方分からなくて泣きそう
だれかタスクトレイアイコンのいじり方教えてくれませんか
869名無しさん@お腹いっぱい。:2013/04/16(火) 21:36:09.75 ID:JnwInLAX0
>>868
どんなコマンドがあるか再確認しましょう・・・。
ttp://ahkwiki.net/Menu,Icon
ttp://ahkwiki.net/SampleCodes 目次4
870名無しさん@お腹いっぱい。:2013/04/17(水) 09:28:39.30 ID:rAdZGpPn0
唯一マウ筋がありがたいのが、「マウスメッセージを横取りする」がアプリごとに選択できること

例えばこれをオフにするとマウ筋のマウスジェスチャーとFirefoxのマウスジェスチャーが共存できる
MouseGestureはFirefoxのマウスジェスチャーと共存できなかったような
871名無しさん@お腹いっぱい。:2013/04/17(水) 16:08:18.56 ID:zH2pJjLR0
旧流行らせるページ管理人氏のMouseGesture.ahkの頃は #ifとかなかったからね
使ってないから知らんけど、L対応の改造版ならいけるんでねか
872名無しさん@お腹いっぱい。:2013/04/17(水) 22:18:37.50 ID:X3B2e9mBi
MouseGesture 右ボタンのジェスチャしか登録してないけど
左ボタンやX1 X2のジェスチャも使ってる人いる?
以前、通常の左ボタンの感度が悪くなって使うの止めた・・・
873名無しさん@お腹いっぱい。:2013/04/17(水) 22:24:40.30 ID:BVOwAN9E0
X1 X2 X3使ってる
どのソフトでも始動に左は使わない方が無難だと思う
874名無しさん@お腹いっぱい。:2013/04/17(水) 22:48:10.25 ID:yUtTiG1f0
>>873 ありがとう〜
X1〜X3は問題なく使えるんですね。やはり左は外したほうがいいね
今の時代X3なんていうマウスもあるんだー
875名無しさん@お腹いっぱい。:2013/04/17(水) 23:36:19.61 ID:BVOwAN9E0
>>874
↑↓とかじゃなく、X1_RB__みたいになるべくボタンに割り当てたいんだよね
だからボタンを増やすために、親指の下の所にボタンがあるからそこをX3にして使ってる
876名無しさん@お腹いっぱい。:2013/04/18(木) 15:36:23.50 ID:1KzEI5mi0
やべーSpaceキーをワンショッットモデファイヤ化したらすげー便利

でもデフォルトでSpace & 表記しちゃうと他のやつでいくら#IfWinActiveしても反応してくれないのね・・・
877名無しさん@お腹いっぱい。:2013/04/18(木) 16:55:52.60 ID:3g17SHjx0
キーボードのひだり半分にキー集約するとマジ捗る
ただしモデファイヤ配置に悩むことになる
878名無しさん@お腹いっぱい。:2013/04/18(木) 17:01:54.10 ID:q2OhdotVP
具体例挙げてくれると嬉しいんだが
879名無しさん@お腹いっぱい。:2013/04/18(木) 17:25:07.26 ID:3g17SHjx0
ん?俺のやってるの?

超簡単だよ。基本サンプルの寄せ集めだし

単体でahkファイル作って、使わないときにサスペンドホットキー用意
俺の場合はF1

あとはspace & 何かのキー::send,なんとかかんとか
最期にSpace up::send,{space}書き加えておしまい。
880名無しさん@お腹いっぱい。:2013/04/18(木) 18:16:04.27 ID:6uXQc0d5i
space & F1みたいな感じか。なるほどその発送はなかった
881名無しさん@お腹いっぱい。:2013/04/18(木) 18:20:57.10 ID:bBgmGqqA0
>>880の読解力
882名無しさん@お腹いっぱい。:2013/04/18(木) 18:24:26.20 ID:Bgk9LTUMi
space & F1でも普通に作れるし
883名無しさん@お腹いっぱい。:2013/04/18(木) 18:27:01.37 ID:q2OhdotVP
>>879
サンクス!
Space up::send,{space}ですね
884名無しさん@お腹いっぱい。:2013/04/18(木) 18:56:58.34 ID:3g17SHjx0
ちょっとだけサンプル書くと

SC03B::Suspend

;wasd
Space & w::Send,{Blind}{Up}
Space & a::Send,{Blind}{Left}
Space & s::Send,{Blind}{Down}
Space & d::Send,{Blind}{Right}

;スペースキー上げでスペース発射
Space Up::Send,{Space}

マジでこれだけ。
他のスペースが必要なソフトは別に避けてAHKファイル作ってる。
スマートじゃないけどさ。
885名無しさん@お腹いっぱい。:2013/04/18(木) 23:30:15.04 ID:8XuUnGuC0
テンキーの0を押してるあいだマウスの左クリックを押し続けてる状態にして
0を離すと左クリックも離すように使いたいのですがどうすればいいでしょうか
886名無しさん@お腹いっぱい。:2013/04/19(金) 00:17:43.82 ID:o/eIY7XH0
画像のExif情報をできるだけ速く取得する方法はないかな?
今は画像ソフトを経由して情報を取得してるんだけどちょっと間が合って困ってる。

あともう一つなんだが、ファイルの種類が音楽か動画か素早く判断できないものだろうか?
大抵は拡張子で分かるんだが、一部被ってる拡張子があって無理やり真空波動研に渡してどっちか調べてる。
887名無しさん@お腹いっぱい。:2013/04/19(金) 00:41:24.89 ID:c7ZcszOJ0
Numpad0::
send,{blind}{Lbutton down}
keywait,Numpad0
send,{blind}{Lbutton up}
return

とかいうかんじ?動くかは知らない
888名無しさん@お腹いっぱい。:2013/04/19(金) 13:01:16.41 ID:j8Nu+Y850
InputBox使って肥大化させていけば
autohotkey って擬似OSに出来ちゃわないだろうか
vim, emacs に次ぐ第三の宗派と呼ばれる爆発力が微粒子レベルで存在している?
889名無しさん@お腹いっぱい。:2013/04/19(金) 13:13:29.13 ID:5JMT/8V30
(ヾノ・∀・`)ナイナイ

表記ゴチャゴチャだし出来ないことも多いし挙動怪しいし
軽いキーバインド変更以上の役割は無理だよ
890名無しさん@お腹いっぱい。:2013/04/20(土) 16:51:22.59 ID:YBwkXlVu0
AutoHotkey.ahkをEmEditorで開きたいのですがうまくいきません
今までTeraPadで開けてたので
!e:: Run, "C:\Program Files\TeraPad\TeraPad.exe" "C:\Users\a\Documents\AutoHotkey.ahk"
これを
!e:: Run, "C:\Program Files\EmEditor\EmEditor.exe" "C:\Users\a\Documents\AutoHotkey.ahk"
に変えてみても何も起こらない
AutoHotkeyの問題ではないのかもしれませんが
分かる方いましたら教えてください
891名無しさん@お腹いっぱい。:2013/04/20(土) 17:30:25.71 ID:5mDYUD1T0
考え方を変えるんだ
デスクトップにAHKファイルのショートカットリンクを張り、そこでショートカットキーを設定すればいいんだ

ランチャに登録しちまうのもありだね。
俺はポータブル版使ってるからbatで変数渡す関係上ランチャ登録してるし
892名無しさん@お腹いっぱい。:2013/04/20(土) 18:30:11.25 ID:YBwkXlVu0
>>891
とりあえず開けるようにはなりました
解決策が見つかるまでこれでやってみます
どうもありがとう
893名無しさん@お腹いっぱい。:2013/04/21(日) 02:29:07.55 ID:0nmSVkOA0
初歩的なことだったら恥ずかしいのですが、
プロセスのIDからその実行ファイルのフルパス、または実行ファイルのアイコンを取得することはできますか。
プロセス名のみであればWinGetでさっくり取れるのですが、こいつはDLLCallなど使わなければだめでしょうか。
894名無しさん@お腹いっぱい。:2013/04/21(日) 02:31:49.45 ID:7YjzmBzM0
全部流行らせるページにサンプルがあったはず

アイコン取りたければ、まず上でフルパスを特定して、そのパスに対して抜き取る関数で
取れた気がするけど忘れた
895名無しさん@お腹いっぱい。:2013/04/21(日) 04:16:52.85 ID:7paD9jSq0
>>893
http://l.autohotkey.net/docs/commands/WinGet.htm
フルパスもWinGetで取得できる

↓適当にアクティブWindow切り替えながらF12を押したり放したりしてみよう
F12::
WinGet, Path, ProcessPath, A
Gui, Add, Picture, , %Path%
Gui, Show
KeyWait, F12
GUI, Destroy
Return


AutoHotkeyJpも>>582のWikiもProcessPathについての記述がなかったんで
>>582のWikiの方は勝手に編集してみた。おかしかったら訂正よろしく
896名無しさん@お腹いっぱい。:2013/04/21(日) 09:36:51.90 ID:uB7TO0fZ0
7の64bitでAltTabに出てくるウィンドウの一覧の名前・クラス名を取得できる?
前に何処かで拾ったスクリプトがこの環境では使えなくなってしまった

>>893
アクティブウィンドウから実行ファイルのフルパス取得なら自分はこれを使ってる
PID := WinGetPID("A")
For process in ComObjGet("winmgmts:").ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId='" PID "'")
Var := process.ExecutablePath
897896:2013/04/21(日) 11:28:10.83 ID:b3dIU/J+0
ああごめん>>895で回答出てたね
プロセスパスもゲットできたのかそっちの方がスマートだね
>>896の質問も分かる人いたら頼みます
898名無しさん@お腹いっぱい。:2013/04/21(日) 14:29:36.31 ID:Gc7WvmyL0
autohotkeyのコンビネーションキーのどのウィンドウでも押したら無効が続くクソ仕様に嫌気が差して自分で組んだらやたら長くなった。
とりあえず素人が組むもんじゃないなと実感。
899名無しさん@お腹いっぱい。:2013/04/21(日) 17:01:05.72 ID:r9COj4uo0
>>886
自分はjhead.exeで標準出力に吐き出させたExif情報を加工してToolTipしてる
こちらの環境ではこの方法で遅延はないかなぁ
900名無しさん@お腹いっぱい。:2013/04/21(日) 18:04:43.83 ID:Gc7WvmyL0
つたないことだけど、右のAppskey、何割り当ててる?
何に使おうこれ
901名無しさん@お腹いっぱい。:2013/04/21(日) 18:34:54.71 ID:RTRsLtUd0
キーボードでコンテキストメニュー呼び出したいことはしばしばあるし、
何かに割り当てたところで使いづらい位置だからそのままにしてる。
902名無しさん@お腹いっぱい。:2013/04/21(日) 21:59:53.26 ID:uB7TO0fZ0
>>899ありがとう

ところでそのソフト名でググったらVB6で作られたそれの関数版みたいなのが出てきたんだけど
ScriptControlでどうにかなるんでしょうか(知識がないもので)?
面倒なようでしたらjhead.exeを使います

ExifReader.cls
http://sourceforge.net/project/showfiles.php?group_id=56110
903893:2013/04/21(日) 22:25:47.47 ID:0nmSVkOA0
>>894,895,896
ありがとうございます。ProcessPathで無事解決しました。
904名無しさん@お腹いっぱい。:2013/04/22(月) 00:24:05.05 ID:gsSWEo/Z0
関数の中に2つ以上の処理を入れる書き方がよくわからんのですが、
関数名のあとにコンマで区切って複数入れればいいんでしょうか?
905名無しさん@お腹いっぱい。:2013/04/22(月) 01:14:42.83 ID:TGIryr1t0
>>904 カッコ(brace{})で囲って処理一個毎に改行すればいいと思うが・・関数名の後はパラメータのこと?

Swap(ByRef Left, ByRef Right)
{
temp := Left
Left := Right
Right := temp
}
906名無しさん@お腹いっぱい。:2013/04/23(火) 13:20:27.59 ID:kTCP8AD90
>>900
vk1Csc079::PgUp ;変換
vkF2sc070::PgDn ;ひらがな/カタカナ
RWin::Home
AppsKey::End

にしてる
907名無しさん@お腹いっぱい。:2013/04/23(火) 15:30:55.77 ID:Hrqg8uFJ0
ノーパソ?
908名無しさん@お腹いっぱい。:2013/04/23(火) 16:59:25.28 ID:kTCP8AD90
ノートの時にこの設定を長らく使ってきて、デスクトップにした今も使い続けてる
世間のキーボードは何でこのキー配置にしないんだって思うぐらい、ごく自然に使いまくってるよ
本来のPgUp、PgDn、Home、Endは今のところ割り当てなし
909名無しさん@お腹いっぱい。:2013/04/23(火) 18:21:02.72 ID:cKjddOOK0
他人のPCで自分用のキー設定の操作してアレッ?てなる。
ポータブルahkにはお世話になってるわ
910名無しさん@お腹いっぱい。:2013/04/23(火) 18:25:43.56 ID:TOMi7uU80
多ボタンのいいマウスを買って、他人のPCで自分用のマウス操作操作をしてアレッ?てなる。

これはハードの差異で解決できないので、安物マウスの標準的な機能で
いかに汎用的に使うか考えて、1から作り直し、ようやく落ち着いてきた
911名無しさん@お腹いっぱい。:2013/04/23(火) 19:36:13.50 ID:cKjddOOK0
なんでこのキーボード配置にしないのって言うのと
Appskeyの話出てたけど
俺はAppskeyはそのまま機能生かして、トグルでEscを出すようにしてAppskey2クリック目で閉じれるようにしてる。

Appskey::
AppsFlag := !AppsFlag ;1行トグル
If(AppsFlag==1){
send,{Blind}{Appskey}
}Else{
send,{Blind}{esc}
}
return

escキー遠いよ。
912名無しさん@お腹いっぱい。:2013/04/24(水) 01:53:48.26 ID:MgaeBAv20
>>911
なんかこういうちょっとしたかゆいところに手が届く感きらいじゃないわ。
913名無しさん@お腹いっぱい。:2013/04/25(木) 00:51:02.42 ID:tXjJQPoz0
とりあえずスペースキーを使ったじゃまにならないワンショットモデファイヤスクリプトできたんで配りたいんだがなんかいいアップローダないかな?
914名無しさん@お腹いっぱい。:2013/04/25(木) 01:16:23.19 ID:KSSJKx2P0
>>913
>>12

単一のファイルならPastebinの方がいいかもね
915名無しさん@お腹いっぱい。:2013/04/25(木) 01:22:06.45 ID:tXjJQPoz0
>>914
ありがとう。とりあえず配布。
無駄な処理まみれなんでどんどん改良して再うpされることを望む。

http://ux.getuploader.com/autohotkeyl/download/8/OSM.zip
916名無しさん@お腹いっぱい。:2013/04/25(木) 10:20:33.17 ID:hn3U0WTV0
フラグ立てて判別してるのか。たしかにシンプル
てか全キー別ahkとか頑張ったな。見やすいけど

メンテしやすそうだからしばらく使ってみるよ
917名無しさん@お腹いっぱい。:2013/04/25(木) 12:05:25.48 ID:hn3U0WTV0
再うpしていいって話なんでシフトトグル周りが怪しい動きしてたのを直したのをうp
ついでにshiftトグル発動しててもBSが動くように修正
シフトをトグルするって発想は面白いと思ったからできるだけ生かしてみたかった

http://ux.getuploader.com/autohotkeyl/download/9/Oneshotmainfile.ahk
918名無しさん@お腹いっぱい。:2013/04/25(木) 14:33:10.63 ID:hn3U0WTV0
あ、BSもキーコンフィグの中にahkで入れて呼べばホットキーに使えるしスッキリするのか
まぁいいや
919名無しさん@お腹いっぱい。:2013/04/25(木) 15:09:47.82 ID:hAsKF9UZ0
スペースを修飾キーとして使うってアイデア自体はいいと思うが、実装が変態的すぎるw

文字選択中にスペース+A::Amazonでそのキーワードを検索
文字選択中にスペース+W::wikipediaでそのキーワードを検索
みたいなのでいいんじゃね?AHKでそういうのができるのかは知らんが
920名無しさん@お腹いっぱい。:2013/04/25(木) 15:20:16.89 ID:cMjlNIgF0
スペースのやつはちょっと前まで実装してたけど、反応が一泊遅れるのとスペース長押しで連打出来なくてやめたな
気になる人とならない人の違いってなんだろう

>>919
そういうことやるソフトはCtrl+Vでクリップボードに入れてから処理してる
AHKはそこらのソフトウェアは大体全部再現出来るから可能だろう
処理多くなると超とろくなるけど
921名無しさん@お腹いっぱい。:2013/04/25(木) 16:00:26.83 ID:5faPS6+L0
HDDを複数繋いでるので、無変換+abcdefghijklmnopqrstuvuwxyz で、
ドライブのルートディレクトリをExplorerで即表示させるようにしてる。

無変換の理由は、このボタンの真上がCで、使いやすそうだったからw
922名無しさん@お腹いっぱい。:2013/04/25(木) 16:13:58.96 ID:hn3U0WTV0
>>915のこのスクリプトのキモはスペースキー+なんかを&使わずに実装したことだろうなと
デフォルト設定の書き換え方も書いてあるわけだし、俺は現在自分用に調節中
相当荒削りだけど左手だけでやったろうってアイディアと気構えはいいと思う
スペース連打の問題も変換+スペースで回避しようとしてるし

ただシフトをトグルにする発想があるくせになぜAltとwinキーとctrlもトグルしようと思わなかったんだろうかと
左掌に隠れれて押しにくい修飾キーは全部トグルしちまえばいいんじゃないの?と思った

あと左手でやるならスペース+tabでスペース連打にしたほうがいいんじゃないかなこれ。capslockにエンターの機能あるんだから
923名無しさん@お腹いっぱい。:2013/04/25(木) 17:43:01.14 ID:tXjJQPoz0
たくさんのDLありがとうございます。
てかいきなり修正ファイル挙げられてて恥ずかしくて涙が出ちゃう。
あとtabをスペースにっていうアイディアもらいます。
AltとWinとCtrlの発想はあったにはあったんですが、やってみるととんでもなく使いづらかったのでシフトトグルだけ生き残りました。
924名無しさん@お腹いっぱい。:2013/04/25(木) 18:07:31.16 ID:iJ1JgmNe0
頭いい人はいるもんだな。

ホットキトグルでモードをもう一つ追加して片手入力モードっての作ってみた
スペース+qwert→yuiop……っていうやっつけ
半分ネタだったけど意外と打てるな
ウェブブラウジング中とかマウス片手にチョイチョイと文字打ちたい時に使ってみよう
925名無しさん@お腹いっぱい。:2013/04/25(木) 19:38:32.21 ID:tXjJQPoz0
文字入力すら左手でやる発想はなかった。
キーボードを半分ずらすのか。
ちょっとやってみよう。
926名無しさん@お腹いっぱい。:2013/04/25(木) 19:50:52.48 ID:goV8KiIS0
片手キーボードならFrogPadおもろいよー

AHKって複数のHIDに別の処理って割り当てられる? USBのPIDで処理を別けるみたいな
927名無しさん@お腹いっぱい。:2013/04/25(木) 20:10:25.29 ID:XemAR8/h0
FrogPad は母音が人差し指だから使いやすそうだけど配列が独自なので普通のキーボードに戻れない。
ttp://bizmash.jp/articles/2668.html


Half Keybord 逆側は鏡像
ttp://k-tai.impress.co.jp/cda/article/toys/6218.html
ttp://k-tai.impress.co.jp/cda/static/image/2001/10/02/toy1.jpg

これなら普通のキーボードでソフト的に・・無理か。
ドライバからやらんと。
928名無しさん@お腹いっぱい。:2013/04/25(木) 20:57:44.34 ID:iJ1JgmNe0
>>927
あー左右反転の方が圧倒的に入力しやすいな
929名無しさん@お腹いっぱい。:2013/04/25(木) 21:38:46.05 ID:tXjJQPoz0
実装はできた。が、コレは宇宙人仕様すぎる・・・
とりあえず>>927のハーフキーボード配列を参考にしてみたけど、慣れるまでは修羅の道っぽいですわ。
930名無しさん@お腹いっぱい。:2013/04/25(木) 22:06:03.85 ID:bbEZdYMt0
色々アイディア出したり実装してみたりは楽しいし非常にナイス
ただ左手で完結するのは人間に成せる技なのか…
でも面白い
931名無しさん@お腹いっぱい。:2013/04/26(金) 00:59:11.40 ID:RkbDCE24O
片手操作に慣れてきた頃に両手でガシガシやると片手で頑張ってたのが馬鹿らしく思えてくるよ
932名無しさん@お腹いっぱい。:2013/04/26(金) 01:05:34.98 ID:Do01Wn7K0
それはある
特に文字入力
ただ、左手入力+マウス入力ってのは文字を入力しないコピペ作業とかだとメチャ捗るんだよなぁ
933名無しさん@お腹いっぱい。:2013/04/26(金) 01:37:27.73 ID:/R3F/XXB0
あれま
934名無しさん@お腹いっぱい。:2013/04/26(金) 01:38:22.88 ID:5MBvmj7C0
ファイルのリネーム、ブラウザ上での検索くらいの文字入力ならマウスから持ち替えて
両手で打ってまたマウス持つよりは早かったわ。慣れてきたらもうちょい入力も早くなるだろうし
それ以上の文字数なら素直に両手で打ったほうがいいね
場面場面で使い分けたらいいよ。まぁそもそも基本的に俺はキーボード操作派なんだけどw
935名無しさん@お腹いっぱい。:2013/04/26(金) 07:21:19.81 ID:mOHCc+1X0
昔、目でポインティングしたくなって、その方法を調べたら
顔をがっちり固定しないとダメだったのを思い出した
936名無しさん@お腹いっぱい。:2013/04/26(金) 08:53:33.05 ID:2BivjPBE0
>>935
放射線治療はそんな風に固定するために頭蓋骨に固定用金具を取り付けるらしいね。
最近はコンピュータで自動的におっかけるからごろねしてるだけでいいらしい。
937名無しさん@お腹いっぱい。:2013/04/26(金) 11:11:23.46 ID:1n3E+q4j0
長くて押しやすいスペースを活用できないかなと思ってたからこういうのガチで待ってた
ただ、右手でも左手でも押せるから左手キーボードにこだわらなくてもいいんじゃね?
個人的に全部モジュール化されてんのがいいわ
938名無しさん@お腹いっぱい。:2013/04/26(金) 13:46:35.62 ID:IqFpa/y40
キーボード操作で完結できるようにAHKでキーバインドを設定しまくる
というのがより自然で早くなるかもしれない
939名無しさん@お腹いっぱい。:2013/04/26(金) 18:42:54.72 ID:vTIcS08h0
Win標準の拡大鏡みたいなことってAHKで可能ですか?
940名無しさん@お腹いっぱい。:2013/04/26(金) 18:45:39.16 ID:CTTIODMV0
出来るっていうか流行らせるページにあっただろ
941名無しさん@お腹いっぱい。:2013/04/26(金) 18:53:25.66 ID:Do01Wn7K0
むしろ普通にwin標準のをよびだせば?
win+Uキーでユーティリティ呼び出せるし
942名無しさん@お腹いっぱい。:2013/04/26(金) 19:06:00.99 ID:vTIcS08h0
>>940-941
ありがとうございます!
Win標準のはCPU負荷が高くて(i5 2500Kで3%程度)
常駐して使おうと思ってたので諦めました

今、流行らせるページのを試してみましたがこっちのほうが軽くていいですね^^;

ただ ウィンドウをマウス下に追従させるのではなくて
Win標準のみたいに、別の位置にウィンドウを作るようにできないでしょうか?
943名無しさん@お腹いっぱい。:2013/04/26(金) 19:35:17.69 ID:CTTIODMV0
それも答えるなら出来るとしか
そっちの方が処理は簡単
944名無しさん@お腹いっぱい。:2013/04/26(金) 20:06:10.81 ID:vTIcS08h0
できましたらコード貼って頂けないでしょうか?
自分では全然わかりませんでした
お願いします
945名無しさん@お腹いっぱい。:2013/04/26(金) 20:20:15.97 ID:DOrEwFVk0
1行2行で済むコードならともかく、
あつかましいにもほどがある
946名無しさん@お腹いっぱい。:2013/04/26(金) 20:47:41.94 ID:CTTIODMV0
それ、フリーソフト探した方が間違いなく手っ取り早いし、動作も安定してる

ちょっとしたアプリケーションを自分好みに作ったり改造したり出来るのがAHKの利点
自分でスクリプト書けないならAHK使う意味ないべ

「拡大鏡 フリーソフト」
947名無しさん@お腹いっぱい。:2013/04/28(日) 12:23:29.82 ID:xzus8/Tm0
Linux 用  autohotkey 作成に挑戦していたが
もう自作コンパイラとか準備せずに  perl つかって java のコードに変換でいいんじゃないかと 思ってきた

それで Send Sincerely,{enter}John Smith くらいなら 間違いなくかけるし
948名無しさん@お腹いっぱい。:2013/04/28(日) 20:02:15.81 ID:bhuoMeGR0
ClassNN1 のテキスト内容を ClassNN2 にコピーしたいのですが(どちらも)
^@::
ControlFocus ClassNN1
Ctrl+A
Ctrl+C
ControlFocus ClassNN2
Ctrl+A
Ctrl+V
return
とやるしかないですか?
ウィンドウハンドルを使えって書いてあるんですがよく分からなくて困っています
949名無しさん@お腹いっぱい。:2013/04/28(日) 20:03:39.41 ID:bhuoMeGR0
(どちらも)→(どちらもテキストボックス)
950名無しさん@お腹いっぱい。:2013/04/28(日) 20:56:06.32 ID:lDiba7bd0
っ ControlGetText, ControlSetText
951名無しさん@お腹いっぱい。:2013/04/29(月) 00:08:35.93 ID:IV2kl9XW0
http://ux.getuploader.com/autohotkeyl/download/10/OSM%E6%94%B9.zip

アカーン日付またいでしまった
スッキリ処理に書きなおしたスペースキーワンショットモデファイヤをもう一度配布します
左手キーボード入力も実装。参考にしたのは>>927

前より見やすくなってると思いますがまだまだあほなことしてると思いますんで各自いじってください
もちろん改変うpもおkです
952名無しさん@お腹いっぱい。:2013/04/29(月) 12:25:41.92 ID:tb8vqNq/0
>>950
ありがとう。とりあえず動くようになりました。
ですが結構な頻度で文字化けしてしまいます。(半分くらい)
errorlevelは0になので失敗しているわけではないようです。
何度か繰り返すと成功するのが良くわかりません。
間違っている箇所はありますか?


#IfWinActive ウィンドウタイトル
^@::
ControlGetText, str, Edit1, ウィンドウタイトル
if ErrorLevel = 0
ControlSetText, Edit2, %str%, ウィンドウタイトル
else
ControlSetText, Edit2, 失敗しました, ウィンドウタイトル
return
#IfWinActive
953名無しさん@お腹いっぱい。:2013/04/29(月) 12:30:59.78 ID:IV2kl9XW0
文字化けは保存形式じゃない?
UTF-8で上書き保存してみたら?
954名無しさん@お腹いっぱい。:2013/04/29(月) 12:54:28.65 ID:tb8vqNq/0
>>953
ありがとう。でもahkファイルをUTF-8で上書きすると100%文字化けになります。現状はsjis。
>952のstrをclipboardにしてみるとControlSetTextに成功している時でもクリップボード履歴を取るソフトでは文字化けしていました。
日本語対応はしていますがフランスの方が作ったソフトなのでUTF-8を使わずに何か別の方法を使っているのかもしれません…
955名無しさん@お腹いっぱい。:2013/04/29(月) 13:01:08.96 ID:56lL27k50
UTF-8 BOM無しで保存してるってことは?
いつのバージョンからかBOM有りじゃないとだめになってるが
956名無しさん@お腹いっぱい。:2013/04/29(月) 13:14:44.43 ID:tb8vqNq/0
>>955
BOM付きを試してみました。100%ではありませんがsjisと変わらない精度です。
文字化けですが「Wind and Sand」という文字がEdit1に入っていたとすると
Set~でEdit2に出てくるのは正解と三種類ぐらいがランダムで抽出されています。□が入っているかもしれませんがすべて漢字です。
ソフトの仕様なのかもしれませんね。いい方法が無かったら諦めようと思います。
??チ?匠?d
??チ?匠?d???
??チ?匠?d???皆?
Wind and Sand
957名無しさん@お腹いっぱい。:2013/04/30(火) 10:42:04.31 ID:HHYg8yPq0
>>951
おつかれ。使わせてもらってるよ
958名無しさん@お腹いっぱい。:2013/04/30(火) 11:53:10.22 ID:re5N8KAl0
>>956
それ以上は具体的にスクリプトアップロードしてみるとか
959名無しさん@お腹いっぱい。:2013/04/30(火) 15:41:57.80 ID:HHYg8yPq0
>>951
左手キー入力だけどこれフロッグパッド配列もほしいな
960名無しさん@お腹いっぱい。:2013/04/30(火) 20:25:32.13 ID:IvJ6XIgE0
>>958
先ほどから以下のようにして使っていますが今のところ問題無さそう。
たぶんControlGet~がおかしいのだと思います。
ありがとうございました。

#IfWinActive ウィンドウタイトル
^@::
ControlFocus, TSynEdit1, ウィンドウタイトル
ControlSend, Edit1, ^a^c, ウィンドウタイトル
if ErrorLevel = 0
ControlSetText, Edit2, %clipboard%, ウィンドウタイトル
else
ControlSetText, Edit2, 失敗, ウィンドウタイトル
return
961名無しさん@お腹いっぱい。:2013/04/30(火) 20:34:49.13 ID:UFhgCoV70
installhookとかUsehookでくくってみるのはいかが?
おまじないレベルだけど。

あとキーをスキャンコードにしてみるとか。
記入とかがおかしいと思えないなら内部処理から疑っていくとか要所要所にmsgbox挟んでちゃんとそのルート通ってるかとか

思いついたけど、うん、多分全部やってるね・・・
962名無しさん@お腹いっぱい。:2013/04/30(火) 22:54:41.88 ID:YgACEsXV0
和ゲーにSend,{ENTER}とかやっても進まなかったんだけどなんで?
963名無しさん@お腹いっぱい。:2013/04/30(火) 23:02:25.36 ID:re5N8KAl0
そのゲームもキーボードフック乗っ取ってるんじゃろう
964名無しさん@お腹いっぱい。:2013/04/30(火) 23:04:43.58 ID:UFhgCoV70
まず$なんかのフック記号を試す
次はsendInputで試す。
その次はsendPlayで試す
それでもダメなら{blind}かまして、それでもむりなら{enter down}でkeywaitで{enter up}

的な?
965名無しさん@お腹いっぱい。:2013/04/30(火) 23:09:26.68 ID:LU3A5iwM0
キーストローク早すぎの可能性もね
SetKeyDelay
966名無しさん@お腹いっぱい。:2013/05/02(木) 11:51:48.10 ID:DePGK87d0
マウス下のコントロールのスクロール位置の取得はどうすればできるでしょうか?
967名無しさん@お腹いっぱい。:2013/05/02(木) 11:53:57.62 ID:E8lcqesL0
#If MouseIsOverでwindowspyじゃダメかね?
968名無しさん@お腹いっぱい。:2013/05/02(木) 14:50:41.67 ID:DePGK87d0
>>967
windowspyってどういうことでしょうか?
969名無しさん@お腹いっぱい。:2013/05/02(木) 14:52:20.93 ID:E8lcqesL0
あ、ごめん、クラスかと思ってた
スクロール位置か

色で認識するのも無理だな
970名無しさん@お腹いっぱい。:2013/05/03(金) 00:57:18.71 ID:uJJrs2Yr0
linuxでキーリマップをやりたいんですが

esc & i:: Send, {down}
esc & o:: Send, {up}

って xmodmap でできますか?
971名無しさん@お腹いっぱい。:2013/05/03(金) 01:04:09.85 ID:KJrX+QDd0
それだとescキー死ぬぞ
972名無しさん@お腹いっぱい。:2013/05/03(金) 01:09:22.80 ID:ts7sEVos0
ahkだと
esc up::Send, {esc}

に類するもの必要でしたっけ?稼働中のスクリプトには見当たらないんですが

linux で esc の動作も 単押しの release 時に起きるようにしたいんですが
無理ということですか?
 
973名無しさん@お腹いっぱい。:2013/05/03(金) 01:12:47.98 ID:7wKDINyp0
      ハ,,ハ
     ( ゚ω゚ )   スレチお断りします
    /    \
  ((⊂  )   ノ\つ))
ε≡Ξ (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J
974名無しさん@お腹いっぱい。:2013/05/03(金) 11:23:32.55 ID:+ZwwRxmI0
#IfWinActive で正規表現、大文字小文字区別無しってどうしてしてやれば良いの??

例えば jpeg の場合
#IfWinActive,i)jpg ;コレだとうまくいかない
975名無しさん@お腹いっぱい。:2013/05/03(金) 14:44:33.34 ID:Pin16ZgV0
それで動くぞ。
SetTitleMatchMode を適切な位置に書いているか?
976名無しさん@お腹いっぱい。:2013/05/03(金) 20:40:55.67 ID:KJrX+QDd0
ちょっと質問が

テンキーのnumlockoff時、5キーがなにも機能しないじゃない?
これnumlock監視のコマンドとかあったっけ?

空白の5にスペースバー機能割り振りたい
977名無しさん@お腹いっぱい。:2013/05/03(金) 20:44:38.17 ID:KJrX+QDd0
あ、ごめん解決したわ
そんな難しく考える必要なかった
978名無しさん@お腹いっぱい。:2013/05/03(金) 23:39:24.42 ID:Fplxpfro0
すいません質問なのですが、左クリックを押したらキーボードのaが表示され、それ以外のマウスやキーを押したらキーボードのbが表示されるってこのソフトできますでしょうか?
979名無しさん@お腹いっぱい。:2013/05/03(金) 23:49:13.68 ID:MfZJoUnh0
>キーボードのaが表示され
この状態がよくわからない、キー入力したいのか単にtooltip表示したいのか、どっちでもできるけど

タッチパネルPCにあるソフトウエアキーボード出して特定のキー操作をしたいってことだと
難しいかもしれない
980名無しさん@お腹いっぱい。:2013/05/03(金) 23:57:16.12 ID:Fplxpfro0
あ、解答ありがとうございます
aはすいませんキー入力でございます
初心者なりにこんな感じで作ったのですがわかりません

loop
{
if getkeystate("LButton","P")
{
send,a
break
}
ここがわからないw
{
send,b
break
}
}
981名無しさん@お腹いっぱい。:2013/05/04(土) 11:57:22.36 ID:CNCGjdyo0
ほい

Input , char, L1,
IfInString,char,a,send,{a}
else send,{b}
return
982名無しさん@お腹いっぱい。:2013/05/04(土) 12:39:46.77 ID:tcHkrz570
解答ありがとうございますー
すいません初心者なりに関数は調べたのですが、これをどうしたらいいのでしょう????
983名無しさん@お腹いっぱい。:2013/05/04(土) 12:42:53.78 ID:CNCGjdyo0
>>980のloopのところを置き換えればいいと思うけど
具体的にどんなスクリプトなのか分からないから
984名無しさん@お腹いっぱい。:2013/05/04(土) 12:50:10.52 ID:tcHkrz570
すいません意味がまったくわからないので諦めます
ありがとうございました
985名無しさん@お腹いっぱい。:2013/05/04(土) 15:17:37.41 ID:bnwRYDty0
ちょっと力を貸してください

左クリック時はノーマルクリック
長押し離したら右クリック
ドラッグでは右クリックが発動しないようにマウスカーソルが動いたかどうかで判断したいんですけどコレだとドラッグ時も暴発してしまいます

Numpadpgdn::
sendinput,{Blind}{Lbutton down}
MouseGetPos, OutputVarX,OutputVarY
Movingx := %OutputVarX%
Movingy := %OutputVarY%
keywait,%A_thishotkey%,T0.5
if ErrorLevel{
RbF := 1
}else{
RbF := 0
}
keywait,%A_thishotkey%
return

Numpadpgdn up::
sendinput,{Blind}{Lbutton up}
sleep 50
MouseGetPos, OutputVarX,OutputVarY
Movedx := %OutputVarX%
Movedy := %OutputVarY%
if (RbF == 1)and(%Movingx% == %Movedx% )and(%Movingy% == %Movedy%){
sendinput,{Rbutton}
}
return
986名無しさん@お腹いっぱい。:2013/05/04(土) 16:55:17.00 ID:AfprMCpY0
>>985
%で括る必要ないとこまで括ってるせいだろう
A_ThisHotkey以外は全部%不要
987名無しさん@お腹いっぱい。:2013/05/04(土) 17:06:29.89 ID:bnwRYDty0
お、やってみたらうごきました。ありがとうございました
988名無しさん@お腹いっぱい。:2013/05/05(日) 01:19:09.65 ID:vZIaQYTc0
この左クリック長押しジェスチャちょっといいな
989名無しさん@お腹いっぱい。:2013/05/05(日) 12:13:55.72 ID:d2aV4qqF0
一晩寝たけど、やっぱり諦めきれないです・・・自分勝手で恐縮なんですが、どなたか助けて頂けませんでしょうか><
僕はマウスジェスチャーというツールを使ってまして、やりたい事はloopの中限定でたとえば

qを押した後、bが表示され、その後左クリックを押すと2秒くらいたってからaが表示される
qを押した後、bが表示され、その後左クリック以外(右クリックとかq以外の他のキー)を押すとaが表示される

という事をやりたいのですが、もし可能なら動くコードなんかを貼ってもらえると助かります><
希望通り動いたら少ないですが1000アマギフ程度送らせて頂きます。
どうかよろしくお願いします><
990980:2013/05/05(日) 12:14:44.86 ID:d2aV4qqF0
991名無しさん@お腹いっぱい。:2013/05/05(日) 12:35:34.07 ID:d2aV4qqF0
あ、qはジェスチャー定義のとこのqです
992名無しさん@お腹いっぱい。:2013/05/05(日) 13:52:51.67 ID:QdZjR4QB0
>>981とかそのままスクリプトにすれば動くけど、それも試してないの?
>>980と言ってること違ってよく分からないんだけど、とりあえず980の動作ならこんな感じ

~LButton::send,{F20}
~Rbutton::send,{F19}
~MButton::send,{F18}
q::
Input , char, L1, {F20}{F18}{F19}
IfInString,errorlevel,EndKey:F20,send,{a}
else send,{b}
993名無しさん@お腹いっぱい。:2013/05/05(日) 14:58:38.42 ID:d2aV4qqF0
ちょっと画像うぷしてみました。こういう感じです

http://fsm.vip2ch.com/-/hirame/hira149652.jpg
http://fsm.vip2ch.com/-/hirame/hira149651.jpg
994名無しさん@お腹いっぱい。:2013/05/05(日) 17:03:08.17 ID:666Tp90F0
StringGetPosで文字列のA+[数字]の位置を検索したいのですが、SearchTextにどのような記述をしたらいいのでしょうか?
例えば、AAA1なら2をAB2C6A9なら5と位置を知りたいです。
995名無しさん@お腹いっぱい。:2013/05/05(日) 18:37:19.12 ID:/WIRZVML0
>>993
>>989のように動かすっていうその動作が伝わってないから

>>994
RegExMatch()使うべきだと思う
996名無しさん@お腹いっぱい。:2013/05/05(日) 22:34:29.31 ID:666Tp90F0
>>995
ありがとうございます!
苦戦しましたがなんとかできました!!わーい
997名無しさん@お腹いっぱい。:2013/05/06(月) 00:48:05.72 ID:iL+HEkij0
>>993
Alt+PrintScreen でキャプチャして
キャンバスのサイズを小さくしてからペイントに貼り付けたらぴったりサイズになるよ
998名無しさん@お腹いっぱい。:2013/05/06(月) 02:15:23.71 ID:i1IPQKrM0
995GJ
999名無しさん@お腹いっぱい。:2013/05/06(月) 02:16:15.45 ID:i1IPQKrM0
1000名無しさん@お腹いっぱい。:2013/05/06(月) 02:16:30.75 ID:swoI5dZN0
999GJ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。