1 名前:名無しさん@お腹いっぱい。 [2008/12/31(水) 12:39:34 ID:ROX9gd900] ■公式 www.autohotkey.com/ ■解説 AutoHotkeyを流行らせるページ lukewarm.s101.xrea.com/ ■過去スレ 1 pc7.2ch.net/test/read.cgi/software/1098531338/ 2 pc7.2ch.net/test/read.cgi/software/1129836713/ 3 pc11.2ch.net/test/read.cgi/software/1157043396/ 4 pc11.2ch.net/test/read.cgi/software/1184556627/ 5 pc11.2ch.net/test/read.cgi/software/1201502896/ 6 pc11.2ch.net/test/read.cgi/software/1219130051/ 関連リンク>>2 以降も参照
290 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:25:35 ID:w558LR820] >>281 流行らせるページの「タスクトレイアイコン操作」で望みが叶うかも。 何を望んでいるのかはわからんが。
291 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:39:14 ID:w558LR820] >>286 簡易の絶対領域みたいだね。TTBaseプラグインでもあったな。
292 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 06:36:37 ID:DfB2sRU60] >>289 なるほど その手がありましたか やってみます
293 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 09:20:33 ID:HnxszwKY0] >>291 質問者じゃないけど、どういう事か教えてくれまいか
294 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 09:29:13 ID:gRNTeVF80] ggrksが来るぞ
295 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 10:28:05 ID:m36Y1Mz60] 絶対領域はググっても違うもんばっか出てくる。 www.forest.impress.co.jp/article/2008/05/15/zettai.html
296 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 13:34:08 ID:w558LR820] あれ?違った?>>295 みたいなことをしたいのかと思ったわw混乱させてゴメンね。
297 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 15:56:36 ID:dAYg3thQ0] >>290 それってタスクトレイアイコンを直接操作するためのものじゃないの?
298 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 22:15:59 ID:mgBRF9yu0] >>287 即レスくれたのに遅くなってすみません、 if(Ypos <= 30 && Ypos != 19)にしたら快適動作で幸せです。 && Ypos != 19が必要だった理由が今ひとつ分かっていませんが勉強してみます。 有難うございました
299 名前:名無しさん@お腹いっぱい。 [2009/02/17(火) 00:33:23 ID:Uxje6XHz0] guiでウィンドウの中に exit ボタンを作成し そのボタンを押すとそのウィンドウを閉じるだけの物をつくりたいです はやらせるページのにあるものを使用して次のような物を作ったものの うまく動きません Gui,Add,Text,,testtest GUI,Add,Button,,Exit gui,show ButtonExit: ExitApp どこを直せばよいのでしょうか
300 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 00:43:51 ID:p7oLYgT60] gui,show return ここで終わらせないとExitAppまでいっちゃうぞ。
301 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 01:20:14 ID:Uxje6XHz0] >>300 あ、普通に動きました そりゃそうですね ご指摘ありがとうございます。
302 名前:274 mailto:sage [2009/02/17(火) 01:36:11 ID:ChZCT6AI0] >>275-276 ありがとうございます。無事できました。 276さんの書いていることは自分なりに勉強になりました。 便乗するようで悪いのですが、多重起動をしようとする際現状だと英語のメッセージが出るんですが Menu, TRAY, NoStandard のように消して、日本語にすることって可能でしょうか?
303 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 02:38:11 ID:t03ashNM0] ドッカーン! (⌒⌒⌒) ||| _____ /::::::::::::::::::::::::::\〜プーン /:::::::::::::::::::::::::::::::\〜プーン |:::::::::::::;;;;;;|_|_|_|_|〜プーン |;;;;;;;;;;ノ∪ \,) ,,/ ヽ〜 |::( 6∪ ー─◎─◎ )〜 |ノ (∵∴ ( o o)∴)〜 | ∪< ∵∵ 3 ∵> ムッキー! \ ⌒ ノ______ \_____/ | | ̄ ̄\ \ ___/ \ | | | ̄ ̄| |:::::::/ \___ \| | |__| |:::::::| \____|⊃⊂|__|__/ / |:::::/ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
304 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 14:45:20 ID:Bio3yT//0] やろうと思えば、ウィンドウの監視と COntrolsettextで出来なくもなさそうだけど…
305 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 04:54:19 ID:ZSSUooit0] 若干スレ違いかもしれませんが、 WindowsのHDDコントローラ(ATA)のモードが、 UDMAになってるか、PIOになっているかを、 ahkから読み取るには、どのようにすればできそうでしょうか。 何台もPCを使っていると、いつのまにかPIOになっていることがあったので、 それを起動時にチェックしてバルーン通知したいと考えています。
306 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 12:29:43 ID:YsZiDyJK0] レジストリの値を読むとか?
307 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 17:28:59 ID:o28us3FR0] 括弧 { を入力した後 } を加えてカーソルを中に入れるように ~+[::Send,}{left} return と記述したのですが } と{left}しか送られません 他の括弧は たとえば<> 同じように ~+,::Send,>{left} return でうまくいってるのですが、どのようにしたら {} でも成功するでしょうか?
308 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 19:06:54 ID:FVUyG2Or0] >>307 つ 特殊記号のエスケープ ttp://lukewarm.s101.xrea.com/commands/Send.html
309 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 19:34:48 ID:29d3Le160] 俺も>>231 みたいに「 , 」(コンマ)を使うホットキーが使えなかった。 コンマ使うホットキーを今使いたいわけじゃないが、 もし必要になった時に困るので調べてみた。OSはWinXP SP3。 以下試したこと ×Hotkeyコマンド( Hotkey,% ","〜 ) ×Hotkeyラベル( ,:: 〜 ) ×GetKeyState(",","P")→状態取れず ×本体バージョンをあれこれ変えた ○別PCで同じスクリプトを試した(WinXP SP2) ○「 vkBCsc033 」形式で書く vkBCsc033を使った方が確実かもしれない。
310 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 20:56:25 ID:o28us3FR0] >>308 ありがとう 解決しました
311 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 00:32:15 ID:nBgazVqW0] >>219-220 これの解決法ないでしょうか? 似たようなスクリプト作ったんですがやはり数分すると クリップボードの監視が無効になってしまいます。
312 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 00:58:08 ID:YWf8g0hR0] timerでreload仕込むとか
313 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 11:09:45 ID:KfP6MoHK0] OnClipboardChange: じゃなくて ClipWaitで監視してみるとか? あとはAPI のクリップボード関数で直接弄るか。 関係ないが、クリップボード内容がEXCELデータのときに ClipboardALLで丸ごと待避しようとするとExcelがハングする。 DllCall("GetClipboardOwner",Int) でオーナーウィンドウを調べて Excelがオーナーの時は テキスト内容だけ保存するようにして回避してるがちと面倒だ。
314 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 11:41:34 ID:KfP6MoHK0] そういや昔あったクリップボードユーティリティースレでもこの手の話題あったな。 確かクリップボードの変更通知はクリップボードビューアチェインに接続されたソフト間での バケツリレー方式で伝えられていくので、間に行儀の悪いソフトがいるとチェインから勝手に 外されてしまって、それ以降の変更通知が受け取れなくなるって話だったような。 巷によくあるクリップボード系ユーティリティーでは定期的にチェイン接続し直すことで 対策を取ってるとかだったと思う。 よくわからんがAHKでも ONMessage()で CallBackサポートされてるし、具体的なサンプルは clcl のソースとか見ればたぶんできるんじゃね。 英語できるんならAHK作者氏に対策方法添えて要望出すのが手っ取り早いとも思うけど。
315 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 12:09:33 ID:BAYW6hF70] 流れ無視して悪いがさっぱり分からんので、教えて頂きたい 例えば、 -t C:\Documents and Settings C:\Program Files というような文字列を、 -t "C:\Documents and Settings" "C:\Program Files" というように、パスっぽい文字列に引用符をつけるには、 どうすればいいのだろうか?
316 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 12:53:07 ID:IHzf1wv30] 文字列の中に実在するパスがあったら囲む、くらいじゃないの
317 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 13:27:25 ID:IHzf1wv30] 適当に作った。かっこ悪い。 Hoge(str) { StringSplit, arr, str, %A_Space% idx := 0 Loop { if (idx++ >= arr0) break c := arr0 - idx Loop { p := arr%idx% Loop, %c% i := idx + A_Index, p .= A_Space . arr%i% if FileExist(p) { arr%idx% := """" arr%idx%, idx += c, arr%idx% := arr%idx% . """" break } if (c-- < 1) break } } Loop, %arr0% ret .= ((A_index > 1) ? A_Space : "" ) . arr%A_Index% return ret }
318 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 13:39:31 ID:BAYW6hF70] >>316-317 ぐはっ、わざわざ作って頂けるとは! よくそんなすぐに作れるな、初心者からすれば驚愕ですよ ありがとー
319 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/20(金) 18:36:07 ID:+ofqUOOa0] vistaじゃFileSetTime使えないのかな
320 名前:名無しさん@お腹いっぱい。 [2009/02/21(土) 21:01:51 ID:FzZoDrMY0] FirefoxにAlt+Rで、戻るを割り当てたいのですが、 autohotkeyからPostMessageを送って設定することは可能でしょうか? 可能であるなら、下の0x111,28690,0,,A に相当する値をお教えいただけないでしょうか? m(__)m !R::PostMessage,0x111,28690,0,,A ;// 戻るを割り当てたい firefoxでPDFを開くとフォーカスがacrobatに奪われるので、 autohotokeyを使って、戻るのキーを割り当てられないかと試行錯誤しております
321 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/21(土) 21:52:11 ID:0EOzQQjN0] うちは↓でいける @Fx3.0.6 on XP SP3 #IfWinActive, ahk_class MozillaUIWindowClass !Left::Send, {Browser_Back} !Right::Send, {Browser_Forward}
322 名前:320 mailto:sage [2009/02/21(土) 22:10:01 ID:FzZoDrMY0] >>321 ありがとうございます 助かりました
323 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 20:03:09 ID:qnu0ZxRB0] 自分も前から気になってたけど、FirefoxはSendMessageとかPostMessageは受け取らないのでしょうか? 非アクティブのままにautohotkeyから操作したいんですけど?
324 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 20:13:46 ID:q+YO7qML0] ご存じの通りマルチプラットフォームのものでWin専用って訳じゃないから、 ウィンドウメッセージ受けとってもスルーされるものが多いと思う。 WM_MOUSEWHEEL とか WM_KEYDOWN/UP などは受けとってそれなりに動く。 メニューバーやステータスバーもウィンドウズのものじゃなく独自に作ったもの。(>>254 参照) Firefoxだけじゃなく Java とかもそうだけどそういうのをコントロールするのはちと厳しいね。
325 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 22:56:59 ID:lt/+4kjg0] 確実性には乏しいかも知れんが ControlSend か ControlClick あたり試してみたらどうだろうか
326 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 22:58:01 ID:qnu0ZxRB0] >マルチプラットフォーム これをすっかり忘れてました、そう言われると出来なくても当然って感じですね ありがとうございました。
327 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 23:19:18 ID:qnu0ZxRB0] >>325 ありがとうございます。 今ちょっと試してみたら、ControlSendでなりそうです。
328 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 00:59:34 ID:chhOXYqK0] Enterを右Ctrlにするやり方がわかりません。 Enter::RCtrlでBSを入れようとすると Enter+Hで1回はBS入るけど、 Enter押したままもう一度Hを入れると こんどはそのままHが入力されます。 どうしたらいいんでしょうか?
329 名前:名無しさん@お腹いっぱい。 [2009/02/23(月) 07:31:59 ID:xVptRsNb0] コロンのhotkeyに割り当てる方法はないでしょうか? :::Send,{A} ;// : をAに割り当て vkBAsc028::Send,{A} ;// : をAに割り当て のどちらで設定しても、:のhotkeyが有効になりません セミコロンだと以下で割り当てられるのですが… vkBBsc027::Send,{A}
330 名前:名無しさん@お腹いっぱい。 [2009/02/23(月) 21:29:51 ID:6awX2jgS0] AutoHotkeyを流行らせるページ lukewarm.s101.xrea.com/ ↑の入力置換関連部分を無視すればAutoIt3の日本語ドキュメントになる? しかしAutoIt日本語ドキュメントなさ杉
331 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 23:50:07 ID:KDZEcOqx0] 結構書き方違う
332 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 03:37:01 ID:mnDWmi6d0] mayuでは難しい部分を、最近ahkで作り始めました。 VIMが1枚だけ存在したらアクティブに、 2枚以上存在したらリストを表示するようにしたいのですが、 以下の状態で既に詰んでます...どなたかご教示願います。 #^+!f2:: SetTitleMatchMode,2 WinGet, title, Count, - GVIM If %title% = 0 MsgBox, none else if %title% = 1 MsgBox, vim else MsgBox, %title% ウインドウ数は取得できてるようなのですが...
333 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 03:48:04 ID:nmUnQgbz0] If title = 0
334 名前:332 mailto:sage [2009/02/24(火) 04:06:13 ID:mnDWmi6d0] >>333 ありがとうです! 盲点でした。
335 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 06:40:25 ID:9IBsCb9z0] 変数は常に%%で囲むっていう風に統一してくれればいいのに。
336 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 08:53:53 ID:hmO2qa6n0] if 1 = 0 こんな書き方になっちゃうもんなぁ。
337 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 09:20:34 ID:ZrVDgkhH0] 文字列リテラルは一般の言語様式に合わせてくれた方がいいな シングル・ダブルクォートで囲むとか
338 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 15:13:52 ID:10tP/ti50] SandS.ahkの2008.09.21版かそれ以降のものがほしいのですが、どなたかお願い できないでしょうか。
339 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 15:23:09 ID:A2x/mr5E0] あぷろだにまだ上がってるよ lukewarm.s101.xrea.com/up/file/089.zip でも SandS だったら前スレ264のがシンプルかつスマートでいいと思う。 > 264 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/09/21(日) 22:24:04 ID:jd9yjK/i0 > 自分の Shift & Space はこれ。 > > Space Up:: Send, % "{Shift Up}" (A_TimeSincePriorHotkey < 200 ? " " : "") > +Space:: Send, +{Space} > >+Space:: Return > Space:: RShift
340 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 16:20:53 ID:10tP/ti50] >>339 どうもありがとうございます。とても助かりました。 (A_TimeSincePriorHotkey < 200 ? " " : "") てあたりが気がきいていると思いました。
341 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 14:47:02 ID:qGUJzHwS0] 最長マッチのHotstringを作りたいのですが どうすればよいのでしょうか
342 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 17:32:35 ID:zx85xhcp0] Feb 25, 2009 Version 1.0.48 is released.
343 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 18:09:02 ID:N/JDSNBe0] パッチ等を当てずに安心して2バイトコードを使える日は、いつになるのだろうか・・・
344 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:06:58 ID:eljuCyAE0] ttp://www.autohotkey.com/changelog/ の適当な訳 1.0.48 - February 25, 2009 ■互換性 後方互換性に影響するであろう変更は、今回より、変数に格納された浮動小数点値が高精度なったこと。 数値精度の差に依存するスクリプトは精査して、更新する必要があるかも。 "SetFormat Float" (例: SetFormat, Float, 0.6) を *各所* で利用することで互換性が維持できるはず。 「SetFormatフロート」は高精度値を不活化するけど、新しい速い浮動小数点演算のうちのいくらかを使わない。 ■パフォーマンス このリリースの主なテーマはよりより速い実行。 スクリプトはほとんどすべてより速く実行できるはず- 特に式とか整数の評価の多用では(場合によっちゃ通常の3倍!)。 完全なる恩恵を得るには、スクリプトは、SetFormatを使用しないようにするべきか、あるいはSetFormatの速いモードを使用するべき。
345 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:07:22 ID:eljuCyAE0] ■性能改善 - 式と関数のコンパイルをコッテリとさせて、より速くなった(とくに複雑な製数式で、カンマも含む) - 変数に格納されたバイナリ数値をキャッシュさせて文字列(から/へ)変換するのをやめるようにした。これで変数の算術演算が速くなった。 - 式やマッチ/比較コマンド内でのリテラルの数値をバイナリ数値とするようにしたことにより速くなった。例) X+5 とか "if x > 5" - ブロックを持つループやIFやELSEを "{" をスキップすることで速く実行できるようになった。この結果、"{" が ListLinesで省略されるようになった。 - スレッド作成のパフォーマンスの改善、OnMessage(), RegisterCallback(), GUIイベントの rapid-fireスレッドを補佐する。(註:よくわからん) ■既存スクリプトに影響するかもしれない変更点(トップで記述されているより高精度な浮動小数点以外のもの) - "SetFormat, Integer, Hex" が有効な場合、リテラルの10進値を変数に格納するときに16進数に変換する。これは普通表示用途なはず。 - OnMessage()パフォーマンスについて、メッセージ番号とHWNDは無条件で16進数でなく通常の数値としてやってくる。これは通常表示用となはず。 - パフォーマンスにおける様々な改良を達成するために、スクリプトは今よりちょっと多くのメモリを使用する。(変数と式の数に比例している) - if var is time" と "YYYYMMDDHHMISS"形式のタイムスタンプを変更・修正し、月の範囲が1-12内に無い場合不正なものとして認識するようにした。[ニックありがと] - Dynamic関数呼び出しを変更・改善し、関数に定義されたパラメタ数よりも多いものも許容するようにした。このときパラメタは評価はされるが破棄される。[Lexikosが開発(註:Autohotkey_Lの人)] ■その他の変更点 - Autohotkey_Lより追加 → IsFunc() / while-loop / assume-static / A_IsPaused / A_IsCritical / WheelLeft と WheelRight - NumPutで UInt64をサポート - UPXを変えた
346 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:11:50 ID:eljuCyAE0] バグフィックスは面倒なので割愛w #if は取り入れなかったのかぁ・・・残念
347 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 00:57:18 ID:aRIZ1QSP0] 複数のウインドウを高速に一度に前面にもってくることってできないでしょうか? 今は、10枚くらいあるウインドウをWinActivateとLoopで前面化を行っていますが、 かなりまったりと順番に前面にでてきてしまいます。 もとパッっと出すことはできないものかなあと思いまして。 今はこんな感じでやってます。(指定のexeのウインドウを全部前に出す例) +^!e:: Process, Exist, MageMogeChart.exe if ErrorLevel = 0 return WinGet, id, list, ahk_pid %ErrorLevel% Loop, %id% { StringTrimRight, this_id, id%a_index%, 0 WinGetTitle, this_title, ahk_id %this_id% WinActivate, ahk_id %this_id% } return
348 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 01:25:30 ID:c+2Jobtp0] SetWinDelayでコマンド発行後のウェイトを指定してやる。 ウィンドウの重なりが逆順になると思うけど。 v1.0.48用で書いてみた SetWinDelay, 10 Process, Exist, (ここにExe名) WinGet, list, LIST, ahk_pid %ErrorLevel% while list>0 { WinActivate, % "ahk_id " list%list% list-- }
349 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 20:30:19 ID:uqsx4u4h0] DELL LATITUDE E6400でTrackWheel(VER. 20081206)を使ってたんだけど しばらくぶりにバージョンアップしようと最新版/RC版に変えてみたら中ボタンに反応しない。 なんてこった。
350 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 00:25:24 ID:X+HJqC5y0] ショートカットキーが付いてないソフトのボタンにahkでキーを割り当てたいんですけど各ボタンを指定するにはどうすればいいですか?
351 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 00:39:59 ID:imLzKJgB0] ものすごい放置してた。久しぶりにソース見た。思い出すのに時間がかかった。 >>349 AHK v1.0.48 だと DllCall の Return Type を指定するとうまくいかないところがある。 983行目の最後の ,"Int" を外すと動くかもしれない。 というか、反応しないって事はホットキーのアサインがうまくいってないかも。 全く構造が違うので、Iniは去年のものは流用できないっす。 >>350 1) ControlClick を使う WindowSpyで独自のボタン情報がとれるなら 直接指定モードでいいはず。 情報がとれないなら、座標指定モードで(ツールバーならこっち)。 2) ツールバーのコマンドを調べてウィンドウメッセージを送る(玄人向け) ttp://lukewarm.s101.xrea.com/myscripts/index.html の "Inspecting Toolbar IDs" を使って PostMessage を使って WM_COMMAND を送る
352 名前:349 mailto:sage [2009/02/28(土) 07:36:34 ID:ZNlNraZX0] >>351 どうも ・1.0.47でも1.0.48でもダメ ・1.0.48で983行目の最後の,"Int"外してもダメ ・iniは流用していない で、iniのButton=MButtonを=RButtonにしてみると反応する。スクロールもできる。 けどボタンを離してもスクロールのモードから戻ってこない。 てな状況です。
353 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 20:06:00 ID:imLzKJgB0] >>352 中ボタンで反応しないのと、右ボタンで暴走したままなのは別事象っす 中ボタンの方だけど、メイン画面開いて Ctrl+H かメニューから View→Hotkeys... でホットキー一覧出して m-hook *MButton って出てたら、ホットキー登録は問題ないはず。なってないなら大問題・・・。 そうなっているのに動かないなら他のユーティリティが影響していると思われる 確認をお願い > RButtonにしてみると・・・モードから戻ってこない こっちはバグですな・・・ 間違えた記述のあるサイトのソースを丸々パクっていたため。考えもせず置換して使ってたorz 誤: TW_RBUTTONDOWN:=0x205 , TW_RBUTTONUP:=0x206 正: TW_RBUTTONDOWN:=0x204 , TW_RBUTTONUP:=0x205 650行目あたりから,、それぞれ2カ所あるっす # 色々直したら zip で置き直す予定
354 名前:349 mailto:sage [2009/02/28(土) 22:00:14 ID:ZNlNraZX0] >>353 > m-hook *MButton 出てます。 他のユーティリティか、うーん。旧バージョンは動くのになー。 とりあえずmsconfigで診断スタートアップにしてみたけどダメでした。 RButtonではちゃんと動くようになりました。
355 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 23:58:39 ID:imLzKJgB0] 旧verで動かしてたんだからそこに問題はないとは分かるんだけど、一応って事で ・・・そうなると機序的に何処に問題があるかは、今はちょっと分からないっす 一応、ソースもう一度読み直ししてみるっす
356 名前:350 mailto:sage [2009/03/01(日) 03:43:58 ID:Rc2HQ5QJ0] >>351 ありがとうございました ControlClickでいけました
357 名前:349 mailto:sage [2009/03/01(日) 20:30:20 ID:GJkhTa1h0] >>355 お手数かけてすまそ。 中ボタンに反応しないって書いたけど、 TWを起動している状態ではアプリケーションでの中クリックも効かなくなってるので TW自体は一応反応してる気がします。
358 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 10:53:15 ID:3PFCvLeG0] >>348 SetWinDelay で指定してみたら、瞬時にとはいきませんがかなり早くなりました。 最新のはwhile使えるようになったんですね ありがとうございました。
359 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 15:03:15 ID:4Ix+9L8p0] AutoHotkeyでmacのDashbordみたいなの作れないかな と自分で無理なことを言ってみる
360 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 22:51:10 ID:zVxOqqcX0] ダブルクリックとドラッグの挙動をカスタムしたいんですが、見つかりません コマンド教えてください
361 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:08:22 ID:ZvTbo6At0] +WheelDown::WheelUp このスクリプトでしばらくは正常に動作するのですが 71 hotkeys have been received in the last 577ms. というメッセージが出てきます。 どういうことでしょうか?
362 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:10:50 ID:pYSwiV1N0] スクリプトの冒頭で #MaxHotkeysPerInterval 200 と書くと良い
363 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:22:01 ID:ZvTbo6At0] #MaxHotkeysPerInterval 300でいけました ありがとうございます。
364 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 15:08:04 ID:VwNNjCy00] Dllcallを使いたいのですが、構造体というものがわからないのでちょっと質問させてください。 AHKで構造体を使うというのは、 メタボかどうかを判断したいので、健康診断の記録から ・体重と腹回りの項目を見ろ(構造体) ・上から3行目の数字と、上から7行目の数字を見ろ(AHKの強引な手段) といった感じで、メモリの位置を直接指定しているといった認識でおkでしょうか。
365 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 15:52:18 ID:rkwP19PJ0] Cも何も分からんけどAHKでゴリゴリDllCall使っている漏れの私的な見解 > メモリの位置を直接指定しているといった認識でおk たぶんそう 構造体って言語仕様でも何でもなく、 「ある番地を起点に確保したメモリの使い方はこうするんだぜ」 って決め方だと思ってる。(言語でサポートされているのは使うのは楽らしいけど。) だからVarSetCapacityとかでメモリ領域確保してアドレス渡しすれば結構使えちまう。
366 名前:名無しさん@お腹いっぱい。 [2009/03/04(水) 23:33:02 ID:oTTwde4w0] suspend 時のアイコンを変更できない物でしょうか?
367 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 08:18:57 ID:7I9asjSe0] ttp://www.autohotkey.com/forum/topic22975.html
368 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 09:07:32 ID:DThF++lC0] >>367 いやコンパイルせずにソースを実行するときに アイコンを変更することができない物かと 試行錯誤をしていました 無理っぽいですね ありがとうございます
369 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 09:32:36 ID:UhjQBASr0] 会社でahkを使ってたら、Hなダイヤルアッププログラムと誤解された
370 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 11:37:52 ID:rcFfvT/S0] A(在り得ないほど) H(えっちな) K(娘通信) ?
371 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 11:47:21 ID:lgTNReVh0] >>366 メニューは作り直すしか無さそう。 menu, tray, NoStandard menu, tray, icon, shdoclc.dll, 1, 1 menu, tray, add, Suspend Hotkeys, suspend_hotkeys menu, tray, add, Exit, ExitSub return suspend_hotkeys: suspend menu, tray, icon, shdoclc.dll, % A_IsSuspended+1 ", 1" menu, tray, togglecheck, Suspend Hotkeys msgbox, suspend return #s:: suspend, permit gosub, suspend_hotkeys return ExitSub: ExitApp
372 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 12:01:41 ID:lgTNReVh0] あ、俺勝手にトレイアイコンの事だと判断しちゃったな・・ 違ってたらスマン
373 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 12:28:12 ID:GNmqhAQE0] >>371-372 おお、これで十分です トレイアイコンの変更を意図していました ありがとうございます。
374 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 20:15:15 ID:xz90t0puP] 会社ではトレイアイコンは常に非表示に設定してる
375 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 00:46:39 ID:Y32mGPTe0] だからどうした。
376 名前:名無しさん@お腹いっぱい。 [2009/03/06(金) 02:31:08 ID:6lo5rU0D0] ctrl と j でエンターキーを押した動作をさせたいのですが ^j::enter と書くと、ctrlとjが押し下げられているままとなっているようで、 実際には ctrl とjを押しながらエンターキーを押す動作となってしまいました ^j::Send,{enter} と書いても、ctrlが押し下げられているままとなっているようでした そこで ^j::Send,{Blind}{Ctrl Up}{enter} と書いたら一回目の入力は成功するものの、 {Ctrl Up}のせいで次回以降 ^j にヒットしなくなってしまいました ctrl と j でエンターキーを押し、かつそれを連続して入力する設定は可能でしょうか?
377 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 02:52:01 ID:EIumwJQn0] >>376 ^j::Send,{enter} で何の問題もなくエンター打てるけど?
378 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 05:33:37 ID:6lo5rU0D0] >>377 キーの動作を見てみると、コントロールキーも一緒に送信しているようなのです。 fenrir 経由でx-finderを起動するときに コントロールキーも一緒に送信されると 多重起動されてしまいます これを防止したいと思いました。 通常のアプリケーションでは何ら問題ないようだとは うすうす感じていますが……
379 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 06:53:07 ID:atFpTk3M0] さらに ^j::Send,{Blind}{Ctrl Up}{enter}{Ctrl Down} としたらどうなの
380 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 12:05:24 ID:sR26OTSx0] >>379 それなら大丈夫そうです ありがとうございます。
381 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 15:01:28 ID:dtsNACZp0] >>359 俺は逆だな。macでAutoHotkeyが欲しい。
382 名前:名無しさん@お腹いっぱい。 [2009/03/06(金) 22:52:29 ID:gMTAf0z20] タスクトレイのアイコンをダブルクリックしたら hello!と表示させたいのですが、できますか? Gui の Menu の項目を読んでもわかりません Click, ClickCount あたりを使えばよいのでしょうか?
383 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 00:30:41 ID:GNhe+RZO0] >>382 できる。 トレイにメニュー項目を追加してデフォルトにする
384 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 04:04:12 ID:41mSVwUw0] >>383 ありがとうございます。 できました
385 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 08:14:05 ID:HkiIUUNz0] AHKのGUIが便利すぎるので、フロントエンドにAHKを使い、パラレルポートの制御をしたいです。 用途は機械制御(赤外線の人センサーによる出入り回数の把握)で、数個のLEDの点灯制御と、 10bps(10kじゃないです)の双方向シリアル通信で、制御の確実性(信頼性)は低くてOKです。 本家を検索し、シリアルポートをGUIで制御するサンプルはありました。 www.autohotkey.com/forum/topic26533.html これのパラレルポート版に相当するサンプルがあると最高なのですが、探せませんでした。 ジョイスティック制御のdppの技術が使えそうですが、本家をdppで検索してもヒットせず。 ポート制御の達人がいらっしゃいましたら、なにかヒントをいただけると嬉しいです。
386 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 08:57:54 ID:EX6aOmt+0] >>385 そういうのは VBとかDelphiとかのフォーラムとか過去ログ覗いたらいいと思う。 前にDelphi使ってたけど、シリアルポート制御のコンポーネントとかいくつかあったはず。 VBにもあるだろうと思う。それを移植するか、DLL化して使うか。 多分、需要がなくなっていない分野なら、C#やVB.netのものも見つかると思う。 VB、Delphi、C#、VB.net はVB以外は無料バージョンあるから、 ポトペタでGUI作れるからAHKよりよほど楽なんで、いっそそっちの言語でつくってもいいし
387 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 09:00:02 ID:EX6aOmt+0] ごめん、パラレルポートだったか。どちらにせよ、検索してみてほしい。 Delphiだとこの辺。 Delphi-ML過去ログ検索 leed.t.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi Delphi ML archive | Google グループ groups.google.co.jp/group/delphicbuilder-ml-archive Delphi Q & A掲示板 hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi
388 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 09:43:07 ID:EX6aOmt+0] > 【1 OSの種類 .】 Windows Vista SP1 > 【2 Excelのバージョン 】 Excel 2007 > 【3 VBAが使えるか .】 はい > 【4 VBAでの回答の可否】 否 > 【5 検索キーワード 】 Excel 補完 タブ Tab エンター ENTER など > > すごく、無茶な質問を承知でお聞きいたします。 > > Excel上やVBAエディタ上では、補完候補の決定がタブになっているのですが、 > 他の開発環境のクセでエンターを間違えておして毎回イライラしてしまいます。 > 間違えないようにする方法、もしくは、タブではなくエンターで決定する方法はありませんでしょうか? 誘導されてきました。 こういうのってAutoHotKeyで可能なんでしょうか? 候補ウインドウが出ている時だけ、ENTERをTABに置換? うーん考えただけで・・・
389 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 12:24:08 ID:umaUJV8o0] 英語版のキーボードと日本語版のキーボードを それぞれ場合分けして処理することはできないでしょうか
390 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 12:45:36 ID:GNhe+RZO0] >>388 出来ると思う。 >.>389 無理。
391 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 13:43:56 ID:umaUJV8o0] >>390 そうですかわかりました
392 名前:名無しさん@お腹いっぱい。 [2009/03/07(土) 20:19:46 ID:9fbJ8ZNJ0] メニューバーの編集(E)とかワードパットのフォントカラーとかを 操作できる命令はありますか?
393 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 20:38:41 ID:MDzSZOKi0] あるよ
394 名前:名無しさん@お腹いっぱい。 [2009/03/07(土) 22:23:07 ID:uKtAZx+C0] gui で作成したウィンドウにデフォルトでついている 右上の最小化ボタン(_)がありますよね? これをクリックしたらタスクバーに表示せず タスクトレイに格納したいのですが どうすればよいのかわかりません 言い換えると、gui の操作で minimize のコマンドを送るようにできればいいのですが
395 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 00:00:01 ID:tr/g5E240] >>386 情報どうもです。別方面からも検討してみます。
396 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 10:26:24 ID:U6oXO4Qm0] Escキーを2回、トントンって入力するとウィンドウが最小化するスクリプトを 書きたいんだけど、どこが間違っているか教えて欲しい Inputコマンド lukewarm.s101.xrea.com/commands/Input.html ↓ソース Esc:: Input,InputChar,C I L1 T2,endkey,{Esc},z,x if ErrorLevel=Match { if InputChar={Esc} WinMinimize, A if InputChar=z if InputChar=x } return
397 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 10:34:55 ID:esDbqi200] キーのダブルタップはサンプルあるだろ
398 名前:394 mailto:sage [2009/03/08(日) 12:41:19 ID:Zm/1oWz60] 自己レスですが gui close で何とかなりそうですね スレ汚し失礼しました
399 名前:394 mailto:sage [2009/03/08(日) 12:59:56 ID:Zm/1oWz60] たびたびすみません やっぱりできません
400 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 15:01:14 ID:INaMOjyr0] >>399 右クリフックしてWM_NCHITTESTでマウス位置調べたらいいんじゃね HTMINBUTTON だったらGUIを Hideにする。 タスクトレイからの復旧はMenuを書き替えればできるべ
401 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 20:24:31 ID:CbAikyhi0] >>400 ふむ、その手が使えそうですね ありがとうございました
402 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 20:39:34 ID:W44aSFYp0] まっとうにやるなら>>400 だけど。別の方法 Menu, Tray, Add, ShowGui Gui, Add, Text,, This is Test ShowGui: Gui, Show return GuiSize: if A_GuiWidth<1 Gui, Hide return
403 名前:名無しさん@お腹いっぱい。 [2009/03/08(日) 22:31:03 ID:OvInxdiZ0] テキストファイルを読み込むときに 最終行を検出する方法はありますか?
404 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 23:41:33 ID:W44aSFYp0] ないんじゃないかな。 Loop, PARSE, ファイル名, `n hoge := A_LoopReadLine とすればループが終わったときに hoge には最終行の内容が入っているけど
405 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 23:46:14 ID:ABSLuhUi0] >>404 そうできるのであれば十分です どうもありがとうございます!
406 名前:名無しさん@お腹いっぱい。 [2009/03/09(月) 18:31:39 ID:3Pb9nLSu0] ワードパッドの書式バーのフォントの色の変更や 太字化をahkでやりたいんですが座標指定でやるしかないんでしょうか? WinMenuSelectでは反応しないし、 ボタンのハンドルをMouseGetPosで調べることもできません。 青とか赤の個別の色のボタンは調べられるんですが、値が毎回違うので 行き詰っています。
407 名前:406こういう感じでやりました [2009/03/09(月) 18:48:21 ID:3Pb9nLSu0] #F:: MouseGetPos, X , Y, W, OVC,2 ;これでハンドルを調べました MsgBox %W% <--> %OVC% clipboard = %OVC% return #G:: SetTitleMatchMode,2 DetectHiddenText, On WinMenuSelectItem,ahk_id 0x50370,,7& ;ウインドウのハンドルからメニューバーとして操作しようとしましたが WinMenuSelectItem,ahk_id 0x50370,,8& ;反応しません WinMenuSelectItem,ahk_id 0x50370,,9& WinMenuSelectItem,ahk_id 0x50370,,10& WinMenuSelectItem,ahk_id 0x50370,,11& WinMenuSelectItem,ahk_id 0x50370,,12& ;WinMenuSelectItem,ahk_id 0x50370,,1&,1& ;ファイル→新規、これは動きます
408 名前:406こういう感じでやりました [2009/03/09(月) 18:50:43 ID:3Pb9nLSu0] WinMenuSelectItem,ahk_id 0xd40372,,1& ;バー自体のアドレスからメニューバーとして操作しようとして WinMenuSelectItem,ahk_id 0xd40372,,2& ;動きません WinMenuSelectItem,ahk_id 0xd40372,,3& WinMenuSelectItem,ahk_id 0xd40372,,4& WinMenuSelectItem,ahk_id 0xd40372,,5& WinMenuSelectItem,ahk_id 0xd60376,,1& ;反応しません WinMenuSelectItem,ahk_id 0xd60376,,2& WinMenuSelectItem,ahk_id 0xd60376,,3& WinMenuSelectItem,ahk_id 0xd60376,,4& WinMenuSelectItem,ahk_id 0xd60376,,5& WinMenuSelectItem,ahk_id 0x9d01b2,,1& WinMenuSelectItem,ahk_id 0x9d01b2,,2& WinMenuSelectItem,ahk_id 0x9d01b2,,3& WinMenuSelectItem,ahk_id 0x9d01b2,,4& WinMenuSelectItem,ahk_id 0x9d01b2,,5& ControlClick,,ahk_id 0xfb0194,,LEFT ;ハンドルが特定できません MsgBox done return
409 名前:nCIjdtNZgMN mailto:nihfnmwf@zzaawhbf.com [2009/03/09(月) 18:51:33 ID:1ok/Ifbl0] comment5, kim-kardashian-video.limitedliability.us/index.html kim kardashian nude video, %-PP,
410 名前:406こういう感じでやりました [2009/03/09(月) 19:17:25 ID:3Pb9nLSu0] やり直したらinspect_toolbarがなぜか今回は動いたので それでやってみます
411 名前:406こういう感じでやりました [2009/03/09(月) 23:05:06 ID:3Pb9nLSu0] 連投すみません ワードパッドの書式バーの位置をずらした後 (メニューバー・ファイル(ファイル... ツールーバー 書式バー(MSゴシック... のように ) inspect_tool_ids で書式バーのコマンドIDを調べて(32801) #G:: PostMessage,0x111,32801,0,,A return でフォントの色を選ぶボタンをahk経由で押させることは出来たのですが、 赤とか青とかの個別の色を押させることが出来ません。 方法はありますか?
412 名前:406-411(除409) [2009/03/10(火) 00:39:25 ID:VYBxlQGq0] すいません、出来ました。Resource HackerでIDが調べられて 無事できました。ありがとうございました。長すぎる連投してしまい 本当に申し訳ないです。
413 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:05:28 ID:rmSmGeHP0] 起動してるプロセスを取得してその中から選択したプロセスを監視して任意の条件でいろいろする ってのをやってみてるんだけど IrvineとかJaneとかプロセスが二重に取得されてどっちを選べばいいかわからない
414 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:11:02 ID:D/8zxGdl0] 多重で起動してるの?すごい使い方だな。
415 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:47:04 ID:rmSmGeHP0] 一つしか起動してないけど取得されるのは二つになってるってこと
416 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 16:27:55 ID:4NcKH5rc0] AHKでプロセスいじるのって Process コマンドでの 存在チェック(PID取得)、 強制終了、 優先度変更、 終了/存在待ち だけど、二重に取得されるってどういうことだろ Process, Exist, Jane2ch.exe pid := ErrorLevel WinGet, list, LIST, ahk_pid %pid% MsgBox, %list% ってすると2個窓がとれるけど これのことだったら >>144 ,147,153 あたりと同じなんだが・・・
417 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 21:21:52 ID:gm+lfOz80] Delphi製のアレなら、既に解決方法は確立されているので検索してこい
418 名前:名無しさん@お腹いっぱい。 [2009/03/11(水) 03:02:36 ID:pYoGuoaj0] WM_COMMANDでメニューバーをクリックしたときにでてくる新しいウインドウ の中のコマンドに対するコマンドIDをしらべたいんですが、 何かいい方法はありますか? 窓コンもinspect_toolbarも反応しなくて、resource hacker でも調べられません。 ddwinとかpdicビューワーに使いたいんですけど。
419 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 07:16:24 ID:1ccOe8xw0] WheelScroll.ahk の改造版をうpしますた。ホイール加速を滑らかにしたつもり。 lukewarm.s101.xrea.com/up/ の 104.zip
420 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 08:59:21 ID:12ef3abb0] AutoHotKeyのPython版みたいなのみつけた。 AutoHotKeyのスクリプトの記述性の低さが嫌な人にはいいのかも。 keyhac ?(craftware)? sites.google.com/site/craftware/keyhac まあ、AutoHotKeyはDSL(ドメイン特化言語)で手軽さがあってそれでいてGUI持つくれるというのがいいけどね。 (まあ、PythonもGUIいけるけど)
421 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 10:22:40 ID:12ef3abb0] ちょっと質問です。OpenJaneで「お気に入り」に入れてあるスレを お気に入りからはずして「印」のみつける(お気に入りからはずすと何故か「印」がはずれてしまうため) というのを一発でやりたいと考えています。 メニューのコマンドを送ろうとしているのですが、ControlSendを使ってもキーが送られないようです。 以下のように単なるSendだと上手くいっているようなのですが、 ControlSendとSendの違いってなんなんでしょうか? ; OpenJane #IfWinActive, Jane ahk_class TMainWnd ; Ctrl+D to delete favorite without deleting SIRUSI ^d:: WinWait,Jane ahk_class TMainWnd Send, !tv Sleep, 100 Send, !tm ; ControlSend,,!tv!tm ; damepo return #IfWinActive
422 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 11:45:04 ID:iQp8Awzp0] Sendはフォーカスのあるところに送る ControlSendはフォーカスが無くても、というか対象を指定してキーを送る ウィンドウ指定+コントロールの指定なし、でいけるんじゃないの Styleだけど↓で動くよ ControlSend,, !tv!tm, ahk_class TMainWnd
423 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 11:48:35 ID:iQp8Awzp0] というか、非アクティブ窓に送るのがControlSendの主目的だし #IfWinactiveつかってるんだし、>>421 でうごくならそれでいいと思う keyhacはkeymapがあるし繭の代替みたいなかんじだぬ
424 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 12:50:26 ID:12ef3abb0] >>422-423 サンクス。 なるほど、アクティブのときに使うなら必要ないですね。 むしろ、フォーカスないときに送るAPIもあるのかと感心したw
425 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 16:10:47 ID:7PTN87iF0] どうしてもスマートな書き方が分からず困ってしまったので質問します。 Photoshop7.0を使っているのですが、そのPhotoshopでの作業で ズームイン・アウトの動作は、alt+マウスのホイールで行うんですけど それをホイールのみで行いたいんですが、いまいちうまく動作しません。 ; Photoshop #IfWinActive, ahk_class Photoshop wheelup::Send, {ALTDOWN}{wheelup} wheeldown::Send, {ALTDOWN}{wheeldown} #IfWinActive とりあえずこれで動くことは動くんですが、これだとaltキーが押されっぱなしで いったんaltキーを押さないと開放されないんです。 ホイールの動作を止めてから、0.5秒くらいでaltキーが都度開放されるようにしたいんですが どういう風に書けば良いんでしょうか。
426 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 17:30:08 ID:SMQKLnXdP] !{WheelUp}じゃ駄目なの?
427 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 17:40:17 ID:WedUAl7t0] うむ、自分も色々試したんだけど、ウチのCS3ではダメなんだよな !修飾だとズームさえしないし、Sleep,500 して Send {Alt Up} してもズームはするがAltが押しっぱ状態 色々なSendModeやhookにしたけどダメだった ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、 これだとポインタ位置のズームにならないから期待には沿えないんだろうな
428 名前:425 mailto:sage [2009/03/11(水) 17:44:19 ID:zQD6nmYr0] >>427 >ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、 >これだとポインタ位置のズームにならないから期待には沿えないんだろうな ははは。仰るとおりです。単なるズームならそれで良いんですけどね。 やっぱ難しいのかな…。 Photoshop7.0以前のホイール動作がしたいだけなんですけどねー。
429 名前:425 mailto:sage [2009/03/11(水) 17:51:27 ID:zQD6nmYr0] >>426 実際やってみると分かるんですが、 それでは「altキーを押しっぱなしでホイール動作」にはならないんですよね。 altとホイールを同時に入力、とみなされて、微妙にカククアした動作になるんですよ。 押しっぱなしというキー入力がないと、スムーズにズームしないんですよね。
430 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:10:32 ID:WedUAl7t0] あー、ウチではこれで動くようになったけど、かなりインチキくさいので7.0ではダメかも Sleep後のAltの送り方をイジれば何とかいけそうなんでは wheelup:: SendInput {Alt Down}{WheelUp} Sleep, 500 Send {Alt} Send {Alt Up} return
431 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:21:31 ID:iQp8Awzp0] > Sleep後のAltの送り方 タイマーでいいんじゃないかな。環境がないから何とも言えないけど。 wheelup:: wheeldown:: SendInput {Alt Down}{%A_ThisHotkey%} SetTimer, AltUp, 500 return AltUp: Send, {Alt} Send, {Alt Up} return
432 名前:425 mailto:sage [2009/03/11(水) 18:45:36 ID:zQD6nmYr0] >>430 おお!まさしく理想の動きになりました! Sleep後の動作の書き方が分からなくてつまづいてました…。 ありがとうございます! >>431 そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。
433 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:51:43 ID:W+NxFur40] 解決したようだけど、押しっぱなしの原因は#HotkeyModifierTimeoutのあたりなのかな?
434 名前:431 mailto:sage [2009/03/11(水) 19:07:50 ID:iQp8Awzp0] > そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。 うは、初歩的なミス > SetTimer, AltUp, 500 は↓で SetTimer, AltUp, -500 解決したならいいんだけど
435 名前:425 mailto:sage [2009/03/11(水) 19:34:30 ID:zQD6nmYr0] >>434 ありがとうございます! キチンとスムーズに動作してくれました。 AutoHotkeyの存在を知ったのが昨日なのでまだあまり把握しきれてないですが、 かなり勉強になったのでちょっとハマってみます。
436 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 21:02:29 ID:G1UR0H3q0] >>434 >負の値を指定した場合、その絶対値の時間が経過後に、一度だけサブルーチンが実行される。 勉強になった、d.。 ふぅ、無駄こいた(´;ω;`)ブワッ wheelup:: wheeldown:: Send, {Alt Down}{%A_ThisHotkey%} MouseGetPos, xMouse, yMouse settimer, IdleMouseMoved, 100 return IdleMouseMoved: MouseGetPos, xMouseNow, yMouseNow xMouseChange := ( xMouseNow - xMouse ) * ( xMouseNow - xMouse ) yMouseChange := ( yMouseNow - yMouse ) * ( yMouseNow - yMouse ) If (xMouseChange > 9) | (yMouseChange > 9) | (A_TimeIdle > 500){ send, {Alt Up} settimer, IdleMouseMoved, off } Return
437 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 21:11:08 ID:XeGc9YVz0] 作成した関数が 複数の値を返すことはできますか?
438 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:25:12 ID:NuVSrS420] >>437 引数の参照渡し(ByRef)を使ってみるとか。 #persistent SetTimer, timer return MouseGetScreenPos(ByRef x, ByRef y){ CoordMode, Mouse, Screen MouseGetPos, x, y CoordMode, Mouse, Relative } timer: MouseGetScreenPos(sx, sy) MouseGetPos, x, y tooltip, x%x%`ny%y%`n`nsx%sx%`nsy%sy% return
439 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:26:53 ID:RHpZI3IT0] windowsXPにAHK1.0.48.00をインストールしました 起動するにはAutoHotkey.exeをwクリックすればいいんですよね? どうも起動していないようです プロセスにも載っていません どうすれば使えるようになるのでしょうか? よろしくおねがします
440 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:41:17 ID:G1UR0H3q0] >>439 exeと同じところにAutoHotkey.iniを作ってメモ帳で編集。 a::a で保存。exeをダブルクリックするか、iniをexeにD&Dすればいい。
441 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:52:15 ID:RHpZI3IT0] >>440 ありがとうございます。無事動きました。 以前使っていた自作のスクリプトがなぜか駄目だったようです これが原因とは思っても見なかったので 初歩的なことを聞いてしまいました おかげで切り分けが出来きて解決しました
442 名前:名無しさん@お腹いっぱい。 [2009/03/12(木) 01:46:44 ID:F1m5qWie0] >>438 なるほど。参照渡しなら間違いないですね ありがとうございます。 別件の質問ですが a に test があり、かつb に hogeがあるときで 条件分岐をしたいのですが If a in test and b in hoge と書いたら上手く動きません 初歩的なことだと思いますが どうすればよいのでしょうか
443 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 02:07:36 ID:1BiiCvek0] if InStr(a, "tesst", true) && InStr(b, "hoge", true) Caseを問わないなら括弧内の第3引数を省略または false にする
444 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 02:21:15 ID:F1m5qWie0] >>443 ありがとうございます。
445 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 13:49:22 ID:fNm1iUGy0] 無変換キーをシフトキーのかわりとして使いたいのですが 無変換キー+A をshift + A とするだけではなく ctrl + 無変換キー+A をctrl + shift + A や win + ctrl + 無変換キー+A をwin + ctrl + shift + A というふうに あたかもレジストリの編集により無変換キーをシフトキーとしたように動作させたいです remap を使っても思ったとおりの動作ができません
446 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 14:01:43 ID:nMFGybhR0] 「思ったとおりの動作ができません」がどうせ間違ってるんだから、 途中まで試したコードを晒してみたら?
447 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 15:12:04 ID:fNm1iUGy0] すみませんでした sc07B::shift だけでできました
448 名前:名無しさん@お腹いっぱい。 [2009/03/13(金) 15:47:42 ID:fNm1iUGy0] たびたびすみません リマップ lukewarm.s101.xrea.com/remap.html > リマップによって生成された入力では、フックを使用しているホットキー(「$^c」など)は反応しない。 この制限を解除する方法はありませんか?
449 名前:jbpfxyseplh mailto:jhhgov@qjokcp.com [2009/03/13(金) 15:47:58 ID:DVfGG20W0] uGaXvO <a href="gvatgngxmxho.com/ ">gvatgngxmxho</a>, [url=iyoeszfqayam.com/]iyoeszfqayam[/url], [link=ohsodtdhgqfa.com/]ohsodtdhgqfa[/link], oqdjndcqppwj.com/
450 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 19:24:04 ID:xVfJVQvM0] モディファイアのリマップはScancodeMapいじるようにした方が 何かとすっきりさっぱりだと思うんだ。
451 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 22:39:12 ID:nX9nzRDN0] >>450 そうですか。 ありがとうございます。
452 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/14(土) 21:34:52 ID:4icr6LvT0] fenrirの呼び出しキーをうまく設定できません ^a:: send,^b return こういう設定を書きました そのうえで、fenrirの呼び出しキーの設定の項目で ctrl + A を入力しました。 すると、左のctrlキーのときには意図したとおり ctrl + B が入力されたことになるのですが、 右のctrlキーのときには なし と表示されてしまいます。 パソコンはvistaを使っています どうすれば右のctrlキーを左のctrlキーのように動かせるのでしょうか
453 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 00:25:08 ID:lsWqS3cG0] >>452 なんか言ってることがよく分からんが、それfenrirを起動したくないってこと?
454 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 00:58:42 ID:SZZoZhnK0] >>453 いやそうじゃないんです 他のソフト(エディタとか)では 右のctrl + A できちんと ctrl + Bが動作するんですが fenrirに限ってはそのようには動かないんです 左のctrl + A ではfenrirでもきちんと ctrl + Bが動作するんですが あ、fenrirは最新バージョンを使っています どうもautohotkeyの内部で 右のctrlと左のctrlの処理が大きく異なっていると思うのですが よくわかりません
455 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:19:57 ID:AqdEGZ0E0] fenrir側の呼び出しキーの取得方法が特殊なんじゃなかろうか。 わざわざCtrl-Aを一旦Ctrl-Bにして呼び出す理由が分からないけど、 ただ前面にしたいなら、fenrirを二重起動するという方法もあると思う
456 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:46:43 ID:aN9r1MmC0] LCtrlとRCtrlと両方書いてもだめかぬ
457 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:54:41 ID:B8F8JwCv0] Gui, Add, Hotkey Gui, Show return ^A::MsgBox, Send`, "Ctrl + B" いったんAHK止めてからせっていすりゃいいんじゃねーの
458 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 10:14:36 ID:aN9r1MmC0] 試してみたら正常動作したけどfenrirが古かったから最新版にしてみたんだがやっぱり普通に動くな
459 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 13:07:53 ID:2+vykJE1P] もし {vkXXscXX} の形式だったら {vkXX} だけにしてみるとか
460 名前:452 mailto:sage [2009/03/15(日) 14:01:34 ID:dCql5Xe00] autohotkey のkeyhistoryを見てみました 左のctrl + b では 42 030 i d 10.25 B fenrir 42 030 i u 0.00 B 右のctrl + b では A2 01D i d 2.42 Ctrl fenrir A3 11D i u 0.00 Right Control 42 030 i d 0.00 B 42 030 i u 0.00 B A2 01D i u 0.02 Ctrl こうなりました そこで以下のように書いたら左のctrl + bと同様に動きました ^a:: send,{blind}b return >>457 のスクリプトではどちらのctrlも正常に動きます 上記のみなさんのご指摘を踏まえると、 私の環境が特異だということですかね いろいろと調べてみます ありがとうございました。
461 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 17:00:43 ID:OR65f9ys0] ホットキー用のキー足りねぇ→キーボード2台つなげばよくね と思い、ジャンクの安いキーボード買ってきた 2台目用はScrollLockでもして、それで1台目と区別すりゃいいなと思ってたんだが ScrollLockもCapsLockもNumLockも連動しやがる 1台目と2台目のキーボードの入力を判別する方法はないでしょうか? PS/2接続とUSB接続の2台なんですが
462 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 19:38:57 ID:BkAbLvKa0] 斜め上を行く発想だなw レスじゃなくてスマンが…
463 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 19:42:47 ID:eGMmt4nd0] ソフト名忘れたが、デバイスドライバレベルで区分けするフリーソフトがあるよ。 たしか作者は日本人
464 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 20:51:44 ID:5g2lI0+Z0] 俺はプログラマブルキーボード使ってる。 本来はキーマクロを割り当てて使うものだが、キーマクロのメモリ登録では、 アプリ毎に動作を切り替えられず、専用のツールを利用すれば対象アプリ毎の 設定も出来るが、あまり出来が良くないので、メモリにはF13〜F24や、 普通のキーボードでは入力しづらいショートカットキーを登録し、 AutoHotkeyで引っ掛けてアプリ毎の動作に書き替えてる。
465 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 21:39:38 ID:OR65f9ys0] >>463 情報ありがとう、それがみつかればできそうだ >>464 俺も最初プログラマブルキーボードか、ホットキーがいっぱいあるゲーミングキーボードとか考えたんだか 特殊なキーボードは値段が高くて選択肢も少ないので、なんとかならないかと思ったんだが プログラマブルってほどじゃなくても、全キーをWinキーあたりと同時押しができれば あとはAutoHotKeyで十分なんだけど ただWinキーを押しっぱなしで固定するだけじゃ、やっぱり2台とも連動して駄目だし ハード的に改造しようかと調べてもROMライター前提で変換基盤自作とか、素人には無理そうだし
466 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 00:59:49 ID:VkzQ2R4K0] setntptimeという時刻修正プログラムを実行後、ログの最後の4行を TrayTipかMsgBoxに表示するようにしたいのですが RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide logfile = C:\App\Internet\setntptime\settimeLog.txt i = 0 Loop, read, %logfile% { i += 1 } FileReadLine, server, %logfile%, i-3 FileReadLine, oldtime, %logfile%, i-2 FileReadLine, fixtime, %logfile%, i-1 ;最終行は改行だけなので省略 MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime% return のように、2度手間になりますがログの行数を取得してからFileReadLineする 方法しか思い浮かびませんでした。 もう少しスマートにしたいんですが良い方法あったらご教授ください。
467 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:19:19 ID:pREBWc+h0] >>466 RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide logfile = C:\App\Internet\setntptime\settimeLog.txt Loop, read, %logfile% { server=%oldtime% oldtime=%fixtime% fixtime=%dummy% dummy=%A_LoopReadLine% ;改行が入る } MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime% return こんなんじゃだめ?
468 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:24:58 ID:Q86YJixB0] すげぇ・・・なんというアクロバティック。これがこのスレの底力だな
469 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:50:46 ID:VkzQ2R4K0] >>467 うおー即レスありがとうございます ダミー咬まして・・・うーん頭こんがらかりそう 使わせていただきます。
470 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 13:48:31 ID:hCcdtXRQ0] >>419 遅レスですが、IKKI氏乙です。 何か年末に作って放置してたのがあったのであげてみる。 秀丸でAHK編集する人のための CompleteX 用設定 LIBフォルダの関数ライブラリを読んで単語補完辞書&ヒントを作成する。 www6.atwiki.jp/eamat/pub/MyScript/MyLibList.zip
471 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 15:39:39 ID:Lst9ESBRP] Runで引数を変数で与えたいんだが、 Run, %var1%, %var2% ってやっても作業ディレクトリがうまく与えられないみたいなんだけど 何が原因?
472 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 15:52:26 ID:Lst9ESBRP] ごめんなさい自己解決 制御文字が含まれてたっぽい
473 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 18:39:45 ID:gDeBu6wE0] よくあるw エクスプローラの引数とか特に 俺は行数増えるけど見通しよくするために↓みたくしてる dir = c:\hoge\hoge cmd = %var1%, %var2% Run, %cmd%, %dir%
474 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 19:02:16 ID:hImTYnxN0] >>470 乙です 一方、海の向こうではchmでいくんだろうか? GenDocs v2.0 - Create StdLib documentation easily! ttp://www.autohotkey.com/forum/topic41287.html といっても、前スレ GenDocs - utility for creating StdLib documentation ttp://www.autohotkey.com/forum/topic22548.html も含め投票数(反応)そのものも少ないみたいだし、このまま付けたり付けなかったりバラバラでいくのかな。。
475 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 19:03:05 ID:L7m3HeAn0] 作業ディレクトリを指定したら、実行ファイルってファイル名だけでいい気がした。 当たり前か・・・
476 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 21:04:07 ID:lw7F/3Qx0] >>467 これ、発想がすばらしいなぁ。 AHK以外でも使えそうなアルゴリズムだ。ありがとう
477 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 00:30:37 ID:2PEehZZi0] >>470 ちょうど欲しいと思ってた CompleteX 辞書ww ありがとう、使わせてもらいます。
478 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 09:35:49 ID:OXmG24Mg0] スクリプト内でも関数ライブラリ使ってんの忘れてたorz 秀丸でAHK編集する人のための CompleteX 用設定 ファイルパス関数群 (Path.ahk)同梱版 www6.atwiki.jp/eamat/pub/MyScript/MyLibList_200090318.zip
479 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 14:37:20 ID:zm0v5CvW0] みんな宜しくよノシ
480 名前:名無しさん@お腹いっぱい。 [2009/03/18(水) 19:11:42 ID:wqUWRKfJ0] atokの変換リストを表示中に autohotkeyで操作をしたいのですが atokの変換リストを表示しているかどうかを 取得する方法が分かりません。 window spyを使っても使用しているエディタの情報だけを 取得してしまっているようです どうすればいいのでしょうか
481 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 21:24:09 ID:xJ1I3V720] IME.ahk でいいじゃん。とおもったけどリストが出ているかどうかは分からないのね。 で、原始的だが変換リストを出してマウス直下の窓を調べるほうほうでやった Pause:: MouseGetPos,,, hwnd WinGetClass, class, ahk_id %hwnd% Tooltip, %class% return ATOK2007なので"ATOK20Cand" だった。 で、いい加減だけど、指定の窓があったら(ウィンドウハンドルが0以外なら) 変換中とすればいいんじゃないかな Pause:: Tooltip, % WinExist("ahk_class ATOK20Cand") return これが出ているとき専用のキーバインドが欲しいなら #Ifが使える、Autohotkey_Lが向いてそうだ #If WinExist("ahk_class ATOK20Cand") a:: hoge b:: hige
482 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 21:26:05 ID:xJ1I3V720] あ、、、#IfWinExist でいいじゃん・・・orz
483 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/19(木) 00:19:09 ID:DoWJYG5p0] >>481-482 おお!期待通りに動きました ありがとうございます!
484 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/19(木) 09:46:28 ID:iKaTZieB0] 超初歩的質問なんですがデスクトップをダブルクリックしたのを検出するのってどうやるんでしょうか OSはVISTA32SP1です
485 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 17:37:19 ID:oBtBrUgR0] こんにちは。わたしも質問です。 テンキーをマクロ用のホットキーとして使用してるのですが、 NumLockキーを押すと、「NumLock On&AHK Suspend」 もう一度押すと、「NumLock Off&AHK 再開」 このトグル動作をさせたいのですが、どのように記述すればいいのでしょうか。 よろしくおねがいします。
486 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 17:53:19 ID:Ie0QoNxm0] SuspendじゃなくてPauseな気もする
487 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:03:04 ID:Ie0QoNxm0] >>484 カーソル下をahk_class Progmanか否かで判別し、あとは下記を参考でできるかな? ~CTRL:: if A_PriorHotkey <> %A_ThisHotkey%, return if A_TimeSincePriorHotkey > 400, return ;some action return
488 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:11:28 ID:Ie0QoNxm0] ああ、だめだ。あと下記も参考に 670 名前:665[sage] 投稿日:2008/06/06(金) 19:45:37 ID:89UJiJcz0 >>669 うあそういうことか >>667 自レスも含みますが>666であったファイルの選択の状態を取得する他の方法を探したところ ControlGetが使えそうなのでそれでやってみたテスト ~LButton:: MouseGetPos,MouseX,MouseY,WindowID,ClassNN,1 ; カーソル下の情報を取得(ClassNN以下いらないような WinGet,DesktopID,,ahk_class Progman ; デスクトップのウィンドウIDを取得 ControlGet,StateListView,List,Selected,%ClassNN%,ahk_id %WindowID% ; StateListViewにSysListView32の選択項目名を入れる If(A_TimeSincePriorHotkey<300 && DesktopID==WindowID && StateListView=="") ; デスクトップ上である&選択項目がない Send,!{Numpad1} return アイコンのないところでダブルクリックをしたとき、イベントを乗っ取らないダブルクリックなので、 丁度よく最初のクリックの時点でデスクトップがアクティブになって選択状態が外れる 同じ方法でエクスプローラ・Openダイアログ等の余白をダブルクリックで上階層移動もできる 選択項目を利用するので MButton:: 等では途中に左クリック入れるとかしないとそのままではできない・・
489 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:41:45 ID:oBtBrUgR0] >>486 レスありがとうございます。 ~NumLock::pause でできました^^
490 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 20:49:30 ID:q1D8qFby0] へ〜、UpperDirOneみたいなのが楽につくれるなぁ・・・と思ったけど ~LButtonでフォルダ移動の場合、項目がとれる前に移動が完了ちゃって フォルダに移動した後にBackspace送っちゃって元通り・・・で意図したとおりに動かない 結局 ~ なしになったけどうまくいかんもんだねぇ SetTitleMatchMode, RegEx #IfWinActive, ahk_class CabinetWClass|ExplorerWClass LButton:: if (A_ThisHotkey==A_PriorHotkey && A_TimeSincePriorHotkey<300) { MouseGetPos,,,,classNN ControlGet, selected,List,Selected, SysListView321, A Send, % (classNN=="SysListView321" && !selected) ? "{BackSpace}" : "{LButton}" } else { Send, {LButton Down} KeyWait, LButton Send, {LButton Up} } return
491 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 20:54:15 ID:w27aWi9q0] >>488 ,489 ありがとう! 月曜まで家に帰れないから試せないけど、帰ったらやってみる!
492 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:19:19 ID:JP2qPQY00] 某スレで盛り上がってたので書いてみました。 カーソルをくるくる回すとスクロールします。 ttp://lukewarm.s101.xrea.com/up/file/105.zip
493 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:26:44 ID:g8LL/GxK0] >>492 どうやってAHKで再現しようか考えていたら・・・ ありがたく頂きます
494 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:28:23 ID:ft3ZieEm0] これは面白いw タッチパットのノートパソコンだとうまく利用できそう。
495 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:45:49 ID:daHpkZkf0] おお、すんばらし。 組み込むと色々応用が効きそうだ。
496 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 01:16:17 ID:e7LMny/o0] autohotkey.ini に includeで #Include kurukuruscroll.ahk と書いて使わせてもらったんだけど、includeする位置によって使えたり 使えなかったりするのはなんでだろう。 マニュアルのどこを読めばいいのか教えて欲しい。
497 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 05:54:27 ID:enEmkL2t0] >>492 一つに纏められて助かりました 認識率と反応も完璧だね
498 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 07:41:19 ID:QvNRDM9W0] >>496 ttp://lukewarm.s101.xrea.com/Scripts.html ここの一番下auto-executeですね。 ホットキーが書いてあるとこより前に組み込みます。 変数が重複しないよう気をつけましょう。
499 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 08:45:00 ID:e7LMny/o0] >>498 ありがとう!!! 各includeファイルのauto-executeセクションをautohotkey.iniのauto-executeセクションに移動したらうまく動いたー。 今までauto-executeセクションって知らなかった^^; *.ahkを includeするときって autohotkey.ini ------------------- AAA.ahkの auto-executeセクション BBB.ahkの auto-executeセクション return #Include AAA.ahk #Include BBB.ahk ;ホットキー定義開始 -------------------
500 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:41:42 ID:mEL9l3Hw0] ダブルクリック検出の件だが、何とかなったので張ってみる。コードのインデントに全角空白使ってるので注意。 ; IsDoubleClicked関数 ; ダブルクリックを判定する関数、L,R,M,X1,X2の各ボタンに対応 ; システムからダブルクリック時間、範囲を取得して判定、AutoHotkey_Lの#ifでの使用を想定 IsDoubleClicked(){ Static dcTime=0,LastTime,tx,ty,LastMouseKey=0,lx=-256,ly=-256,lr=0 if(!dcTime){ dcTime:=DllCall("GetDoubleClickTime") SysGet,tx,36 SysGet,ty,37 LastTime:=A_TickCount-dcTime*2 } if(A_TickCount=LastTime) Return lr NowMouseKey:=(GetKeyState("LButton","P") | GetKeyState("RButton","P")<<1 | GetKeyState("MButton","P")<<2 | GetKeyState("XButton1","P")<<3 | GetKeyState("XButton2","P")<<4) VarSetCapacity(Point,8) DllCall("GetCursorPos","uint",&point) if((LastMouseKey!=NowMouseKey)||((A_TickCount-LastTime)>dcTime) ||(abs((NumGet(Point,0)-lx))>tx)||(abs((NumGet(Point,4)-ly))>ty)){ lx:=NumGet(Point,0),ly:=NumGet(Point,4) LastTime:=A_TickCount,LastMouseKey:=NowMouseKey Return lr:=0 } else{ LastTime:=A_TickCount-dcTime Return lr:=1 } }
501 名前:500 mailto:sage [2009/03/21(土) 09:42:42 ID:mEL9l3Hw0] ; Lv_HitTest関数 ; リストビューでアイテム上にマウスがある時に種類を返す ; そもそもリストビュー上でない場合は何も返さず、 ; アイテム上にない場合は0を返す ; 参考:流行らせるページの MouseGesture.ahk 内 MG_LvHitTest() 関数 Lv_HitTest(){ MouseGetPos,,,hwnd,class,1 MouseGetPos,,,,chwnd,3 WinGet,pid,PID,ahk_id %hwnd% VarSetCapacity(point,8) DllCall("GetCursorPos","uint",&point) if(substr(class,1,13)=="SysListView32" || substr(class,1,9)=="TListView"){ p:=DllCall("kernel32.dll\GlobalAlloc","uint",0x40,"uint",8,"uint") NumPut(NumGet(point,0),p+0,0),NumPut(NumGet(point,4),p+0,4) DllCall("user32.dll\ScreenToClient","uint",chwnd,"uint",p) hp:=DllCall("kernel32.dll\OpenProcess","uint",0x001F0FFF,"uint",0,"uint",pid,"uint") pi:=DllCall("kernel32.dll\VirtualAllocEx","uint",hp,"uint",0,"uint",24,"uint",0x1000,"uint",0x4,"uint") DllCall("kernel32.dll\WriteProcessMemory","Int",hp,"uint",pi,"uint",p,"Int",8,"Int",0) SendMessage,0x1012,0,%pi%,,ahk_id %chwnd% DllCall("kernel32.dll\ReadProcessMemory","uint",hp,"uint",pi+8,"uintp",flag,"uint",4,"uint",0) DllCall("kernel32.dll\VirtualFreeEx", "uint",pi, "uint",0, "uint",0x8000) DllCall("psapi\CloseProcess","uint",hp) DllCall("kernel32.dll\GlobalFree","uint",p) flag:=flag & 15 return (flag<4) ? ((flag<2) ? 0 : "ItemIcon") : ((flag<8) ? "ItemLabel" : "ItemState") } }
502 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:43:29 ID:mEL9l3Hw0] ; IsDesktopDoubleClicked関数 ; デスクトップをダブルクリックした時にTrue IsDesktopDoubleClicked(){ Return IsMouseOverDesktop() && IsDoubleClicked() } ; IsMouseOverDesktop関数 ; マウスがデスクトップ上にある時にTrue ; bbLeanだとProgmanじゃうまくいかなかったので IsMouseOverDesktop(){ MouseGetPos,,,hwnd Return (hwnd==DllCall("GetDesktopWindow") ||hwnd==WinExist("ahk_class Progman")) }
503 名前:500 mailto:sage [2009/03/21(土) 09:44:06 ID:mEL9l3Hw0] ; 使い方 #ifじゃなくても何とかなるが、ダブルクリックじゃなかった時に ; 通常のクリックをするべきなので AutoHotkey_Lの#ifを推奨 #if IsDoubleClicked() && (WinActive("ahk_class CabinetWClass") || WinActive("ahk_class ExploreWClass")) && Lv_HitTest()==0 LButton::Send,{BS} #if IsDesktopDoubleClicked() LButton::Msgbox,デスクトップがダブルクリックされた #if 以上、長くなった&見にくくてすまんがこんな感じでできた。
504 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:50:33 ID:mEL9l3Hw0] ; おまけ:行頭の全角スペースとTabを相互変換するスクリプト #NoEnv #EscapeChar ' Gui,Font,,MS ゴシック Gui,Add,Text,,↓ここにコードを貼り付ける Gui,Add,Edit,w640 h480 vData Gui,Add,Button,gWsToTab,行頭の全角スペースをTabに変換 Gui,Add,Button,gTabToWs x+10,行頭のTabを全角スペースに変換 Gui,Show Return GuiClose: GuiEscape: ExitApp GuiDropFiles: if(A_EventInfo<=1) FileRead,Data,%A_GuiEvent% GuiControl,Text,Data,%Data% Return WsToTab: TabToWs: Gui,Submit,NoHide Output:="",w:=(A_ThisLabel="WsToTab" ? 1 : 0) Loop,Parse,Data,% chr(10) { chr:="",t:=A_LoopField While (SubStr(t,1,(w ? 2 : 1))==(w ? " " : chr(9))) t:=SubStr(t,(w ? 3 : 2)),chr.=(w ? chr(9) : " ") Output.=chr t chr(10) } GuiControl,Text,Data,%Output% Return
505 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 17:16:25 ID:5yWBri8L0] 横からすみません。 ググったらあんまりヒットしなかったので、以前貼られていた DoubleKey関数紹介しておきますね。 出展:www.donationcoder.com/Forums/bb/index.php?topic=5926.msg41894 DoubleKey(RunCommand, timeout){ if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < timeout) Run, %RunCommand% } return ~LButton up::DoubleKey("hoge.ahk", 400) みたいに各ボタンごとに処理を書いたahkファイル(ここでは同ディレクトリ内のhoge.ahk) を別途用意する必要はありますが、これでも動作しまっする。
506 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 17:28:06 ID:QyANxbob0] >>492 のスクリプトを縦スクロールじゃなくて、横スクロールに するにはどうすればいいんでしょうか?
507 名前:500 mailto:sage [2009/03/21(土) 18:03:47 ID:mEL9l3Hw0] >>503 のIsDesktopDoubleClickedを修正。 こうしないとアイコンダブルクリックした時にまで発動してしまう。 IsDesktopDoubleClicked(){ Return IsMouseOverDesktop() && IsDoubleClicked() && Lv_HitTest()==0 } >>505 確かにそういう方法でも時間内に2回クリックした時に何かするってことはできるんだけど、 1回目と2回目のクリック位置が離れてる時にも発動したり、 ↑みたいにアイコンダブルクリック時にも発動しちゃったりして、 いわゆるダブルクリック系の挙動としてはちょっと弱いかなーって思って書いてみた。 あと意地でも2回目のクリックを乗っ取りたかったってのもある。 でも少しこだわりすぎたかなーとは思ってる… まぁ、自分で組み込んで使ってるし結果的には満足。 >>506 WheelUpとWheelDownってなってるところを 横スクロールできるキーに変えればいいんじゃないかな。
508 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 18:08:20 ID:H5O5lVNo0] >>505 ID:mEL9l3Hw0がどこまで厳密なモノを求めてるのかわからんのでスルーしていたのだが。 そもそも>505レベルでいいんならこんなに頑張ったりはしないと思う
509 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 18:09:14 ID:H5O5lVNo0] リロってなかった。蛇足スマソ
510 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 18:27:06 ID:HbFBHhgK0] ぶっちゃけ、あっちのフォーラム行けばいくらでもあるけどね…
511 名前:500 mailto:sage [2009/03/21(土) 18:27:27 ID:mEL9l3Hw0] >>500 の書き方だと勘違いされそうなので 一応書いておくけど、俺は>>484 ではないです。 >>490 を見て、UpperDirOneに相当する機能は 別のソフト使ってたの思い出したので、 何とかAHKだけで実現できないかなと思って、頑張ってみた。 …これこそ蛇足だったかな。
512 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 19:39:14 ID:5yWBri8L0] >>507 申し訳ありませんでした > 1回目と2回目のクリック位置が離れてる時にも発動したり、 > ↑みたいにアイコンダブルクリック時にも発動しちゃったりして そらそうですよね・・・深く考えずに書き込んだこと反省してROM専に戻ります。 あと IsMouseOverDesktop関数はいろいろ使えそうですね。頂きます&&乙であります。
513 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 20:03:23 ID:YAcqdaL20] >>461 超亀レスで失礼します。 見つけたので貼っておきますね。 試してませんが通常ののキーボードでも動作するようです。 USB接続のテンキーを、プログラマブルキーボード ttp://ioenc.net/magickeypad/
514 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:30:10 ID:GrExewU20] こんにちは MouseGesture2、2008/10/07版をVista SP1で使わせて貰ってます。 マウ筋の機能で「設定ホイール回転でアクティブ」という機能があるのですが (ArtTipsというソフトでは、SETTING>快適マウスホイール>快適マウスホイールを使用する>フォーカス移動を行う) これと同じ挙動をMouseGesture2で実現させるにはどのように記述すればうまく行きますか? あと、JaneDoe Viewなど一部のソフトでWinMinimizeを使って最小化すると デスクトップ左下にタイトルバーの小さくなったものが、残って最小化されてしまいます。 これを回避する方法を教えて下さい。
515 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:41:41 ID:scspGd4S0] 簡単なのはWheelUpとWheelDownのDefault(及び各々の条件)に WinActivate を記述する
516 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:46:37 ID:T0zgn4OC0] 流行らせるページのホイールリダイレクトでもいいんじゃね
517 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:56:01 ID:4c0Fopck0] アクティブにしつつスクロールするなら両方
518 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 12:23:38 ID:GrExewU20] >>515-517 親切に即レスありがとうございます。 >簡単なのはWheelUpとWheelDownのDefault(及び各々の条件)に >WinActivate >を記述する が一番挙動が近かったのですがマウ筋とArtTipsの機能は Xplorer2などの二画面ファイラーや小ウィンドウがあるようなソフトに対しても 各ウィンドウをホイールの回転でアクティブに出来るので、このような挙動を望んでいますが 無理な場合WinActivateでアクティブにするようにしたいと思います。 しかし、この場合ホイールUp、Dnでアクティブになったあと普通にスクロールが利かなくなってしまいますよね?
519 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 12:46:54 ID:ZBRd96Tp0] >>490 をファイル選択ダイアログでも効くようにした 注意) 全角スペース利用、誤爆が無いとは言えない ; UpperDirOne LButton:: if (A_ThisHotkey==A_PriorHotkey && A_TimeSincePriorHotkey<300) { MouseGetPos,,,,classNN if (classNN=="SysListView321") { ControlGetText, text, SysListView321, A if (text == "FolderView") { ControlGet, selected,List,Selected, SysListView321, A if (!selected) Send, {BackSpace} } } } Send, {LButton Down} KeyWait, LButton Send, {LButton Up} return
520 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 17:35:30 ID:Rn9QKfmc0] MouseGesture2の設定で動作割り当てのキー操作を発生させるのパラメーターに 無変換キーの2回押しを設定したくて{無変換}{無変換}とやってみたのですが 認識してくれません。無変換キーは何で登録すれば良いでしょうか?
521 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 17:37:47 ID:Biaw3oNa0] >>520 ttp://lukewarm.s101.xrea.com/KeyList.html
522 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 18:04:15 ID:Rn9QKfmc0] >>521 ありがとうございます。そのページは見落としていました。 早速、カーソルが画面左下角に接触で1秒遅らせて無変換を2回押しがしたくて動作に if(!MG_Timer(-1000)){ Send,{vk1Dsc07B}{vk1Dsc07B} } や if(!MG_Timer(-1000)){ Send,{vk1Dsc07B} MG_Wait(100) Send,{vk1Dsc07B} } など、やってみたのですがうまく動きません。 どなたかアドバイスお願い致します。
523 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 23:07:53 ID:gJvAxqMw0] 動作の確認音にSoundbeepを使ってたけど、パソコン変えたらビープが鳴らないw
524 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 09:06:05 ID:Y2hrPoG60] とりあえず転載、ID:GrExewU20 と ID:Rn9QKfmc0 はモリタポ用意して制作者の教えを乞え lukewarm.s101.xrea.com/test/read.cgi/bbs/1146398137/123 > 123 名前:管理人 ★[] 投稿日:2009/03/23(月) 06:07:20 > 2chのAutoHotkeyスレにMouseGesture.ahkの質問が書かれていたのに、DION規制で書き込めなくて困る。 > 誰か親切な人があと555モリタポほど恵んでくれれば、p2で書き込めるのだが。 > find.2ch.net/moritapo/give.php?RK=93127982ff852cf03449c204be39fc07&AM=&CM= エノユ、「、熙ャ、ネ、ヲ、エ、カ、、、゙ しかしDION規制まじむかつく、Viewは何故か24時間以上起動させっぱだと●ログイン無効になるので いちいち再起動させなくちゃいけなくて面倒だ
525 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 09:53:24 ID:Edo9xp5W0] >>3 のとおりに、CapsLockをF13〜F24に割り当てようと思うんだけど、 Change Keyってどうやってこれ割り当てるの?? 似たようなレジストリ変更タイプのキーチェンジソフトいくつか探してみたが、 どれもF12までしか割り当てられないっぽい・・・
526 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:36:14 ID:WUKQO+dS0] >>522 Send,{vk1Dsc07B}{vk1Dsc07B} → Send,{vk1Dsc07B 2} MG_Wait(100) → Sleep,100 >>518 Jane Doe Style は「ウィンドウ(W)」→「最小化(M)」 があるのでそれを実行させればいいんじゃない? Send,!w Send,m それかJane Doe Styleのショートカットキーのカスタマイズで 最小化にキーを割り当ててそれをSendするとか。 アクティブにしてスクロールは アクティブした後にWheelUp(Down)を送ればいいじゃない。 あと、コンボボックスをアクティブにしようとすると コンボボックスが消えるのでアクティブにしないようにしとけば 概ね支障なく動くはず。
527 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:36:56 ID:WUKQO+dS0] << >>526 の続き >> ;WU_ の Default に↓の2行を追記する。 gosub, CursorUnderActivate Send,{WheelUp} ;WD_ の Default に↓を2行を追記する。 gosub, CursorUnderActivate Send,{WheelDown} ;MG_User.ahk をテキストエディタで開き、以下を「サブルーチン定義」内にコピペ ;マウスカーソル下をアクティブにする関数 CursorUnderActivate: MouseGetPos,,, m_id, m_control WinGetClass, m_class, ahk_id %m_id% ;マウスカーソル下がコンボボックス(ドロップダウンリスト)ならreturn If(RegExMatch(m_control, "ComboLBox\d+")) return ;マウスカーソル下が非アクティブならアクティブ化 IfWinNotActive, ahk_id %m_id% { SetWinDelay,-1 WinActivate SetWinDelay,100 } return ;これで支障が出るなら>>517 の方法がいいと思う。
528 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:39:05 ID:WUKQO+dS0] あ、ウィンドウクラスは必要ないので↓は要らないや・・・ WinGetClass, m_class, ahk_id %m_id%
529 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:40:24 ID:WUKQO+dS0] ×;マウスカーソル下をアクティブにする関数 ○;マウスカーソル下をアクティブにするサブルーチン
530 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 13:54:01 ID:1ZxaOcnN0] >>525 K SC Type Up/Dn Elapsed Key ------------------------------------------------ 7C 064 i u 0.04 F13 7D 065 i u 0.04 F14 7E 066 i u 0.04 F15 7F 067 i u 0.04 F16 80 068 i u 0.04 F17 81 069 i u 0.04 F18 82 06A i u 0.04 F19 83 06B i u 0.04 F20 84 06C i u 0.04 F21 85 06D i u 0.04 F22 86 06E i u 0.04 F23 87 076 i u 0.04 F24
531 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/24(火) 23:15:50 ID:mXwaygr80] 多重起動を検知したくて以下のようにしたんだけど、 除外タイトルって効いて無い それともPIDとかでの除外は無理なのかな #SingleInstance, OFF Process, Exist myPid:=ErrorLevel DetectHiddenWindows,On IfWinExist, %A_ScriptFullpath% ahk_class AutoHotkey,,ahk_pid %myPid% MsgBox, あり Else MsgBox, なし
532 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 01:46:19 ID:zeEEOJ2T0] >>531 >>144 ,147,153 前々スレに多重起動検知で終了とかはあったよ。 タイトルが一緒でPIDが違うならで、判別してた。 一部だけ引用 ;自分の情報を取得 DetectHiddenWindows, On Process,Exist pid:=ErrorLevel WinGetTitle, g_scriptTitle, ahk_pid %pid% WinGet, hwnd, id, ahk_pid %pid% ahk_class AutoHotkey ;ahk_class AutoHotkeyのウィンドウを全て列挙 WinGet, ahk_id_list, list, ahk_class AutoHotkey Loop, %ahk_id_list%{ this_id:=ahk_id_list%a_index% ahk_id_list%a_index%= WinGetTitle, this_title, ahk_id %this_id% if(g_scriptTitle==this_title && hwnd!=this_id){ ;自分以外で同じタイトルを見つけたら終了メッセージを投げる。
533 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 08:36:04 ID:zeEEOJ2T0] 暇だったから、作ってみた。あまりの使えなさに吹いたw #persistent CoordMode, Mouse, Screen Settimer, Expose return Expose: MouseGetPos, X, Y if (Y<1){ ;左右に並べて表示 SendMessage,0x111,405,,,ahk_class Shell_TrayWnd keywait, LButton, D KeyWait, LButton ;元に戻す SendMessage,0x111,416,,,ahk_class Shell_TrayWnd Loop { MouseGetPos, X, Y if (Y>2) break } } return
534 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 13:01:45 ID:UMyjgm290] >>525 俺はchangekeyでF13を割り当ててるよ。