1 名前:名無しさん@お腹いっぱい。 [2005/10/21(金) 04:31:53 ID:qy14hWPT0] If You = beginner Read, Template, >>2-6 Previous Thread:: AutoHotKey Thread pc7.2ch.net/test/read.cgi/software/1098531338/ If Res > 950 Please, Build, NextThread
609 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/15(水) 22:02:26 ID:mmGkRpsk0] 質問です。 以下のような書き方をした場合、5行目に何か(この場合はsleep)を入れないと次のifがすっ飛ばされるのですが、この書き方はだめなんでしょうか。 sleepじゃなくても、msgboxでもa=1でも、何か1行入っていれば思った通りに動作します。 が、この行を消したりセミコロンでコメントにすると次のifがとばされるようなので。 ;_____________________________________ StringLen, length, strings if (length = 0) ,continue sleep,1 if (i=1) FileCreateDir, %dir%\%name_no_ext%\ ;_____________________________________
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/15(水) 23:01:58 ID:4MPDWD0K0] >if (length = 0) ,continue
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/15(水) 23:05:41 ID:4MPDWD0K0] 途中送信してもうた continueはLoopの中でしか使えないんジャマイカ どっちにしてもカンマで区切って一行に納めるのはNGだったと思う 最近バージョンアップチェックしてないので、記述ルール改定されてたらスマソ
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/16(木) 00:18:25 ID:+vsjFQ220] ;_____________________________________ StringLen, length, strings ifEqual, length, 0, continue ifEqual, i, 1, FileCreateDir, %dir%\%name_no_ext%\ ;_____________________________________
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/16(木) 00:24:01 ID:n0WmmFt40] >>611 すみません、これLoopの中です。 で、ご指摘の通り if (length = 0) { continue } にしたらちゃんと動きました。 流行らせるページのIfInStringの説明にカンマで区切ってOKとあったので、このifでも気にせずカンマで区切ってました if単体だとカンマ区切りは動作がおかしくなることあるのかな…?
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/16(木) 00:26:15 ID:n0WmmFt40] >>612 すごいスマートです。 ifEqualを使えばよかったんですね。 ありがとうございます。
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/16(木) 00:28:52 ID:n0WmmFt40] 流行らせるページを再読したら >IfEqualのようなコマンド名の形式の場合、更にカンマで区切って条件に一致した場合に実行するコマンドを記述できる。 しっかり書いてありました。お騒がせしました。
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/16(木) 00:49:17 ID:+vsjFQ220] ただし、コマンドしか使えないみたいなので気を付けて。 Another command can only appear on the same line as the IF statement if you use the command-name style. In other words, these are valid: IfEqual, x, 1, Sleep, 1 IfGreater, x, 1, EnvAdd, x, 2 ←EnvAddはコマンドなのでこれは正しい記述。 But these are not valid: if x = 1 Sleep 1 IfGreater, x, 1, x += 2 ←これは式なのでNGらしい。 if文まわりはややこしい・・・
617 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/16(木) 03:28:29 ID:+IJnHcux0] ややこしくなるから if(式){ } その他のIFコマンド { } 以外は使わない方がいいよ
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/16(木) 08:32:10 ID:xM7XPfwl0] システム以外のマウスカーソルの情報を取得する方法ってありますか? A_CursorでUnknownになってしまうようなカーソルを知りたいのです
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 17:44:33 ID:FiSk8Qjk0] Hotkey sでループをスタートさせて、無限ループになってしまった場合に Hotkey hで止めたいのだけれど、どうすれば良いのでしょうか?助言おねがい。 s:: Loop { 〜処理〜 if abc = 1 break } return h::ExitApp
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 17:47:47 ID:wtxnAtBP0] >>619 何故その記述では駄目なのか、ってことを書かなきゃ助言しようがない
621 名前:名無しさん@お腹いっぱい。 [2006/03/17(金) 18:12:51 ID:zTH699bB0] それで動くかどうか検証めんどいからしないけど 無理だっていうならループ内でsが押されてる状態かを毎回判断すればいい
622 名前:619 mailto:sage [2006/03/17(金) 18:38:40 ID:FiSk8Qjk0] Sleepいれてみたら止めることができました。 くだらないことでスレ消費してごめんなさい。 レスありでした>620、621 s:: Loop { 〜処理〜 Sleep, 0 <-ここ if abc = 1 break } return h::ExitApp
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 18:49:03 ID:FiSk8Qjk0] またきました。sとhでスクリプトを終了させないままスタート/ストップを繰り返すために 以下のようにしたんですが、もっと上手いやり方とかありますか?添削おねがいします。 s:: loopflg = 1 Loop { 〜処理〜 Sleep, 0 if abc = 1 break } abc = loopflg = return h:: if loopflg = 1 abc = 1 return
624 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 19:03:44 ID:LwsXg2Qc0] 一時的なデバッグで永久ループから脱出したいって話じゃなかったのか? 一旦リセットしたいなら h::Reload
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 19:08:49 ID:qaI2qrDX0] >623 GetKeyStateじゃだめなの?
626 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 20:28:40 ID:68vIds2k0] KeyWait ってのもあるでよ
627 名前:623 mailto:sage [2006/03/17(金) 21:47:02 ID:hFQNB0xp0] >624 最高。今回の目的にバッチリ適合です。 デバッグが楽になったのも思わぬ収穫^^ s:: Loop { 〜処理〜 Sleep, 0 if abc = 1 break } return h::reload
628 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 21:47:42 ID:hFQNB0xp0] >625のもやってみた。 s:: Loop { 〜処理〜 Sleep, 0 if abc = 1 break GetKeyState, state, h, P if state = D break } return これも目的の動作はしたけど、今回は>624案を採用。 >626のはLoopを抜ける時どう使うのか分からず・・・orz 皆様レスありでした。
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 22:09:21 ID:Op8Q/jkU0] DonationCOdeでなんかおもしろそうなんが出てた
630 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 23:10:59 ID:SD1TlI3h0] >>628 便利! ワンキーでできないかな? s:: cnt++ Loop { Sleep, 0 If cnt > 1 { Exit } } cnt-- Return これは駄目みたい…。
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/17(金) 23:41:10 ID:qaI2qrDX0] >>630 これでいけるっぽい。 #MaxThreadsPerHotkey 1 s up:: if state = D state = else Loop { 〜処理〜 Sleep, 0 if abc = 1 break GetKeyState, state, s, P if state = D break } return ところでデバックってなんだ?
632 名前:630 mailto:sage [2006/03/18(土) 02:14:02 ID:C4FDHepp0] >>631 おおお、素晴らしい。感謝です。 答えを出してもらいながら申し訳ないが、例えば、 Gui, Add, Edit, Gtest ←これ みたいなサブルーチンの中に、今までのサンプルみたく無限ループがあったとして、 同じサブルーチンをもう一回呼び出したときにループを終了させたいときには、 GetKeyStateだと煩雑になる予感。 こういう場合にも、ビシッとループを終了できないかな?
633 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/18(土) 06:53:17 ID:tezGoIoS0] >630 英語HelpのFAQにある How can a repeating action be stopped without exiting the script? って項にあるサンプル使うとワンキーでLoopのスタート/ストップできた。 多重ループで使ってみたいのだけども、もっとエレガントになるかな? #MaxThreadsPerHotkey 3 s:: #MaxThreadsPerHotkey 1 if KeepLoopRunning = y { KeepLoopRunning = return } KeepLoopRunning = y Loop { 〜処理〜 Sleep, 0 Loop { 〜処理〜 Sleep, 0 if KeepLoopRunning = break } if KeepLoopRunning = break }KeepLoopRunning = return ・・・全角スペースいれてます
634 名前:名無しさん@お腹いっぱい。 [2006/03/18(土) 15:20:28 ID:Yl3U5BIi0] スレッド優先度ってマイナスの値入れちゃっても大丈夫ですか?
635 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/18(土) 16:25:48 ID:TCBHEo+A0] つhelp
636 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/18(土) 17:51:05 ID:Yl3U5BIi0] >>635 ありがとう、もう一度読み直してみたら書いてありました。
637 名前:630 mailto:sage [2006/03/19(日) 00:46:48 ID:5zHaODEE0] >>633 サンクス! レス遅くなって申し訳ない。 英語Helpにそれらしいのがあったとは…。読み足りてなかったです。 ホットキー(今回の場合 s::)だと凄いいい感じに動いてるんだけど、 それを Gui, Add, Edit, Gtest とかのサブルーチン(ここでは test:)に置き換ると、 3回目のキー押下時にどうもミスります。 …よく分からないんで、ちょっと考えてみます。
638 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/19(日) 02:23:42 ID:4wBY8TSi0] >>637 そういうのはTimer使った方が楽じゃない? 用途間違えてるかもしれないけど。 Gui, Add, Edit, Gtest GUI, Show return test: if TimerOn = 1 { SetTimer, Timertest, Off TimerOn = } else { SetTimer, Timertest, 55 TimerOn = 1 } return Timertest: count++ if count > 100 count =0 tooltip, てすと %count% return
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/19(日) 11:12:31 ID:5zHaODEE0] >>638 ありがとう! まさに求めてたものです。 具体的には、スレッド実行中に新しいスレッドが呼び出されたとき、 後のスレッドは前のスレッドが終了するまで後回しにされるか無視される仕様からか、 スレッドの処理がスルーされるのが少し困ってたんです。 これで、前のスレッドを途中で停止して後のスレッドを実行する、 みたいなことができるぽいです。他にも色々と効用ありますし。 感謝感激、みんなありがとう〜!
640 名前:名無しさん@お腹いっぱい。 [2006/03/21(火) 04:23:15 ID:y745q5bd0] カナロックONの時は Joy1::Send, 3 ; ジョイパット1キーで"あ" を入力 Joy2::Send, e ; "い" を入力 … カナロックOFFの時は Joy1::Send, a ; "A" を入力 Joy2::Send, b ; "B" を入力 … となるようにしたいのですがカナロック状態の取得の仕方が分かりません GetKeyState, OutputVar, vk15, T は試してみたのですが常に OutputVar = D となってしまうようです。 流行らせるページのアップローダにあったIME_Func.ahkも試しましたが IME OFFの時などいくつかの条件ではうまく判別することが出来ませんでした。 外部ツールやDLLを利用する方法でもよいので、もしあれば教えてください。
641 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/21(火) 19:01:49 ID:7BWRBHrs0] 文字列をURLで使える %E5とかに変換する方法ありまっか? Yahooの検索で日本語がうまくいきまへん Proxomitronでも頑張ったんだがなんか無限ループとかで挫折。
642 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/23(木) 07:02:24 ID:8KPbtYSZ0] 1バイトずつチェックして変換するしかないんじゃない? 日本語で検索できないのは、リクエストの文字コード指定が悪い所為のような気がするけど。
643 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/23(木) 11:56:27 ID:37jAp6/q0] >>641 おみとろん使えるなら$ESCでダメか? とスレ違いレスをしてみる
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/23(木) 13:58:33 ID:Jwp33SJ00] >>642 うん、基本そうなんだろうけど Proxomitronでがちがちにフィルターしてるから何が何だかわからなくて そちらでやるのをあきらめて最初からあの文字列でINPUTから リクエストできればいいかなあとか思ってしもうた。 >>643 どうもフィルターの相性なのか思ったとおりにならなくてお手上げ中。 も少しがんがってみる。
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/23(木) 22:28:27 ID:ZyneQEvmP] このソフトでパスワード入力ソフトの代わりはできますか?
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/23(木) 22:35:45 ID:oGkLYudX0] >>645 出来るとは思うけど、素直に既存のソフトを使った方が良いよ。
647 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/24(金) 03:15:07 ID:Se2Qk5Yk0] CapslockにCtrlを割り当てたくて Capslock::Ctrl ; Make Capslock become a Control key. を試してみたのですが, Capslockを離した後もCtrlを押したまんまの状態になります どうすればよいでしょうか?
648 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/24(金) 07:17:30 ID:yvNeSmEP0] キーの履歴を開いてみたらCapslockは押し下げだけ感知して離すのは無視されてるみたい。 どうしてもAHKでCapslockが使いたいのなら押されてから数秒たったらCtrl Upを送信するようにするとか InputでCapslockの次に押されたキーを読んでみるとか方法が無いことも無いんだろうけど とりあえず他のソフトで出来るかどうか試してみては?
649 名前:647 mailto:sage [2006/03/24(金) 08:37:38 ID:Se2Qk5Yk0] CapsLockにCtrlを割り当てるとCapsLock Upが返ってこないですね exeにしてどこでもすぐ使えるようにしたかったのですが…… とりあえずレジストリをいじって解決しました
650 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/24(金) 12:30:27 ID:PCVDLk5L0] 流行らせるページのどっかに記述あったと思うけど Locks系は日本語環境だと正しく取得できない。 OSがドライバレベルでなんかやってる。(ダブルバイト環境共通なのかどうかは知らん) 過去ログでも何度も話題になってる。次スレではテンプレに入れたほうがいいかもね。
651 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/24(金) 12:57:57 ID:TXwdyAWL0] うちだとCapslockで CTRL+C,Vが送られるお。なんだこれって感じ。
652 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/24(金) 12:58:20 ID:vTkQnhytP] >>646 これでできれば、常駐ソフトを減らせるなーと思いまして
653 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/24(金) 20:28:16 ID:zPGcV7l50] 人の作ったahkファイルを、自分のAutohotkey.iniにIncludeで組み込もうとするとき、 モノによってはAutohotkey.iniの#Persistent内にあるSet timerが無効になるんですが、これはどの辺が原因なんでしょう。 流行らせるページにあるのだと、mbstring.ahkはOKだけどInlineCalc.ahkはだめです。
654 名前:名無しさん@お腹いっぱい。 [2006/03/26(日) 00:23:53 ID:b3Nu7QpN0] >653 もしかしてAuto-executeセクション中にIncludeしてないですか?
655 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/26(日) 00:59:36 ID:pjcfpT8Y0] >>654 思いっきりしてました。 AHKのルールあまりよくわかってないんですが、こういう使い方ってNG? AHK2つ常駐させるのがいやで一つにまとめたいっていう場合、Autohotokey.ini内にIncludeで組み込むって言うのは間違った使い方なんでしょうか。
656 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/26(日) 01:53:48 ID:b3Nu7QpN0] >655 とりあえずInlineCalc.ahkに関しては引数が重複してなければAuto-executeセクション外に インクルードすれば使えるかもしれないけど、インクルードした後の動作を予測することなしに よそから拾ってきたスクリプトを次々とインクルードして使うのはおすすめしません。
657 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/26(日) 02:04:38 ID:pjcfpT8Y0] >>656 そうですか。わかりました。 拾ってきたスクリプト解析して、自力で組み込めるよう努力します。
658 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 18:01:18 ID:p3mE1UoC0] *z::f でzをfキーへ入れ替えが出来る事がわかったけど これを瞬時に元に戻したり又入れ替えた状態にするには? ALT+1でデフォルトのキー配列、ALT+2でキー入れ替えた配列にしたいです
659 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 19:15:37 ID:aI6rP75+0] HotkeyコマンドでONとOFFを切り替えらられるよ
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 19:44:21 ID:n+gx7BbI0] 読み出したスクリプトに!1::ExitAppを加える事で解決出来ました。また質問ですが MButton::3でホイールボタンを3、SHIFT押しながらホイールボタンを4に割り当てたいのですが SHIT押しながらホイールボタン押すとSHIT+3となり#が入力されてしまいます どの様な記述になるのでしょうか
661 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 22:03:17 ID:5UHM2kOF0] >>660 もうちょい本家ヘルプなり流行らせるページなりを読んだ方が良いと思う。
662 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/28(火) 22:09:38 ID:2DzjvSSI0] 一部vbsを使い、Autohotkeyで以下のようなサウンドプレイヤーの作成に挑戦してみました。 1.選択ファイルのパスをコピーして 2.そのパスをvbsに渡して、GetDetailsOfで曲の長さを取得 3.テキストファイルにファイルのパスと曲の長さを書きだして、プレイリスト作成 4.AHKでプレイリスト読み込んで、「SetTimer,再生実行サブ,曲の長さ」でリストのファイルを連続再生 5.変数に演奏中のトラックナンバーを保存し、ホットキーで曲の移動も可 という感じで作りましたが、見てわかるとおりソースがスマートじゃありません(動作は期待通りのモノですが)。 AHKでやるのが間違っているというのは十分わかっているんですが、そこにこだわりたいんです。 軽いし。 何かスマートになるアドバイス合ったらお願いします。 2,3がvbsなので、このへんをAHKでできればいいんですが。
663 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/30(木) 11:37:20 ID:+DAoRlgo0] >>661 色々試したんだけど結局できません とりあえずkeylay21で凌いでますがkeylay入れてあるとマウスドライバが書き換えられる みたいでなんかいまいち 4000円も出すんじゃなかったと LCtrl::LShift LShift::LCtrl MButton::3 ^MButton::4 SHITとCTRLを入れ替えてある状態で、CTRL(指はシフトキー)押しながらホイールボタンで4を 入力させたいのですがAHKじゃ無理なのでしょうか? 出来るか出来ないかだけでも教えてくださいorz 出来るのであればもう少しカンバッテみます
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/30(木) 13:24:47 ID:MvBpnK9rP] 終了時にウィルススキャンしてから終わるってできますか?
665 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/30(木) 15:46:07 ID:DTOCa6Mj0] >>664 lukewarm.s101.xrea.com/commands/OnExit.htm
666 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/30(木) 17:11:11 ID:MvBpnK9rP] これでシャットダウン時にウィルススキャンをしてから終了ってできるのですか?
667 名前:名無しさん@お腹いっぱい。 [2006/03/30(木) 18:23:58 ID:F2a/hdHF0] 自分で努力しないと出来ません
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/30(木) 22:12:23 ID:MvBpnK9rP] なるほど。 足りなかったのは努力なんですね。 ありがとうございますた。
669 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/31(金) 02:40:28 ID:/UqiJYW50] 子ウィンドのハンドルがうまく取得できないのは仕様? MouseGetPosでマウス下の領域のウィンドハンドル取得しようとしても、ウィンド全体のが帰ってくる
670 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/31(金) 10:32:28 ID:3DbFmw7g0] MDIの子ウィンドウはウィンドウハンドルとしては取れない。 MouseGetPos, X, Y, Win, Control ,1 で、コントロールとしては取得可能 あくまでハンドルとして取りたい場合は↓の getMousePosWindowEx() あたりを参照 d.hatena.ne.jp/eamat/20050827/1125092895
671 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/31(金) 17:46:40 ID:GXqhKwVq0] >>660 MButton::Send, 3 +MButton::Send, 4 >>663 ;****** Script01.ahk ****** OnExit, ExitSub Run, C:\Program Files\AutoHotkey\Autohotkey Script02.ahk,,,PID esc::exitapp LCtrl::LShift LShift::LCtrl ExitSub: DetectHiddenWindows On PostMessage, 0x5555,,,,ahk_pid %pid% Exitapp ;****** Script02.ahk ****** OnMessage(0x5555, "MsgMonitor") MButton::Send, 3 ^MButton::Send, 4 MsgMonitor(){ Exitapp } 同一プロセスだとうまく動かないので2つのスクリプトに分けた。 Script01を実行すればScript02が立ち上がって、Script01が終了すればScript02も終了する。 うちでは一応それなりに動作しているように見えるけど、うまくいかなかったらごめん。 (ところで、秀丸エディタって修飾キー絡むとうまくうごかないのね・・・ 秀丸上で試してたからうまく動かないので悩んだ。)
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/03(月) 21:26:55 ID:Am8bhY3i0] >>671 様ありがとうございます! 何がなにややらな状態ですがとりあえず動いてます こんなきっかけが欲しかった所です このスクリプト一行一行勉強してみます
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/05(水) 18:18:18 ID:+pF9h+il0] >>662 そういうこだわり好きだぜ。 FileSelectFile, SelectedFiles, M3, ,Open, Media Files (*.mp3;*.wav) Loop, parse, SelectedFiles, `n { if(A_Index = 1){ CurrentDir=%A_LoopField%. }else{ SoundPlay, %CurrentDir%\%A_LoopField%, wait } } exitapp #down::SoundPlay, NULL ;存在しないファイルを指定。(たったこれだけのことを思いつくのにどれだけ掛かったことか・・) win+↓キーで次の曲に飛ぶ。応用すれば自由に移動可能ではないかと。 色々試して無理だコリャとか思っていたら、あっけないほど簡単な解決策だったりする罠。 頭が固くなってきてるなぁ・・orz しっかし、たったこれだけで簡易メディアプレイヤーが出来てしまうなんてスゴス。
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/05(水) 22:18:22 ID:plvj6RC00] ぬる℃家さんのHPの移転先どこ?
675 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/06(木) 04:56:20 ID:F1AUl6YU0] 避難所じゃない?
676 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/06(木) 12:14:18 ID:GSZU7GaA0] >>673 662です。すばらしい。非常に参考になります。 プレイリストをGui表示したりすれば、かなりまともなメディアプレーヤーになりそうですね。 にしても、言われてみれば簡単だ。俺も頭固いな…。
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/06(木) 12:29:38 ID:V0dMBBJV0] 単純にファイル渡しでもファイラーから フォーカスを奪わずに試聴できるね
678 名前:674 mailto:sage [2006/04/06(木) 21:38:00 ID:7OM6hwZV0] >>675 thx
679 名前:673 mailto:sage [2006/04/07(金) 16:28:37 ID:oc5/fhnE0] SoundPlayで長い曲再生すると戻ってこなくなる? >>673 のスクリプトでアルバムを聞いてて気付いたんだけど、 なぜか、最後まで再生し終わってスクリプトが固まった。 よく考えてみたら最後の曲だけ長くて8分あるので 試しに別の7分ちょいの曲と6分ぐらいの曲を連続で再生してみたら、7分の曲再生し終わった時点で固まって 次の曲再生されなかった。 うちだけ?
680 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/07(金) 16:46:09 ID:rSUBoxot0] 試してみようと長めの曲投げてみたら再生しなかったな VBRとかもあんのかな。
681 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/07(金) 23:26:51 ID:EWcuZxfA0] 30分のネトラジ(wma)投げたけど、問題なかったな とりあえず最初に依頼したので、完成品を貼っておきます #p:: ;選択したファイルでプレイリスト作成&再生 OverWrite = True ;上書き StopFlag = Flase Gosub,MakePlaylist TrackNumber=1 GoSub,Player Return !#p:: ;選択したファイルをプレイリストに追加&再生 OverWrite = False ;追加 StopFlag = False Gosub,MakePlaylist GoSub,Player Return #PgDn:: ;次の曲再生 SoundPlay, NULL Return #PgUp:: ;前の曲再生 TrackNumber-- TrackNumber-- SoundPlay, NULL Return #End:: ;再生を停止 StopFlag = True SoundPlay, NULL return
682 名前:続き2/3 mailto:sage [2006/04/07(金) 23:27:54 ID:EWcuZxfA0] MakePlaylist: ClipSaved := ClipboardAll ;クリップボードの中身を一時待避 Clipboard = ;とりあえずクリップボードを空にして Send, ^c ;Ctrl+C ClipWait,1 ;クリップボードが読み取れるようになるのを待つ(最大1秒) i = 1 Loop, Parse, Clipboard , `n, `r ;クリップボード内のものを改行区切りに分解して { SplitPath, A_LoopField , FileName , Dir , Extension ,, Drive ;パスかどうか判定 StringLen, length, drive ;ドライブ文字の長さを見て ifEqual, length, 0, continue ;パスっぽくなかったらやめる if ( Extension != "mp3" && Extension != "wav" && Extension != "wma" && Extension != "ogg" ) ;拡張子が音楽ファイルじゃないならやめる continue if i = 1 ;テキストファイルにファイルのパスを書き込み OutputText = %A_LoopField% else OutputText = %OutputText%`n%A_LoopField% i++ } If OverWrite = True FileDelete , %CurrentDir%\Playlist.txt FileAppend , %OutputText%, %CurrentDir%\Playlist.txt Clipboard = %ClipSaved% Return
683 名前:最後3/3 mailto:sage [2006/04/07(金) 23:28:46 ID:EWcuZxfA0] Player: Loop { FileReadLine, OutputVar, %CurrentDir%\playlist.txt, %TrackNumber% If ErrorLevel = 1 ;リストの最後まで行ったら { TrackNumber = 1 ;最初に戻る FileReadLine, OutputVar, %CurrentDir%\playlist.txt, %TrackNumber% } SplitPath, OutputVar , FileName ToolTip, %TrackNumber% - %FileName% ;再生するファイルをツールチップ表示 SetTimer, RemoveToolTip, 1000 Soundplay,%OutputVar% , wait IfEqual,StopFlag,True,Break ;ループ抜ける TrackNumber++ } return RemoveToolTip: ;ツールチップ削除 SetTimer, RemoveToolTip, Off ToolTip return
684 名前:673 mailto:sage [2006/04/08(土) 05:37:18 ID:EzpMT1rj0] >>681 気軽に再生出来てなかなかいいっすねこれ。なんつっても軽いし。 ところで、長い曲(が原因か判らないけど)で固まる問題ですけど、>>681-683 のスクリプトでもやっぱり再現した・・・ MCI内部で呼んでるみたいなんで試しにMCI直で呼んでみたけど、やっぱり同じ状態になったので、 MCI自体の問題なのかも。 >>680 VBRって言われてみれば確かにVBRのファイルなんですよねこれ。 VBRで長いmp3だとおかしくなるのかな? 検証するのに何度も同じ曲聞かなきゃなんないから疲れるょ・・ AHKが悪い訳じゃないことが解っただけでも良かったけど・・
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/08(土) 12:30:36 ID:Co4Tuedv0] WでRClick, AでCtrl+RClick, DでAlt+RClickをやりたいんですが 下のコードだとDを押してDを離してもRClickは解除されるもののAltが押しっぱなしの状態になってしまいます。 どうすればいいんでしょうか? w:: Send,{RButton Down} return w up:: Send,{RButton Up} return a:: Send,{Ctrl Down} Send,{RButton Down} return a up:: Send,{RButton Up} Send,{Ctrl Up} return d:: Send,{Alt Down} Send,{RButton Down} return d up:: Send,{RButton Up} Send,{Alt Up} return
686 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/08(土) 20:49:49 ID:1SgxTDCT0] 流行らせるページにある「システムモニタ用関数群」を有難く使わせてもらっています。 これでだいたい取得したい情報は得られたのですが、 CPUの周波数だけまだ解決せず。 非常に厚かましいのですが どなたか作っていただけないでしょうか?
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/09(日) 15:27:27 ID:vc/jqxTR0] 流行らせるページが見られない
688 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/09(日) 16:14:16 ID:fCMts/FM0] ほんとだwww.xrea.comじたいが見れなくなってる。
689 名前:673 mailto:sage [2006/04/10(月) 04:43:55 ID:kIM2G0lg0] MCI使用したプレイヤー(HSP製)DLして問題のあるファイルを再生してみたら、 時間表示はおかしいけど、固まることなくちゃんと連続再生された。 試しにVC++でMCI使って再生するコード書いてみたら やっぱり固まることなく連続再生できたし・・。 AHKでmciSendString直に呼んで色々試したところでは、 どうも再生は正常に終わっているけど、デバイスが閉じられくなるみたい、 問題のファイル再生終了後にclose投げるとそのまま制御が戻ってこなくなることが解った。 SoundPlayでも同じようなことが起きてるのかも。 とりあえず、AHKでSoundPlayコマンド(MCI関連)を扱うと VBRのmp3で問題が起きる可能性があるということでFA。 マンドクセシ モーイイヤ・・('A`)
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/10(月) 06:02:52 ID:WS1IiKh80] 乙 madとか123とかをHideで使っちゃうというほうがいいのかね DLLならBassとか
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/10(月) 06:32:16 ID:gsoxib5w0] >>687-688 ttp://www.value-domain.com/info.php?action=press&no=20060408-1
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 00:58:50 ID:Ud8vzZeZ0] クリップボードの内容を一時的にする場合に、 TempClipboard:=ClipboardAll Clipboard= ;適当に処理して Clipboard:=TempClipboard ;元に戻す としたとき、元々クリップボードの中にテキストや画像データが入ってる分には問題ないのですが、 パスやURLがショートカット形式(ファイルをコピーしたときや、ネットのリンクを右クリ→ショートカットのコピーしたとき) になぜかクリップボードが復元されません。 この辺は仕様でしょうか。
693 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 00:59:53 ID:Ud8vzZeZ0] 一行目 一時的にする→一時的に退避する 失礼
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 01:25:59 ID:94xmBBMO0] MsgBox, %ClipBoard% をいろんな個所に挟んで中身を確かめながら実験すると良いかも。
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/14(金) 09:14:35 ID:UFI/YkYK0] >>692 FileAppendでファイルに落としてバイナリみると解るけど、復元出来ないんじゃなくて、 ClipboardAllコマンドでクリップボードを正常に参照出来てないと観た方が良さそう。 つまり、変数やファイルにクリップボード内のデータを待避する時点でデータがすでにおかくなっている。 でもClipboardコマンドだととれているから仕様と言うよりもClipboardAllコマンドのバグじゃないかなぁ? 仕様だったら普通最低でもClipboardコマンドと同じテキストデータがとれるようにすると思うんだよね。
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/16(日) 09:51:06 ID:Kql6t2Dr0] 初歩的な質問していいですか。 EDITコマンドで*.ahkスクリプを好きなエディタで開けません。(notepadで開く) *.iniだとちゃんと秀丸で開くのに・・・ *.ahkも*.iniもシェル関連付けはされています どうすれば*.ahkも秀丸で開けますか?
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/16(日) 10:24:38 ID:AQ9bKtsX0] ダブルクオーテーションを外して試してみて 漏れはそれで上手く行ったことがある。 何故か c:\hogehoge\hoge.ahkをエディットしようとすると c:\hogehoge\hoge.ah っていうパスが送られちゃって悩んでたんだが。
698 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/16(日) 10:54:34 ID:Kql6t2Dr0] >>697 ありがとうございます。でもダメですOTZ スクリプト自体はうまく動作しているようですが・・・。 インストーラなしのzipファイルでインストールしたのがまずいのかな。 ヘルプの ”関連付けで「Edit」コマンドが設定されていれば、そのコマンドで開く。なければ、notepad.exeで開く。” というのがイマイチ分かりません。AHKで開くエディタを指定できるんでしょうか。
699 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/16(日) 11:18:46 ID:87jJ7KHW0] 俺の場合は「Edit Script」に設定したらできた。
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/16(日) 11:42:05 ID:Kql6t2Dr0] >>699 レスサンクスです 皆さんは問題なく出来てるようですね。やっぱり俺だけですね・・ とりあえず・・・Run,〜\Hidemaru.exe 〜\AutoHotkey.ahk で開いてます。全然スマートじゃないなw
701 名前:名無しさん@お腹いっぱい。 [2006/04/16(日) 17:45:25 ID:IfQvUwVz0] >>700 AHKファイルの関連付けを、ちゃんとしてる? フォルダオプション > ファイルタイプ > AHK を選択 "拡張子AHKの詳細"項目内の詳細設定ボタンを押す。 アクションのEditを選択して編集ボタンを押す。 そこで自分の好きなエディタを指定する。 "関連付けで「Edit」コマンドが設定されていれば、そのコマンドで開く"というのはこの設定のことを言ってる。
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/16(日) 17:48:41 ID:4CFKB+jz0] デフォルト項目じゃなくてコンテクストメニューの「Edit」項目を変えてやらないといかんよ レジストリの↓の値ね HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command たぶん前スレでも貼ったような気がするが、UIで対話的にエディタ変更してみるahk。 RegRead, OldData, HKCR, AutoHotkeyScript\Shell\Edit\Command MsgBox,36,AutoHotkey Scriot Editor Changer,現在ahkのEditに設定されている値`n`n %OldData% `n`n別のエディタを指定しますか? IfMsgBox,No, ExitApp SplitPath,OldData,,EditorDir FileSelectFile,MyEditor,3,%EditorDir%,ahkを編集するエディタを選択,*.exe IfNotExist, %MyEditor%, ExitApp RegWrite, REG_SZ, HKCR, AutoHotkeyScript\Shell\Edit\Command,,%MyEditor% `%1 RegRead, NewData, HKCR, AutoHotkeyScript\Shell\Edit\Command MsgBox,64,AutoHotkey Scriot Editor Changer, %OldData% を`n`n%NewData% `n`n へ変更しました。
703 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/16(日) 20:15:21 ID:Kql6t2Dr0] >>701 >>702 丁寧にホントにありがとう!遂にできましたよ。 Helpの意味がようやく分かりました
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/21(金) 18:58:48 ID:6cXk1jHT0] Ctrl+Vでペーストできないソフトにクリップボードの内容を送るにはどうしたらよいのでしょうか? 試したのは↓なんですが、当然できませんでしたw Send, clipboard クリップボードと同じ内容のテキストのキーストロークを発生させればいいと思うんですが・・ どなたかご教授下さい
705 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/21(金) 19:38:49 ID:IoLpMntm0] 一生そこで止まっててください。
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/21(金) 21:55:03 ID:6cXk1jHT0] 残念ながら出来ましたよwスマソw
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/22(土) 21:15:53 ID:EvYvrKQ80] AutoHotkeyでネットワークプログラムを作るにはどうすればいいですか? DLLの関数を呼び出すんであろうということは分かるのですが具体的なやり方が分かりません。
708 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/22(土) 21:39:51 ID:KJrxOsM90] 何がしたいのよ
709 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/04/24(月) 22:48:18 ID:+AskqZAV0] mayuから乗り換えたいのですが、 Space押しながら別のキーを押すとShift扱い Spaceをすぐに離したらSpace で、できればSpaceを押して一定時間経過後に離すときは無効 みたいなことってできますか?