1read 100read
2013年06月ソフトウェア247: AutoHotkey スレッド part16 (240) TOP カテ一覧 スレ一覧 2ch元 削除依頼
★おすすめ圧縮解凍ソフトLhaz★3 (601)
最強のエミュレーター(PS編) 11 (235)
PDFビューアー総合スレ Part 3 (175)
GMail Drive part1 (466)
欠陥ソフト★+Lhaca★を改善させるスレ (401)
nFinder Part9 (725)

AutoHotkey スレッド part16


1 :2013/05/05 〜 最終レス :2013/06/18
■配布元
http://www.autohotkey.com/
本家Autohotkeyは事実上開発停止で、派生のAutoHotkey_L(AHKL)が主流。
新規利用者には日本語の扱いで不具合の無いAHKLのユニコード版の利用を推奨。
■前スレ
AutoHotkey スレッド part14
http://anago.2ch.net/test/read.cgi/software/1333372506/
■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/
http://www.autohotkey.net/paste/ ※31日で削除されます。
■派生版
IronAhk (.NET製、クロスプラットフォーム)
http://www.ironahk.net/
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.net/~tinku99/ahkdll/
テンプレ>>2-10

2 :
■重要事項
オリジナルである、本家 "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 :
■過去スレ
@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/
Nhttp://anago.2ch.net/test/read.cgi/software/1349735581/
以下FAQ等
■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHKLの場合)
Q2:初めて使うけどどれを使えばいいの?
A2:AHKLのユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合は本家をそのまま利用する事。
  64ビットOSでAHKL32ビット版の使用は制約が多いので、64ビット版を強く推奨。

4 :
■ リマップ・ホットキー割り当て
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 :
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 :
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/pages/17.html の「IME.ahk」を使いましょう。

7 :
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 :
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 :
>>1 乙
前スレはこれね。
AutoHotkey スレッド part15
http://anago.2ch.net/test/read.cgi/software/1349735581/

10 :
>>1
AutoHotkey.dllが404だしもう開発してなさそうやね
次から削ったほうがいいかも

11 :
>>10
AutoHotkey.dll
ttp://www.autohotkey.net/~HotKeyIt/AutoHotkey/files/AutoHotkey-dll-txt.html
AutoHotkey_H
ttp://www.autohotkey.net/~HotKeyIt/AutoHotkey/files/AutoHotkey-txt.html
AutoHotkey_H needs to be installed manually.
AutoHotkey.exe
AutoHotkey.dll
AutoHotkeySC.bin
AutoHotkeyMini.dll
AutoHotkey Version 1.1 2013/04/19
AutoHotkey2 Alpha    2013/04/19

> AutoHotkey_L (内部Unicode、64bitバイナリ、オブジェクト指向、COM対応など)
AutoHotkey_H was invented by tinku99 and enhanced by HotKeyIt. It is a custom build of AutoHotkey_L (ttp://l.autohotkey.net/ by Lexikos)
AHK_H includes all AHK_L features and some new features as well.

12 :
AHKportableは採用外?

13 :
今autohotkeyもどきを描いてて
スクリプト(ユーザーが書く部分)を scala によって scala または java のコードに自動変換してそれをコンパイルするというフローで進めてるんですが
ベターな案ってあります?

14 :
>>13
スクリプトを直接コンパイル

15 :
>>14
コンパイラそのものを書くことになり大変なので勘弁

16 :
前スレの>>980です。コード貼ってくれた方ありがとうございましたー
貼られたのを元にいろいろ見てたのですが、やっぱ自分にはできそうもないので一旦諦めます><
このソフトが自由自在に使える人が羨ましいですほんと・・・

17 :
>>15
コンパイラが用意されてる言語をスクリプトとして利用する。
追加機能はプリプロセッサで処理。
プリプロセッサを作るだけならそんな大変でもない。

18 :
>>17
そうですね
プリプロセッサみたいなものを作る方向なんです
そのものになるかはちょっと微妙ですが

19 :
AHKをつくるにあたって
こういうところがAHKを使っていて不足、みたいなところがあったら聞かせていただけないでしょうか?
今考えていることの一つは if文で } の位置 を行末におけるとか 一文にに命令かけるとか、普通のプログラミング言語っぽくしたほうが使いやすいかな、というところです

