AutoHotkey Thread 2 ..
[2ch|▼Menu]
529:名無しさん@お腹いっぱい。
06/02/23 15:36:32 Mi3jCVds0
>>528
Loop, %0%
{
i := %A_Index%
Loop, %i%
{
MsgBox, %i%`n%A_LoopFileName%`n%A_LoopFileFullPath%`n%A_LoopFileLongPath%`n%A_LoopFileDir%
}
}


530:名無しさん@お腹いっぱい。
06/02/23 15:40:51 OafhHQu10
すげ、できた!!
ファイル名でLoopなんて出来るのか。
サンクス!!!!!

531:名無しさん@お腹いっぱい。
06/02/24 14:00:22 PyEBwfs70
流行らせるページの管理人の日記がすごい
TrayCommandもどきに感動
ついでにTrayExpandもどきも作ってくれないかとずうずうしい要望をしてみる

532:名無しさん@お腹いっぱい。
06/02/24 18:39:48 LMN2OTD20
Alt+Tab代価するようなスクリプトつくってほしいな

533:名無しさん@お腹いっぱい。
06/02/24 21:52:20 7qRRIOKj0
AltTabコマンドじゃだめなの?

534:名無しさん@お腹いっぱい。
06/02/25 00:57:19 HuCPqrC00
流行らせるページに一つあった

535:名無しさん@お腹いっぱい。
06/02/25 02:19:14 TlCaEqJP0
#IfWinActive, AutoHotkey.ini ahk_class Hidemaru32Class
^s::
Send, ^s
sleep, 1000
Reload
return

リロードが面倒くさいのでAutoHotkey.ini編集中に上書き保存したらリロードするってのを考えた
一応sleep入れてみたんだけどこのsleepっているのかな?

536:名無しさん@お腹いっぱい。
06/02/25 06:04:04 WlTtzrS/0
すみません、こちらの皆さんには初歩的すぎるかもしれませんが、
  マウスのボタンを押している間、
  100mm秒間隔でクリックを連打
させるスクリプトはどう書けばいいのでしょうか?

537:名無しさん@お腹いっぱい。
06/02/25 08:53:08 6LCnKr020
>>535
入れといたほうがよろし

538:名無しさん@お腹いっぱい。
06/02/25 08:57:33 9NjRh94x0
>>535
1000msが妥当かは環境によるので何とも言えんが、ディレイは入れるべきだろうね

好きずきだけど、エディタ側にマクロ機能があるならそっちでやったほうが
無駄な待ち時間も発生しないし安全ではあるな。
自分は秀丸側のマクロでやらせてる

539:名無しさん@お腹いっぱい。
06/02/25 10:02:04 6LCnKr020
>>535
使ってるエディタが秀丸だったのか。
んじゃ、マクロの方がいいね。

540:名無しさん@お腹いっぱい。
06/02/25 10:30:39 HuCPqrC00
更新日時見れば

541:名無しさん@お腹いっぱい。
06/02/25 12:44:23 WlTtzrS/0
loopを使えばいいの?どうやって止めるの?

542:531
06/02/25 12:53:27 Rs6mXlji0
すごい!
たとえ私の要望から作ったのではないとしても本当にありがとうございます!

543:名無しさん@お腹いっぱい。
06/02/25 13:02:37 CnEGJgUv0
あんまりクリックしすぎると
モニターに穴があくからやめたほうがいいよ。
漏れのディスプレイ、内部配線見えまくりだし

544:名無しさん@お腹いっぱい。
06/02/25 13:06:05 9NjRh94x0
break

>マウスのボタンを押している間、100mm秒間隔でクリックを連打
トリガはホイールクリックに割り当てるとか、別のキーでやるつもりなら大丈夫だが
左ボタン押下中に、左クリ連打とかって割り当ててしまうとどえらいことになるぞ
あんまり分かってなさそうなので一応忠告しとく

545:名無しさん@お腹いっぱい。
06/02/25 17:06:34 veunGidG0
2段階キーマップをやりたくてテストコードを書いてみたのですが
わからないことがあるので教えてください。
fx -> f
fs -> s
ff -> k
を意図して書いたのですが
ff -> k
が上手くいかないんです。
新しいスレッドが生成されるせいかと思うのですが
上手くやる方法ありますか?
ちなみにコードはこれです。厨房質問ですいません。
f::
{
Input,InputChar,C I L1 ,{Esc},x,s,f
if ErrorLevel=Match
{
if InputChar=x
send, f
if InputChar=s
Send, s
if inputchar=f
send, k
}
return
}

546:名無しさん@お腹いっぱい。
06/02/25 17:11:40 HuCPqrC00
:*:fx::f
:*:fs::s
:*:ff::k

Hotstringでこうやれば?

547:名無しさん@お腹いっぱい。
06/02/25 18:15:37 veunGidG0
>>546
レスありがとうございます。
試してみます。

548:名無しさん@お腹いっぱい。
06/02/25 18:26:07 WlTtzrS/0
さっぱりわかりません。
Mbutton::
Count = 1
loop
{
if Count > 20
break
if Count < 19
sleep,50
send {Lbutton}
Count = %Count% + 1
}
return
Lbutton up::
Count = 20
return

549:名無しさん@お腹いっぱい。
06/02/25 22:58:36 9NjRh94x0
MouseClick
または
send, {Lbutton Down}
send, {Lbutton Up}


550:名無しさん@お腹いっぱい。
06/02/25 23:08:33 Rs6mXlji0
MButton::
Loop
{
GetKeyState,keyState,MButton,P
If(keyState="D")
{
Send,{LButton}
Sleep,100
}
Else Break
}
return

これでできると思う

551:名無しさん@お腹いっぱい。
06/02/26 10:51:10 oMn9Wnsa0
あんまりよそで迷惑かけちゃダメ!

552:名無しさん@お腹いっぱい。
06/02/26 12:43:40 pNeAqWnD0
TClockの「タスクスイッチにアイコンのみ表示」「平らなトレイ」「平らなタスクスイッチ」「スタートボタンを隠す」
の機能をAHKで実現したいと考えています。

URLリンク(homepage1.nifty.com)
ここを読んで「フックを使ってサブクラス化する」ということはわかったんですが、
AHKで可能なのでしょうか?

553:名無しさん@お腹いっぱい。
06/02/27 00:03:04 l9PFBXTs0
サブクラス化は時計に描画するときの奴じゃない?
TB_SETSTYLEメッセージでTBSTYLE_FLATとかをセットすれば行けるような気がする

554:552
06/02/27 00:49:18 tOahKDvK0
>>553
SendMessage,0x438,0,0x800,ToolbarWindow322,ahk_class Shell_TrayWnd
;0x438:TB_SETSTYLE 0x800:TBSTYLE_FLAT

こんな感じでしょうか?
OSはXPです。やってもらえるとわかるんですが、フラットに一応なりますがちょっとおかしいです。
あくまでTClockのようなものを目指しています。

それと、>>552にの中では「タスクスイッチにアイコンのみ表示」が自分には一番重要なんですが
これもメッセージだけでいけるんでしょうか?

555:名無しさん@お腹いっぱい。
06/02/27 02:23:25 A+gy7pJs0
とりあえずGETした値に|や&~でスタイルを足したり引いたりしないと駄目かと

556:名無しさん@お腹いっぱい。
06/02/27 10:22:33 NeNYGSjC0
AutoHotkeyでfenrir風スゴス

557:名無しさん@お腹いっぱい。
06/02/27 10:28:09 j85wo7Eo0


558:名無しさん@お腹いっぱい。
06/02/27 11:44:42 oF4YUTyr0
>>556
どこ?

559:名無しさん@お腹いっぱい。
06/02/27 11:59:01 TYvekXx40
ぬるど

560:552
06/02/27 14:03:58 tOahKDvK0
>>555
うっかりしてました。
SendMessage,0x438,0,0x52009B45,ToolbarWindow322,ahk_class Shell_TrayWnd
これで「平らなタスクスイッチ」は実現できました。

ただ、同じように
SendMessage,0x438,0,0x56008B4D,ToolbarWindow321,ahk_class Shell_TrayWnd
とやっても何故か「平らなトレイ」はできません。


561:名無しさん@お腹いっぱい。
06/02/27 15:59:24 rTfpn8m/0
デスクトップ上やエクスプローラーで、マウスが掴んでいたり、選択状態にあるファイルの収得って出来ます?
選択されてるファイルを移動したり、エディタで開いたりといった、一括処理をしたいんです。

562:名無しさん@お腹いっぱい。
06/02/27 16:36:23 8205XDO60
流行らせるページや、なまず日記さんのところにある修飾キーの複数回押しに機能を割り当てる
スクリプトを使用したいのですが、キーを長押ししたときに連続入力されて複数回実行されてしま
います。
これを回避するために修飾キーの長押し時の連続入力?を無効にして、長押し時は1回の入力と
する方法があれば教えていただけないでしょうか。

563:名無しさん@お腹いっぱい。
06/02/27 18:13:11 tOahKDvK0
>>561
ファイラー、スクリプト、ソフトなどでパスを一度クリップボードに送ればできますよ。

>>562
KeyWaitを使えばできます。おそらく。
流行らせるページの例を拝借しますが、

~Ctrl::
if A_TickCount < %ctrldouble%
{
;some action
ctrldouble=0
}
else
{
KeyWait,Ctrl ;これを追加
ctrldouble=%A_TickCount%
ctrldouble+=400
}
return


564:562
06/02/27 18:29:23 8205XDO60
>>563
ありがとうございます。
思っていたとおりの動作をしてくれました。
コピーをしようとして、設定していたアプリが多重起動したときは焦りました。

565:名無しさん@お腹いっぱい。
06/02/27 21:49:57 A+gy7pJs0
>>560
立体的になってるのは枠の部分だから
WinSetでWS_EX_CLIENTEDGEとかを消してやればいいんじゃない?

566:552
06/02/27 22:38:27 tOahKDvK0
>>565
関係ありそうな、Shell_TrayWnd・TrayNotifyWnd1・SysPager1
の3つのウィンドウでExStyleを取得してみましたが
どれにもWS_EX_CLIENTEDGEはありませんでした。

567:552
06/02/27 23:42:36 tOahKDvK0
TrayNotifyWnd1からWS_EX_STATICEDGEを外すことで解決しました。

Control,ExStyle,0x0,TrayNotifyWnd1,ahk_class Shell_TrayWnd

あとは「タスクスイッチにアイコンのみ表示」「スタートボタンを隠す」の2つ。
スタートボタンはControl,Hideで隠すことはできるんですが、
隠した場所が空白になってしまいます。
空白を埋めるようにウィンドウやコントロールを左に移動してもうまくいきませんでした。


568:名無しさん@お腹いっぱい。
06/03/01 02:50:36 ssfeeMo60
流行らせるページの虫眼鏡、どうも挙動不審で使ってると拡大された画像が更新されなくなるんで、
なんでかなぁっておもってたんだけど、もしやDC絡みかなと思って、Draw()呼ばれる度に
取得と解放するようにしたら、タイマー小さくしてもぬるぬる動くようになったーよ。
カクカクしちゃうのはAHKの限界だと思ってたのでびっくりした。
以下修正した部分。
;省略
Gui,+E0x00080020
;myhdc:=DllCall("GetDC",UInt,myhwnd,UInt) ;コレ削除
dthwnd:=DllCall("GetDesktopWindow",UInt)
;dthdc:=DllCall("GetWindowDC",UInt,dthwnd,UInt) ;コレ削除