20 :
一行いいね
いっそ全部JavaScript互換で

21 :
AHKで一番のクソ仕様は&でコンボキーにした場合修飾キーが死ぬってとこだと思う
しかもwinactiveでくくっても死んだままが続くっていう。
だから前スレ915でスペースで殺さない方法としてワンショットモデファイヤする場合冗長なスクリプトになっちゃってるんじゃないかな

22 :
>>21
え、どういうこと?

23 :
たとえばaを修飾キーにして、Bで何らかの動作をさせると
a & b::send,なんちゃら
ってかくじゃん?
この場合aが修飾キーになって、入力を受け付けなくなる。
a up::send,aで回避できるといえばそうなんだけど(実際ワンショットモデファイヤってそういうものだし)
これ#ifwinactiveでくくった先でも&のほうが優先されて、押しっぱなしは入力を受け付けない。
ソフトによってはサスペンドさせないと致命的な動作をする。
たとえばアクションゲームとか、押しっぱなしで移動を行うもの。
コレを回避するにはAHKファイルを2個走らせるとかいう力技もあるんだけど動作が不安定で、ワンショットモデファイヤのサンプルスクリプト書いてる人はだいたいコレをプログラマブルに回避してるっぽい。
毎回サスペンドさせればいいっちゃそれでもいいけどなかなかスマートにはいかないね

24 :
#ifだと多分大丈夫

25 :
#If GetKeyState("a")
b::send, c
#If
定義が冗長っちゃ冗長だが

26 :
キーリピートも擬似的に再現してるってのが結構キツイね
downとupを書き込まずにキー本来の動作をさせるってどうすれば出来るんだろう。

27 :
いや、キーリピートがあるのが本来の動作なわけだが

28 :
AHKのキーリピートは内部で連打処理してるんじゃなかったっけ
見た目的には同じ動作だけど

29 :
ゲームで
Esc & h :: Send, {right } 動作の
押しっぱなしが効かなかったことがあるそのへんかね

30 :
本来の動作させないとゲーム関係はめちゃくちゃな動きするな
ロックマンっぽい横スクロールゲームとかダッシュ連発して動けなかった。
指定キーdown、指定キーupでうまく動いたけど

31 :
"名前を付けて保存" ダイアログを出しているアプリケーションなどを
特定する方法ってないですか?
Chromeの出した"名前を付けて保存"ダイアログだったら 〜を実行
のように処理を分けたいのですが。

32 :
WinGet, OutputVar , ProcessName, 名前を付けて保存

33 :
>>32
ありがとう

34 :
autohotkey は内部的にreg だか dll使ってるけど
このコマンドを使うと〜みたいな記述を本家でつい先日見かけたんですが
場所がわからなくなってしまいました
心当たりある人いますか?

35 :
左手入力の配列って皆どうしてるんだ
さっぱり思いつかない

36 :
前スレ後半でちょっと話題になってたが、鏡面反転がよさげだ

37 :
スクリプト中でマウス使って範囲を指定するのですが、
エクスプローラ上でマウス使って範囲選択するときのように
該当範囲を点線(実線でもいい)で表示したいです。
何か良い案か関数かコマンドありませんか?
今のとこ位置合わせに使ってる下のを流用するつもりなんですが、
重いしスマートじゃないしで。
そもそもAHKって描画機能はないよね?
普通は外部ツールと連携してるんでしょうか
久々に更新履歴見たらGUIが作りやすくなってるねー
CoordMode, Mouse, Screen
SetTimer, beam, 1000
beam:
MouseGetPos, msX, msY
If( msX+1=mnX AND msY+1=mnY ) ;マウスが動いてない時
Return
mnX:=msX+1
mnY:=msY+1
ToolTip,% "x= " mnX "`n" "y= " mnY
Gui, 3:+LastFound -Border +ToolWindow +AlwaysOnTop -Caption +0x02000000 -0x0CC00000 +E0x00080020
Gui, 3:Color, 0x00FF00
WinSet, Transparent, 255
WinSet, Region, 0-%msY% 0-%mnY% %msX%-%mnY% %msX%-800 %mnX%-800 %mnX%-%mnY% 1280-%mnY% 1280-%msY% %mnX%-%msY% %mnX%-0 %msX%-0 %msX%-%msY%
Gui, 3:Show, NA x0 y0 w1280 h800
Return