SetTimer,Timer,100;ここ小さくしてもスムーズに更新されるようになったです。
Timer:
Draw()
return

Draw(){
global Size,Magnification,myhwnd, dthwnd ;ここ変更
myhdc:=DllCall("GetDC",UInt,myhwnd,UInt) ;コレ追加
dthdc:=DllCall("GetWindowDC",UInt,dthwnd,UInt) ;コレ追加
CoordMode,Mouse,Screen
;省略
DllCall("StretchBlt",UInt,myhdc,Int,0,Int,0,Int,s,Int,s, UInt,dthdc,Int,left,Int,top,Int,Size,Int,Size,UInt,0x00CC0020)
DllCall("ReleaseDC", UInt, myhwnd, UInt, myhdc) ;コレ追加
DllCall("ReleaseDC", UInt, dthwnd, UInt, dthdc) ;コレ追加

WinSet,Top,,ahk_id %myhwnd%
}

569:名無しさん@お腹いっぱい。
06/03/01 05:39:49 ssfeeMo60
やべぇ、虫眼鏡気に入った。
半透明化するとカコイイし使いやすい。
旗+ホイール回転で拡大縮小にしたらこれまた良い感じだ。
Ctrl+旗+ホイール回転でサイズだけ変えるようにしたらまたこれが良い感じだ。
管理人さんコレ結構使えるよありがとう。

570:名無しさん@お腹いっぱい。
06/03/06 15:39:50 15ZX1WmO0
マルチモニタで使用しています。
WinMoveでウインドウを反対側のモニターに移動させようとしたら、ウインドウが最大化の状態では
移動できないんですね。なんか対策方法ってありますか?

571:名無しさん@お腹いっぱい。
06/03/06 22:08:11 dAP1bHHq0
起動中のスレッドの数を取得する方法ってありますか?
一応 ListHotkeys の Running で調べることはできるんですけど、
スクリプト内でスレッドの数を取得することができないで悩んでます。

572:名無しさん@お腹いっぱい。
06/03/07 19:31:53 6lI/W0at0
1.0.42.05 - March 6, 2006
This is functionally identical to the previous release, whose EXE and BIN were about 1% larger than they should have been due to a compiler quirk.

1.0.42.04 - March 6, 2006
Fixed ClipboardAll when used with apps such as Word and Excel (broken by previous version). [thanks Roussi Nikolov]

Fixed ClipboardAll to prevent appearance of bookmarks in MS Word. [thanks Laszlo & 02clams]

Fixed A_TimeIdlePhysical being disrupted by simulated AltGr keystrokes. [thanks skrommel]

Fixed Send{Blind} causing sticking Win/Ctrl/Alt/Shift when the user released such a key in the middle of a Send.

Improved the Send command not to press and release the shift key after each uppercase letter (e.g. Send ABC).

Improved SoundSet/Get to support ComponentType "Headphones". [thanks Tobias Winkler]

573:名無しさん@お腹いっぱい。
06/03/08 01:17:49 vfUm781w0
A:: Send,{F1}
B:: Send,[F2}
...

とやってすべてのキーに対して
IfWinActive,TargetWindowTitle
{
Send, {???}
return
}
したいと思ったら個別に全部書かないといけないの?

574:名無しさん@お腹いっぱい。
06/03/08 01:33:04 4eMMzOAe0
今ならこれで行ける
A::
#IfWinActive nanntoka
A::
#IfWinActive kantoka
A::

575:名無しさん@お腹いっぱい。
06/03/08 06:52:36 +kxWwRRD0
格ゲーのコマンドを空いたボタンにマクロ化しようと思ったんだけど
十字キーをどうsend,{}に書けばいいのかわからない…

教えてください、お願いします

576:名無しさん@お腹いっぱい。
06/03/08 10:37:30 h+DqYquz0
Send,{Right}
Send,{Down}
Send,{Right}

じゃだめなの?(昇龍拳)

577:名無しさん@お腹いっぱい。
06/03/08 11:54:15 p4FMmfTv0
1.0.42.06 - March 7, 2006
Fixed crash of A_ScriptDir (broken by 1.0.42.01).←これがぬるタソがバグレポートしたヤツかな?

Fixed Run/RunWait's passing of an extra space character at the end of the parameter list when launching shortcuts. [thanks arbe]



AutoHotkey.comなんかもの凄く重い・・・
なにわともわれ、ぬるたんGJ!!

578:名無しさん@お腹いっぱい。
06/03/08 14:27:59 +kxWwRRD0
>576
言葉が足りなくてすまん、
えーと、
joypadからの入力としてはどう書くのかなーと。
ボタンは1joy5とかでなんとかなるんだけど
方向キーのjoyXとかの書き方が良く解らなくて。

579:名無しさん@お腹いっぱい。
06/03/08 16:20:21 rhy9UwrA0
>>578
URLリンク(lukewarm.s101.xrea.com)

580:名無しさん@お腹いっぱい。
06/03/08 22:08:54 +kxWwRRD0
>579
いや、そりゃそこも見てるんですよ?
ただ十時キーの場合右、中、左を
0〜100とかの数値で表さなきゃいかんじゃないですか?
それをどういう書き方で書けばいいのかと思いまして。

状態はわかってもsendは出来ないのかな…

581:名無しさん@お腹いっぱい。
06/03/08 23:49:20 gQ7VQesu0
>>580
デジタル十字キーは、ボタンのどれかにマッピングされてるはずだが
アナログなら書いてある通りだ

582:名無しさん@お腹いっぱい。
06/03/09 11:08:17 jj4ahRjB0
>>577
ぬるタソって誰?

583:名無しさん@お腹いっぱい。
06/03/09 14:40:31 Pszy413S0
ぬる様を知らないとは・・・。