38 :
AHKに描画機能ってのは、どうなんだろ?
マウスジェスチャーでは線引けるけど、あれはどういう処理してるか分解したことないからわからない

39 :
マウスジェスチャーで軌跡が描かれるって感じですか?
流行らせるページの人のだよね。API使ってそうだ見てみます

40 :
線じゃねーじゃんw
gdi.dllで文字取り出してるのはすごいんだけど、
表示させ方がAHKのGUIっていう同じ方法でした。

41 :
長方形なら、Region より TransColor でボーダー以外を透過するほうが軽そうな気がする。
Gui, Color, Red
Gui, +LastFound
WinSet, TransColor, Red
Gui, -Caption +Border
Gui, Show, NA h100 w100

Gdip.ahk ってのを使えば簡単にいろいろ描画できるらしいが、詳しくは知らない。

42 :
慣れてくるとキーボードカスタム楽しいな
常駐ソフトもかなり減ったし

43 :
>>41
すばらしいアイデアをありがとう
Gdip.ahk色々便利に使えそう、そのうち使おう。
最終的な表示方法は同じみたいだから
今回は41使いますサンクス

44 :
Autohotkeyってgosubで引数に式入れてサブルーチンに渡すことって出来る?
ググり方が悪いのかもしれないけど調べても具体例がなかった

45 :
素直に関数じゃアカンの?

46 :
つーかまんま関数じゃないのかソレ

47 :
もしかして複数行の式を渡そうとしてるのかな

48 :
MouseGestureL で、 AutoHotKey で定義してあるキー入力を
発生させることって出来る?
要は、あるマウスジェスチャーをしたら Ctrl+R を発生させるようにして、
その Ctrl+R を AutoHotKey に拾わせる(AutoHotKey に設定してある Ctrl+R の動作をさせる)
という具合。
普通に書くと AutoHotKey は反応せず、そのまま Ctrl+R が送られるようで・・・
おんなじマクロを AutoHotKey と MouseGestureL に書くのがめんどいのです。

49 :
>>48
デキルヨー
MG_Userのとこがスッカラカンだから好きに書き込めばいい。
もしくはあたらしくインクルードでahkファイルを追加してやればいい。
ただし、上位に来ない記入をしないとマウスジェスチャー側が機能しなくなる

50 :
ついでにgosubでくくればマウスジェスチャーのほうでも普通に読みこんでくれる。
慣性ホイールとかはマウスジェスチャーに組み込んでおくと捗る

51 :
>>49
レスありがとう
教えていただいたのって、マクロの使い回しですよね?
キーの使い回し(なんか表現がおかしい・・・)はできないもんですかね?

52 :
#includeでも別プロセスでもキーボードだったら仮想キー発行でホットキーラベルには飛べるはずだけど
$^r:: ってやってるなら$はずす
control-r はダミーで実はマウスX1なんですとかだったら知らん

53 :
>>52
指摘ありがと
自分の説明が絶望的にダメだったことに気がついた
MouseGestureL で、
RB_L に
Send, ^r
と記述しておいて、上記イベント発生時にAutoHotKey の
^r::run, hogehoge
の行に書いてある run を実行したい、ということです

54 :
それはGosubじゃだめ?
RB_Lの条件内にgosub,Ctrl_r
^r::gosub,Ctrl_r
Ctrl_r:
run, hogehoge
return
で出来るんじゃないの?

55 :
Ctrl+r を拾う側がキーボードフックを使っていなければ >>52 も言っているように飛べる。
キーボードフックを使っている場合、SendLevel と #InputLevel を調整すればいい。
SendLevel, 1
Send, ^r