584:名無しさん@お腹いっぱい。
06/03/10 04:18:48 w2FftydU0
自分のスクリプトの設定ウィンドウを作りたいんだが
ボタンとか部品を値で指定するのが面倒です

GUIを設計するのに便利なツールってありませんか?
AHK用でなくても
部品の位置(X,Y座標)、width,heightなどが分かればいいんです

私はプログラムを組んだのは
CUIベースのやつをちょこっと触ったくらいなので
GUIを作るのに便利なツールとかホントよく分からないのです。

どなたかお願いします

585:名無しさん@お腹いっぱい。
06/03/10 04:31:56 ze2+cAQ/0
>>584
便利かどうかは知らんけど、こんなのはある。
URLリンク(www.autohotkey.com)

586:名無しさん@お腹いっぱい。
06/03/10 04:54:34 FWnM8tqy0
必要最小限の記述だけでとりあえず入力できるウィンドウが出せるだろ
Delphiのフォームエディタなんかでペタペタ並べていくより楽だと思うが

587:名無しさん@お腹いっぱい。
06/03/10 10:18:45 w2FftydU0
>585
AHK用のやつをAHKで作ってた人いるんですね。
少し触ってみたんですがなかなか良さそうなので
シコシコぺたぺた作ってみます。
ありがとうございました

>586
自己満足ながらそれなりの見栄えがほしいのですわ
身内にまわすつもりのスクリプトなんで


588:名無しさん@お腹いっぱい。
06/03/10 16:54:00 DvP0u0ni0
本来1行に書かなければいけないものを
複数行に渡って書くことはできないでしょうか?

589:名無しさん@お腹いっぱい。
06/03/10 18:04:06 ovxrZJOi0
例えば?

590:名無しさん@お腹いっぱい。
06/03/10 19:00:52 3lX6WYxo0
If 1 Contains あいうえお,かきくけこ,(…)

って時に分けたいなあって時はある。

591:588
06/03/10 20:41:18 DvP0u0ni0
>>589
If(WinActive(........) || WinActive(..........) || WinActive(..........) || ..)
などの時です

592:名無しさん@お腹いっぱい。
06/03/11 01:39:11 +FW9TX3p0
IME on/off トグルはどのようにすればできますか。
探してみたのですが見つかりませんでした。

593:名無しさん@お腹いっぱい。
06/03/11 02:03:00 4Dr+/V140
原始的な方法は
IME ON/OFFを IMEプロパティから適当なキーに設定して
それをSend。

594:名無しさん@お腹いっぱい。
06/03/11 02:08:22 91GIDUrj0
>>592
具体的にどういう用途に使うの?
AutoHotkeyを流行らせるアップローダの029.zip使えば解決するとは思うけど。

595:592
06/03/11 11:16:04 +FW9TX3p0
>>593
ありがとうございます。
英語キーボード なので、Alt+`がデフォルトのIME On/Offなので
これをやったのですがうまくいかなくて。
RAlt:: Send,!`
とやってみたのですが、何が間違っているのでしょうか?

>>594
上に書いたとおり、英語キーボードだとIME起動がちょっと面倒なのです。
今は窓使いの憂鬱で右AltをIME On/Offにしていますが、
まずAHKでも同じことができれば、AHKの他の機能も試用してみたいと思いました。

596:名無しさん@お腹いっぱい。
06/03/11 12:52:01 aZXYdYak0
Send, {ALTDOWN}`{ALTUP}
こう書くんじゃないの?

597:592
06/03/11 13:01:55 mSorvu8J0
>>596
試してみましたが、フォーカスがメニューに移る、通常のAltキーの動作しかしませんでした。
AHKのOpenメニューで見てみましたが、{ALTUP}{ALTDOWN}となっていて、
やはり右Altとしては認識されていないようです。

598:名無しさん@お腹いっぱい。
06/03/11 17:28:31 /NprAL2G0
`は``とエスケープしないと

599:yy
06/03/12 00:16:48 gfXzHMTR0
マウスのホイールup、downをタブ切り替え(ctrl+up、down)に割り当てたいんですが
どうやるの?

600:yy
06/03/12 00:18:28 gfXzHMTR0
書き忘れましたが、エクセルでの話です。

601:yy
06/03/12 00:20:21 gfXzHMTR0
またまた書き忘れましたがマウス+ホイールup、downの動作のことを言いたいのです。

602:592
06/03/12 01:48:47 flSoepXq0
>>598
できました!!
RAlt:: Send, {ALTDOWN}``{ALTUP}
これで右AltでIME On/Offができるようになりました。

窓使いの憂鬱では、押しただけのときはIME On/Off、
押しっぱなしにしてほかのキーと同時に押したときはAltの役割ができたのですが
これをさせるにはどうしたらいいでしょう。

RAlt up:: Send, {ALTDOWN}``{ALTUP}
とやると、右Altを離した瞬間にIMEが切り替わってしまいます。

603:名無しさん@お腹いっぱい。
06/03/12 12:01:42 7/ujbqoZ0
そういうのはマウ筋使った方が早いな>yy

604:592
06/03/12 12:11:54 MzJzCq0O0
>>601はまだ自己解決していないのですが、ほかにも問題が生じてきました。
英語102キーボードなので、デフォルト設定ではCapsLock単押しでCapsLock On/Offになりますが、
これを某アプリケーションのホットキーにし、もとのCapsLockをShift+CapsLockに割り当てようと思っています。
(日本語キーボードと同じCapsLockにしたい)

そこで、
CapsLock:: Run, "application_path"
+CapsLock:: Send, {CapsLock}
としたところ、アプリケーション起動はうまく行きましたがShift+CapsLockが動きません。
SetCapsLockStateを使いたいのですが、On/Offの切り替え方法が具体的にわかりません。