56 :
>>55
SendLevel, 1
を使って希望通りの動作をさせることができました。
ありがとう

>>54
AutoHotKey 側の処理はもう書いちゃってて、あとから MouseGestureL を使い始めたので、
gosub だと都合が悪かったです。
でも、参考になりました。
ありがとう

57 :
同じような質問ですが、
サイドボタンの戻る/進む暴発防止のために
autohotkey上でXButton1にScrollLock等無難なキーをリマップして、
MouseGesture.ahk上でScrollLockを新規ボタンに設定して、そのキーを使った動作定義を作りたいのですがうまく動作しません。
XButton1を押せばScrollLockキーが押された状態になるのですが、
XButton1を押しながらマウスジェスチャをしても設定した動作が発動しない感じです
上のレスを参考にして、autohotkeyのAuto-executeセクションにSendLevel, 1を設定したのですが同じでした
どうすればいいのでしょうか

58 :
>4

59 :
>>57
SendLevel - AutoHotkey Wiki
ttp://ahkwiki.net/SendLevel
>すべての新たに開始したホットキーまたはホットストリングスレッドではホットキーまたはホットストリングのInputLevelに等しいSendLevelを開始する。
ということなので、Auto-execute セクションで SendLevel を指定しても無駄で、
#InputLevel を設定すればいいらしい。面倒くさい仕様だね。
InputLevel を変えたくない場合は、
 SendLevel, 1
 Send, {ScrollLock down}

 SendLevel, 1
 Send, {ScrollLock up}
に分ければいいんじゃないかな。

60 :
>>59
うまくいきました!
これでマウスユーティリティソフトに頼らなくていいので
USB環境でもMouseGesture.ahkを使えるようになりました
本当にありがとうございました

61 :
s::a
a::
Send {Enter}nn{Enter}
return
sを押した時に、nnではなくaを入力させるにはどう修正すればいいですか?

62 :
解決したから無しで