探してみるとAHKではCtrlとCapsLockの交換が難しいとかそんな情報は見かけたのですが、
結局方法が記載されたページが見つけられませんでした。またここの過去ログも参照できませんでした。
基本的な質問が続き申し訳ありませんが、よろしくお願いします。

605:592
06/03/12 13:37:35 MzJzCq0O0
>>604
+CapsLock::
GetKeyState, state, CapsLock, T
MsgBox, %state%
Return

とやってサブルーチンが実行されているかを試しましたが
期待したメッセージボックスも出ず、どうも+CapsLock::の記述がダメそうです。
+{CapsLock}::もうまくいきません。

606:名無しさん@お腹いっぱい。
06/03/13 13:28:27 +eLuhcrb0
コントロールの座標を取得する方法は載ってるけど
Guiで生成したウィンドウの絶対座標(スクリーン座標?)を取得する方法が分かりません。

WindowsMessageを送ればできるような気もしますけど
そんな事したことないのでどうやるのかさっぱりです。

どうすればウィンドウの座標を取得することができるんでしょうか?

607:名無しさん@お腹いっぱい。
06/03/13 14:00:56 HyKmrYHA0
WinGetPosじゃ駄目なん?

608:名無しさん@お腹いっぱい。
06/03/13 18:33:26 +eLuhcrb0
Guiの方ばっかり見てて
Windows関係の命令見てませんでした。

WinGetPosでいけますね、失礼しました。

609:名無しさん@お腹いっぱい。
06/03/15 22:02:26 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:名無しさん@お腹いっぱい。
06/03/15 23:01:58 4MPDWD0K0
>if (length = 0) ,continue


611:名無しさん@お腹いっぱい。
06/03/15 23:05:41 4MPDWD0K0
途中送信してもうた

continueはLoopの中でしか使えないんジャマイカ
どっちにしてもカンマで区切って一行に納めるのはNGだったと思う

最近バージョンアップチェックしてないので、記述ルール改定されてたらスマソ

612:名無しさん@お腹いっぱい。
06/03/16 00:18:25 +vsjFQ220
;_____________________________________
StringLen, length, strings
ifEqual, length, 0, continue
ifEqual, i, 1, FileCreateDir, %dir%\%name_no_ext%\
;_____________________________________


613:名無しさん@お腹いっぱい。
06/03/16 00:24:01 n0WmmFt40
>>611
すみません、これLoopの中です。

で、ご指摘の通り
if (length = 0)
{
continue
}
にしたらちゃんと動きました。

流行らせるページのIfInStringの説明にカンマで区切ってOKとあったので、このifでも気にせずカンマで区切ってました

if単体だとカンマ区切りは動作がおかしくなることあるのかな…?

614:名無しさん@お腹いっぱい。
06/03/16 00:26:15 n0WmmFt40
>>612
すごいスマートです。
ifEqualを使えばよかったんですね。
ありがとうございます。

615:名無しさん@お腹いっぱい。
06/03/16 00:28:52 n0WmmFt40
流行らせるページを再読したら
>IfEqualのようなコマンド名の形式の場合、更にカンマで区切って条件に一致した場合に実行するコマンドを記述できる。
しっかり書いてありました。お騒がせしました。

616:名無しさん@お腹いっぱい。
06/03/16 00:49:17 +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:名無しさん@お腹いっぱい。
06/03/16 03:28:29 +IJnHcux0
ややこしくなるから
if(式){
}
その他のIFコマンド
{
}
以外は使わない方がいいよ

618:名無しさん@お腹いっぱい。
06/03/16 08:32:10 xM7XPfwl0
システム以外のマウスカーソルの情報を取得する方法ってありますか?
A_CursorでUnknownになってしまうようなカーソルを知りたいのです

619:名無しさん@お腹いっぱい。
06/03/17 17:44:33 FiSk8Qjk0
Hotkey sでループをスタートさせて、無限ループになってしまった場合に
Hotkey hで止めたいのだけれど、どうすれば良いのでしょうか?助言おねがい。

s::
Loop
{
〜処理〜

if abc = 1
break
}
return

h::ExitApp

620:名無しさん@お腹いっぱい。
06/03/17 17:47:47 wtxnAtBP0
>>619
何故その記述では駄目なのか、ってことを書かなきゃ助言しようがない

621:名無しさん@お腹いっぱい。
06/03/17 18:12:51 zTH699bB0
それで動くかどうか検証めんどいからしないけど
無理だっていうならループ内でsが押されてる状態かを毎回判断すればいい

622:619
06/03/17 18:38:40 FiSk8Qjk0
Sleepいれてみたら止めることができました。
くだらないことでスレ消費してごめんなさい。
レスありでした>620、621

s::
Loop
{
〜処理〜
Sleep, 0      <-ここ
if abc = 1
break
}
return

h::ExitApp


623:名無しさん@お腹いっぱい。
06/03/17 18:49:03 FiSk8Qjk0
またきました。sとhでスクリプトを終了させないままスタート/ストップを繰り返すために
以下のようにしたんですが、もっと上手いやり方とかありますか?添削おねがいします。

s::
loopflg = 1
Loop
{
〜処理〜
Sleep, 0
if abc = 1
break
}
abc =
loopflg =
return


h::
if loopflg = 1
abc = 1
return


624:名無しさん@お腹いっぱい。
06/03/17 19:03:44 LwsXg2Qc0
一時的なデバッグで永久ループから脱出したいって話じゃなかったのか?
一旦リセットしたいなら
h::Reload

625:名無しさん@お腹いっぱい。
06/03/17 19:08:49 qaI2qrDX0
>623
GetKeyStateじゃだめなの?

626:名無しさん@お腹いっぱい。
06/03/17 20:28:40 68vIds2k0
KeyWait
ってのもあるでよ

627:623
06/03/17 21:47:02 hFQNB0xp0
>624
最高。今回の目的にバッチリ適合です。
デバッグが楽になったのも思わぬ収穫^^
s::
Loop
{
〜処理〜
Sleep, 0
if abc = 1
break
}
return

h::reload

628:名無しさん@お腹いっぱい。
06/03/17 21:47:42 hFQNB0xp0
>625のもやってみた。

s::
Loop
{
〜処理〜
Sleep, 0
if abc = 1
break
GetKeyState, state, h, P
if state = D
break
}
return

これも目的の動作はしたけど、今回は>624案を採用。
>626のはLoopを抜ける時どう使うのか分からず・・・orz
皆様レスありでした。


629:名無しさん@お腹いっぱい。
06/03/17 22:09:21 Op8Q/jkU0
DonationCOdeでなんかおもしろそうなんが出てた

630:名無しさん@お腹いっぱい。
06/03/17 23:10:59 SD1TlI3h0
>>628
便利! ワンキーでできないかな?

s::
cnt++
Loop
{
Sleep, 0
If cnt > 1
{
Exit
}
}
cnt--
Return

これは駄目みたい…。

631:名無しさん@お腹いっぱい。
06/03/17 23:41:10 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
06/03/18 02:14:02 C4FDHepp0
>>631
おおお、素晴らしい。感謝です。
答えを出してもらいながら申し訳ないが、例えば、
Gui, Add, Edit, Gtest ←これ
みたいなサブルーチンの中に、今までのサンプルみたく無限ループがあったとして、
同じサブルーチンをもう一回呼び出したときにループを終了させたいときには、
GetKeyStateだと煩雑になる予感。
こういう場合にも、ビシッとループを終了できないかな?

633:名無しさん@お腹いっぱい。
06/03/18 06:53:17 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:名無しさん@お腹いっぱい。
06/03/18 15:20:28 Yl3U5BIi0
スレッド優先度ってマイナスの値入れちゃっても大丈夫ですか?

635:名無しさん@お腹いっぱい。
06/03/18 16:25:48 TCBHEo+A0
つhelp

636:名無しさん@お腹いっぱい。
06/03/18 17:51:05 Yl3U5BIi0
>>635
ありがとう、もう一度読み直してみたら書いてありました。

637:630
06/03/19 00:46:48 5zHaODEE0
>>633
サンクス! レス遅くなって申し訳ない。
英語Helpにそれらしいのがあったとは…。読み足りてなかったです。
ホットキー(今回の場合 s::)だと凄いいい感じに動いてるんだけど、
それを Gui, Add, Edit, Gtest とかのサブルーチン(ここでは test:)に置き換ると、
3回目のキー押下時にどうもミスります。
…よく分からないんで、ちょっと考えてみます。

638:名無しさん@お腹いっぱい。
06/03/19 02:23:42 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:名無しさん@お腹いっぱい。
06/03/19 11:12:31 5zHaODEE0
>>638
ありがとう! まさに求めてたものです。
具体的には、スレッド実行中に新しいスレッドが呼び出されたとき、
後のスレッドは前のスレッドが終了するまで後回しにされるか無視される仕様からか、
スレッドの処理がスルーされるのが少し困ってたんです。
これで、前のスレッドを途中で停止して後のスレッドを実行する、
みたいなことができるぽいです。他にも色々と効用ありますし。
感謝感激、みんなありがとう〜!

640:名無しさん@お腹いっぱい。
06/03/21 04:23:15 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:名無しさん@お腹いっぱい。
06/03/21 19:01:49 7BWRBHrs0
文字列をURLで使える
%E5とかに変換する方法ありまっか?
Yahooの検索で日本語がうまくいきまへん
Proxomitronでも頑張ったんだがなんか無限ループとかで挫折。

642:名無しさん@お腹いっぱい。
06/03/23 07:02:24 8KPbtYSZ0
1バイトずつチェックして変換するしかないんじゃない?
日本語で検索できないのは、リクエストの文字コード指定が悪い所為のような気がするけど。

643:名無しさん@お腹いっぱい。
06/03/23 11:56:27 37jAp6/q0
>>641
おみとろん使えるなら$ESCでダメか?
とスレ違いレスをしてみる

644:名無しさん@お腹いっぱい。
06/03/23 13:58:33 Jwp33SJ00
>>642
うん、基本そうなんだろうけど
Proxomitronでがちがちにフィルターしてるから何が何だかわからなくて
そちらでやるのをあきらめて最初からあの文字列でINPUTから
リクエストできればいいかなあとか思ってしもうた。
>>643
どうもフィルターの相性なのか思ったとおりにならなくてお手上げ中。
も少しがんがってみる。

645:名無しさん@お腹いっぱい。
06/03/23 22:28:27 ZyneQEvmP
このソフトでパスワード入力ソフトの代わりはできますか?

646:名無しさん@お腹いっぱい。
06/03/23 22:35:45 oGkLYudX0
>>645
出来るとは思うけど、素直に既存のソフトを使った方が良いよ。

647:名無しさん@お腹いっぱい。
06/03/24 03:15:07 Se2Qk5Yk0
CapslockにCtrlを割り当てたくて
Capslock::Ctrl ; Make Capslock become a Control key.
を試してみたのですが,
Capslockを離した後もCtrlを押したまんまの状態になります
どうすればよいでしょうか?

648:名無しさん@お腹いっぱい。
06/03/24 07:17:30 yvNeSmEP0
キーの履歴を開いてみたらCapslockは押し下げだけ感知して離すのは無視されてるみたい。
どうしてもAHKでCapslockが使いたいのなら押されてから数秒たったらCtrl Upを送信するようにするとか
InputでCapslockの次に押されたキーを読んでみるとか方法が無いことも無いんだろうけど
とりあえず他のソフトで出来るかどうか試してみては?