63 :
今関数で1つのキーをダブルクリックした時にsendで送るルーチンかいてるんですがエラーが出て読み込んでくれません。
何が足りないんでしょう・・・?
Doubleclick2(double, single, keypush){
Global WClick
if(A_TickCount<WClick){
sendinput % double
WClick = 0
}else{
WClick:=A_TickCount+300
keywait,%A_thishotkey%,T0.4
if(errorlevel==0){
sendinput % keypush
}else{
sendinput % single
keywait,%A_thishotkey%
}

64 :
ああ、自己解決しました。
関数閉じ忘れてた

65 :
関数ライブラリスクリプトを使っているのですが
あるahkファイルが参照するライブラリディレクトリを指定するにはどうすればいいのでしょうか
保存場所が離れている複数のahkファイルで1つのライブラリディレクトリを使いたいので。
usbに入れて出先で使うことを想定しているので、ライブラリディレクトリをマイドキュメントに置けないし
ahkファイル毎に置いて煩雑になるのも避けたいのです

66 :
#Include *i %A_ScriptDir%\
インクルードとスクリプト本体のいる場所からの相対パスの合わせ技でポータブル環境でも無敵

67 :
#Includeも一応試したつもりだったんですが
もう一度試してみます

68 :
試した感じでは
#Include "ディレクトリパス" では#Includeを記述する際の基準ディレクトリを変えることはできても
ライブラリディレクトリを指定することはできなかったです

69 :
ライブラリまで持ち歩きたいのならAUtohotkeyportableをDLしたほうが早いと思う。
batでポータブルexeに引数で渡せばいいよ。

70 :
大規模規制発動中なのでオープン2chにahkスレを立ててみた
http://anago.open2ch.net/test/read.cgi/software/1368920317/

71 :
転載自由ってなんだ
まとめサイト用ってことか

72 :
関数作ったんですけど渡す変数が多くてこんがらがりそうです。
たとえば
a::kansuu("","","","","",)
みたいな事になってます。
これって"",で空欄の関数渡すところにコメントアウトで目印付けられませんか?

73 :
>>69
ありがとうございました

74 :
>>72
a::kansuu("" ;コメント1
,"" ;コメント2
,"") ;コメント3
ならできるけど
kansuu("" /*コメント1*/,"" /*コメント2*/,"" /*コメント3*/)
kansuu("" ;コメント1,"" ;コメント2,"" ;コメント3)
はできない

75 :
a::kansuu("","","","","",)
;kansuu("コメント1","コメント2","コメント3","コメント4","コメント5",)
とかは?

76 :
>>71
書き込めない人用だから、書ける人がこっちへ転載してくれって意味かと
つか立てるなら避難スレってスレタイに書いといてほしかった

>>72
行バラせばできる。長くなるけど
kansuu(""  ;引数1
     ,""  ;引数2
     ,""  ;引数3
     ,"")  ;引数4
あとは関数側で必須の因数以外は省略可能にしておくといいと思う
kansuu(x, y, w="", h="",WinTitle="A",WinText="") {
  WinMove WinTitle, WinText, x, y, w, h
}

77 :
>>75
俺はコレだな。
あとは関数そのものを分解して減らすか

78 :
func(arg1,/**/ arg2,/**/...)
この書き方って仮に可能だとしても、そのうち邪魔に感じると思うw

79 :
過去ログにあった以下のスクリプトを実行すると、以下のエラーを吐いて機能しません
ttp://hibari.2ch.net/test/read.cgi/software/1280482227/913
>■ エクスプローラで選択中のファイルのフルパスをコピー
>  COMをりようしているので、特殊フォルダがあってもOK
>
>SetTitleMatchMode, RegEx
>#IfWinActive, ahk_class CabinetWClass|ExploreWClass
>#c::
> FileList:=
> For window in ComObjCreate("Shell.Application").Windows
>  If ( window.hwnd == WinExist() ){
>   For item in window.document.SelectedItems
>    FileList .= item.path "`n"
>   Break
>  }
> Clipboard:=FileList, window:=item:=
> Return
Error:0x80008045
Source:(null)
description:(null)
HelpFile:(null)
HelpContect:(null)
Specifically: hwnd
→  If ( window.hwnd == WinExist() ){
Continu runnning the script ?
Windows Vista Service Pack 2 (x86)
AutoHotKeyL v1.1.10.01

80 :
MSDNなどを調べて、windowがShellWindows objectらしくて
hwndやdocumentといったメソッドやプロパティ?は持たない、という所まではわかったんですが
そこから先に進めません
どのように修正すれば・・・・・
というか、そもそもどこが悪いんでしょうか?

81 :
これじゃだめ?
F1::
send,^c
ClipWait 2
MsgBox % Clipboard
Return

82 :
>>81
ありがとうございます。それで行けました
>>79の特殊フォルダがあってもOK、の部分が惜しい気がしましたが
ふだん使っているフォルダを幾つか試してどれも大丈夫だったので
これを使わせていただきます
にしてもすごいシンプルになったな・・

83 :
google 日本語入力で ひらがなを入力中かどうかの検出ってできます?
アルファベットを打ちたいのに ひらがなをうっちゃたときにF9で売ってしまったものを英字にしつつ
英字入力モードに直したいのです

84 :
IMEfunk.ahkってのとはまた違うのか
a::
Send,^+{Left}
Backup := ClipboardAll
Clipboard =
Send,^x{vkF4sc029}
ClipWait,1
Send,%Clipboard%
Clipboard := Backup
Return
っていうのがそのまま使えるんじゃね

85 :
駄目だ思いつかない。
キー二連打に動作を割り当てたら、最初の1打目は絶対実行されるよね
ダブルクリックした時は最初のキー命令を破棄することって出来るのかな
もしくは
1打目からタイム計測してタイムアウトで1打目、タイムアウト前に2連打してたらダブルクリック動作
ていうふうにしたいんだけど書き方が思いつかない

86 :
ほれ
ttp://ahkwiki.net/SampleCodes

87 :
A_TimeSinceThisHotkey
A_TimeSinceThisHotkey
A_TickCount
あたりを適当に組み合わせればおk

88 :
ahkでrunでアプリを起動するとそのアプリの作業ディレクトリ?がahkのあるところになってしまって
アプリで相対パス指定したものがわやになってしまうんですが解決する方法はありますか

89 :
>>88
Runコマンドの第2引数で作業ディレクトリ指定できないか?

90 :
見落としてました
ありがとうございましたm(_ _)m

91 :
前スレのワンショットモデファイヤを好きに作り替えていいって話だったので大改造した。
スペースと変換キー以外にも修飾キーを自由に設定できるように変更。
とりあえず4つ修飾キー作れるようにしたのと、関数導入でキーコン楽にしたよ。
ttp://ux.getuploader.com/autohotkeyl/download/14/OSM%E5%A4%A7%E6%94%B9%E9%80%A0.zip

92 :
ttp://ux.getuploader.com/autohotkeyl/download/15/OSM%E5%A4%A7%E6%94%B9%E9%80%A0.zip
無意味なファイルが入ってたので削除して上げ直し
チョット表記ミスも直してますのでお手数ですがDLした人はもう一度お願いします

93 :
MouseGestureL の、設定画面をマウスジェスチャで表示させたいのですが、
どんなコマンドを発行すれば良いのでしょう?
教えていただけませんか?

94 :
>>93
GoSub,MG_Edit
どっちかっていうと、こっちのスレの話題
http://anago.2ch.net/test/read.cgi/software/1355047203/

95 :
他のプログラムでは可能なんですが、IEだけ
ahk_exe 【プロセス名】
でウィンドウ指定ができないのは仕様でしょうか
(例)、 WinActivate, ahk_exe iexplore.exe
Process, Exist, iexplore.exe とかだとうまく行くのでプロセス名が間違っているということはないと思います

96 :
Window Spyを起動した状態でWinActivate実行してみ

97 :
>>95
タスクマネージャー見ると分かると思うが
IEの場合互換性の為?に x32 と x64 の同名プロセスが同時に起動する
WinActivateで使ってない方のIEを最前面にしてるから効いてないように見えるだけ
そういう場合は 絶対パス または ahk_class で確実に指定した方がいい
○WinActivate, ahk_exe C:\Program Files\Internet Explorer\iexplore.exe
×WinActivate, ahk_exe C:\Program Files (x86)\Internet Explorer\iexplore.exe

98 :
>>97
32bitプラグイン使ってたら即32bitIEに切り替える仕様だからな> 64bitIE

99 :
遊び心でゲームとか作った人いる?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Opera総合スレッド Part198 (886)
【外付HDDで】 BOOT革命/USB 【OS起動】 (673)
IME Watcher for Windows XP (291)
【The Movie Player】MPlayer Part1 (250)
VMwareESX/ESXi専用スレPart12 (211)
【ニコニコ】NicomentXenoglossia【コメントDL等】 (150)
--log9.info------------------
【変異エボラ】嘔吐と発熱伴う新種で、致死率50% (119)
新型ウイルスを作ってる奴らちょっと来い (103)
長妻のせいでみんな豚インフルで死にます (156)
はしかの流行 (143)
新型インフルの疑いリストを淡々と更新するスレ (147)
大阪インフルエンザ★2 (106)
■ 近くで鳥が死んでいたらageるスレッド (131)
家族が新型を発症したが自分は高熱等でなかっった人 (119)
触れるだけ・近づくだけで感染する病気 (107)
■インフルエンザにかかったことがない人■ (194)
ハンセン病総合スレ (103)
俄かに脚光浴びているドクターサチについて語るスレ (116)
豚インフルエンザ陰謀説 (137)
関西大倉生だけど何か質問ある? (107)
温暖化で眠ってたウィルスが覚醒る (106)
【信じたら】トンデモサイト@新型感染症【危険】 (123)
--log55.com------------------
おから26
【銀魂】真選組なんでも雑談★2
高橋大輔の性癖検証スレ54
吉田君と仲間たちのスレ336
私的クマー
ララバイ part.3852
【画像】4808
高低周辺同人ヲチ2