649:647
06/03/24 08:37:38 Se2Qk5Yk0
CapsLockにCtrlを割り当てるとCapsLock Upが返ってこないですね
exeにしてどこでもすぐ使えるようにしたかったのですが……
とりあえずレジストリをいじって解決しました

650:名無しさん@お腹いっぱい。
06/03/24 12:30:27 PCVDLk5L0
流行らせるページのどっかに記述あったと思うけど
Locks系は日本語環境だと正しく取得できない。
OSがドライバレベルでなんかやってる。(ダブルバイト環境共通なのかどうかは知らん)

過去ログでも何度も話題になってる。次スレではテンプレに入れたほうがいいかもね。


651:名無しさん@お腹いっぱい。
06/03/24 12:57:57 TXwdyAWL0
うちだとCapslockで
CTRL+C,Vが送られるお。なんだこれって感じ。

652:名無しさん@お腹いっぱい。
06/03/24 12:58:20 vTkQnhytP
>>646
これでできれば、常駐ソフトを減らせるなーと思いまして

653:名無しさん@お腹いっぱい。
06/03/24 20:28:16 zPGcV7l50
人の作ったahkファイルを、自分のAutohotkey.iniにIncludeで組み込もうとするとき、
モノによってはAutohotkey.iniの#Persistent内にあるSet timerが無効になるんですが、これはどの辺が原因なんでしょう。

流行らせるページにあるのだと、mbstring.ahkはOKだけどInlineCalc.ahkはだめです。

654:名無しさん@お腹いっぱい。
06/03/26 00:23:53 b3Nu7QpN0
>653
もしかしてAuto-executeセクション中にIncludeしてないですか?

655:名無しさん@お腹いっぱい。
06/03/26 00:59:36 pjcfpT8Y0
>>654
思いっきりしてました。

AHKのルールあまりよくわかってないんですが、こういう使い方ってNG?
AHK2つ常駐させるのがいやで一つにまとめたいっていう場合、Autohotokey.ini内にIncludeで組み込むって言うのは間違った使い方なんでしょうか。

656:名無しさん@お腹いっぱい。
06/03/26 01:53:48 b3Nu7QpN0
>655
とりあえずInlineCalc.ahkに関しては引数が重複してなければAuto-executeセクション外に
インクルードすれば使えるかもしれないけど、インクルードした後の動作を予測することなしに
よそから拾ってきたスクリプトを次々とインクルードして使うのはおすすめしません。

657:名無しさん@お腹いっぱい。
06/03/26 02:04:38 pjcfpT8Y0
>>656
そうですか。わかりました。
拾ってきたスクリプト解析して、自力で組み込めるよう努力します。

658:名無しさん@お腹いっぱい。
06/03/28 18:01:18 p3mE1UoC0
*z::f
でzをfキーへ入れ替えが出来る事がわかったけど
これを瞬時に元に戻したり又入れ替えた状態にするには?
ALT+1でデフォルトのキー配列、ALT+2でキー入れ替えた配列にしたいです

659:名無しさん@お腹いっぱい。
06/03/28 19:15:37 aI6rP75+0
HotkeyコマンドでONとOFFを切り替えらられるよ

660:名無しさん@お腹いっぱい。
06/03/28 19:44:21 n+gx7BbI0
読み出したスクリプトに!1::ExitAppを加える事で解決出来ました。また質問ですが
MButton::3でホイールボタンを3、SHIFT押しながらホイールボタンを4に割り当てたいのですが
SHIT押しながらホイールボタン押すとSHIT+3となり#が入力されてしまいます
どの様な記述になるのでしょうか

661:名無しさん@お腹いっぱい。
06/03/28 22:03:17 5UHM2kOF0
>>660
もうちょい本家ヘルプなり流行らせるページなりを読んだ方が良いと思う。

662:名無しさん@お腹いっぱい。
06/03/28 22:09:38 2DzjvSSI0
一部vbsを使い、Autohotkeyで以下のようなサウンドプレイヤーの作成に挑戦してみました。

1.選択ファイルのパスをコピーして
2.そのパスをvbsに渡して、GetDetailsOfで曲の長さを取得
3.テキストファイルにファイルのパスと曲の長さを書きだして、プレイリスト作成
4.AHKでプレイリスト読み込んで、「SetTimer,再生実行サブ,曲の長さ」でリストのファイルを連続再生
5.変数に演奏中のトラックナンバーを保存し、ホットキーで曲の移動も可

という感じで作りましたが、見てわかるとおりソースがスマートじゃありません(動作は期待通りのモノですが)。
AHKでやるのが間違っているというのは十分わかっているんですが、そこにこだわりたいんです。
軽いし。

何かスマートになるアドバイス合ったらお願いします。
2,3がvbsなので、このへんをAHKでできればいいんですが。

663:名無しさん@お腹いっぱい。
06/03/30 11:37:20 +DAoRlgo0
>>661
色々試したんだけど結局できません
とりあえずkeylay21で凌いでますがkeylay入れてあるとマウスドライバが書き換えられる
みたいでなんかいまいち 4000円も出すんじゃなかったと

LCtrl::LShift
LShift::LCtrl
MButton::3
^MButton::4

SHITとCTRLを入れ替えてある状態で、CTRL(指はシフトキー)押しながらホイールボタンで4を
入力させたいのですがAHKじゃ無理なのでしょうか?
出来るか出来ないかだけでも教えてくださいorz
出来るのであればもう少しカンバッテみます

664:名無しさん@お腹いっぱい。
06/03/30 13:24:47 MvBpnK9rP
終了時にウィルススキャンしてから終わるってできますか?

665:名無しさん@お腹いっぱい。
06/03/30 15:46:07 DTOCa6Mj0
>>664
URLリンク(lukewarm.s101.xrea.com)


666:名無しさん@お腹いっぱい。
06/03/30 17:11:11 MvBpnK9rP
これでシャットダウン時にウィルススキャンをしてから終了ってできるのですか?

667:名無しさん@お腹いっぱい。
06/03/30 18:23:58 F2a/hdHF0
自分で努力しないと出来ません

668:名無しさん@お腹いっぱい。
06/03/30 22:12:23 MvBpnK9rP
なるほど。
足りなかったのは努力なんですね。
ありがとうございますた。

669:名無しさん@お腹いっぱい。
06/03/31 02:40:28 /UqiJYW50
子ウィンドのハンドルがうまく取得できないのは仕様?
MouseGetPosでマウス下の領域のウィンドハンドル取得しようとしても、ウィンド全体のが帰ってくる

670:名無しさん@お腹いっぱい。
06/03/31 10:32:28 3DbFmw7g0
MDIの子ウィンドウはウィンドウハンドルとしては取れない。
MouseGetPos, X, Y, Win, Control ,1
で、コントロールとしては取得可能

あくまでハンドルとして取りたい場合は↓の getMousePosWindowEx() あたりを参照
URLリンク(d.hatena.ne.jp)

671:名無しさん@お腹いっぱい。
06/03/31 17:46:40 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:名無しさん@お腹いっぱい。
06/04/03 21:26:55 Am8bhY3i0
>>671様ありがとうございます!
何がなにややらな状態ですがとりあえず動いてます
こんなきっかけが欲しかった所です
このスクリプト一行一行勉強してみます

673:名無しさん@お腹いっぱい。
06/04/05 18:18:18 +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:名無しさん@お腹いっぱい。
06/04/05 22:18:22 plvj6RC00
ぬる℃家さんのHPの移転先どこ?

675:名無しさん@お腹いっぱい。
06/04/06 04:56:20 F1AUl6YU0
避難所じゃない?

676:名無しさん@お腹いっぱい。
06/04/06 12:14:18 GSZU7GaA0
>>673
662です。すばらしい。非常に参考になります。
プレイリストをGui表示したりすれば、かなりまともなメディアプレーヤーになりそうですね。

にしても、言われてみれば簡単だ。俺も頭固いな…。

677:名無しさん@お腹いっぱい。
06/04/06 12:29:38 V0dMBBJV0
単純にファイル渡しでもファイラーから
フォーカスを奪わずに試聴できるね

678:674
06/04/06 21:38:00 7OM6hwZV0
>>675
thx

679:673
06/04/07 16:28:37 oc5/fhnE0
SoundPlayで長い曲再生すると戻ってこなくなる?

>>673のスクリプトでアルバムを聞いてて気付いたんだけど、
なぜか、最後まで再生し終わってスクリプトが固まった。
よく考えてみたら最後の曲だけ長くて8分あるので
試しに別の7分ちょいの曲と6分ぐらいの曲を連続で再生してみたら、7分の曲再生し終わった時点で固まって
次の曲再生されなかった。
うちだけ?

680:名無しさん@お腹いっぱい。
06/04/07 16:46:09 rSUBoxot0
試してみようと長めの曲投げてみたら再生しなかったな
VBRとかもあんのかな。

681:名無しさん@お腹いっぱい。
06/04/07 23:26:51 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
06/04/07 23:27:54 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
06/04/07 23:28:46 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
06/04/08 05:37:18 EzpMT1rj0
>>681
気軽に再生出来てなかなかいいっすねこれ。なんつっても軽いし。

ところで、長い曲(が原因か判らないけど)で固まる問題ですけど、>>681-683のスクリプトでもやっぱり再現した・・・
MCI内部で呼んでるみたいなんで試しにMCI直で呼んでみたけど、やっぱり同じ状態になったので、
MCI自体の問題なのかも。

>>680
VBRって言われてみれば確かにVBRのファイルなんですよねこれ。
VBRで長いmp3だとおかしくなるのかな?


検証するのに何度も同じ曲聞かなきゃなんないから疲れるょ・・
AHKが悪い訳じゃないことが解っただけでも良かったけど・・

685:名無しさん@お腹いっぱい。
06/04/08 12:30:36 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:名無しさん@お腹いっぱい。
06/04/08 20:49:49 1SgxTDCT0
流行らせるページにある「システムモニタ用関数群」を有難く使わせてもらっています。
これでだいたい取得したい情報は得られたのですが、
CPUの周波数だけまだ解決せず。

非常に厚かましいのですが
どなたか作っていただけないでしょうか?

687:名無しさん@お腹いっぱい。
06/04/09 15:27:27 vc/jqxTR0
流行らせるページが見られない

688:名無しさん@お腹いっぱい。
06/04/09 16:14:16 fCMts/FM0
ほんとだwww.xrea.comじたいが見れなくなってる。

689:673
06/04/10 04:43:55 kIM2G0lg0
MCI使用したプレイヤー(HSP製)DLして問題のあるファイルを再生してみたら、
時間表示はおかしいけど、固まることなくちゃんと連続再生された。
試しにVC++でMCI使って再生するコード書いてみたら
やっぱり固まることなく連続再生できたし・・。

AHKでmciSendString直に呼んで色々試したところでは、
どうも再生は正常に終わっているけど、デバイスが閉じられくなるみたい、
問題のファイル再生終了後にclose投げるとそのまま制御が戻ってこなくなることが解った。
SoundPlayでも同じようなことが起きてるのかも。

とりあえず、AHKでSoundPlayコマンド(MCI関連)を扱うと
VBRのmp3で問題が起きる可能性があるということでFA。
マンドクセシ モーイイヤ・・('A`)

690:名無しさん@お腹いっぱい。
06/04/10 06:02:52 WS1IiKh80


madとか123とかをHideで使っちゃうというほうがいいのかね
DLLならBassとか


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

5366日前に更新/298 KB
担当:undef