[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 14:54 / Filesize : 298 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

AutoHotkey Thread 2



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

551 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/26(日) 10:51:10 ID:oMn9Wnsa0]
あんまりよそで迷惑かけちゃダメ!

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

ttp://homepage1.nifty.com/kazubon/progdoc/tclock/index.html
ここを読んで「フックを使ってサブクラス化する」ということはわかったんですが、
AHKで可能なのでしょうか?

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

554 名前:552 mailto:sage [2006/02/27(月) 00:49:18 ID:tOahKDvK0]
>>553
SendMessage,0x438,0,0x800,ToolbarWindow322,ahk_class Shell_TrayWnd
;0x438:TB_SETSTYLE 0x800:TBSTYLE_FLAT

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

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

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

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/27(月) 10:22:33 ID:NeNYGSjC0]
AutoHotkeyでfenrir風スゴス

557 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/27(月) 10:28:09 ID:j85wo7Eo0]


558 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/27(月) 11:44:42 ID:oF4YUTyr0]
>>556
どこ?

559 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/27(月) 11:59:01 ID:TYvekXx40]
ぬるど



560 名前:552 mailto:sage [2006/02/27(月) 14:03:58 ID:tOahKDvK0]
>>555
うっかりしてました。
SendMessage,0x438,0,0x52009B45,ToolbarWindow322,ahk_class Shell_TrayWnd
これで「平らなタスクスイッチ」は実現できました。

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


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

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

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

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

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


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

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

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

567 名前:552 mailto:sage [2006/02/27(月) 23:42:36 ID:tOahKDvK0]
TrayNotifyWnd1からWS_EX_STATICEDGEを外すことで解決しました。

Control,ExStyle,0x0,TrayNotifyWnd1,ahk_class Shell_TrayWnd

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


568 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/01(水) 02:50:36 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/01(水) 05:39:49 ID:ssfeeMo60]
やべぇ、虫眼鏡気に入った。
半透明化するとカコイイし使いやすい。
旗+ホイール回転で拡大縮小にしたらこれまた良い感じだ。
Ctrl+旗+ホイール回転でサイズだけ変えるようにしたらまたこれが良い感じだ。
管理人さんコレ結構使えるよありがとう。



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

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

572 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/07(火) 19:31:53 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/08(水) 01:17:49 ID:vfUm781w0]
A:: Send,{F1}
B:: Send,[F2}
...

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

574 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/08(水) 01:33:04 ID:4eMMzOAe0]
今ならこれで行ける
A::
#IfWinActive nanntoka
A::
#IfWinActive kantoka
A::

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

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

576 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/08(水) 10:37:30 ID:h+DqYquz0]
Send,{Right}
Send,{Down}
Send,{Right}

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

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/08(水) 11:54:15 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/08(水) 14:27:59 ID:+kxWwRRD0]
>576
言葉が足りなくてすまん、
えーと、
joypadからの入力としてはどう書くのかなーと。
ボタンは1joy5とかでなんとかなるんだけど
方向キーのjoyXとかの書き方が良く解らなくて。

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/08(水) 16:20:21 ID:rhy9UwrA0]
>>578
lukewarm.s101.xrea.com/KeyList.htm



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

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

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

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/09(木) 11:08:17 ID:jj4ahRjB0]
>>577
ぬるタソって誰?

583 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/09(木) 14:40:31 ID:Pszy413S0]
ぬる様を知らないとは・・・。

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

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

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

どなたかお願いします

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/10(金) 04:31:56 ID:ze2+cAQ/0]
>>584
便利かどうかは知らんけど、こんなのはある。
ttp://www.autohotkey.com/docs/SmartGUI/

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

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

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


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

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/10(金) 18:04:06 ID:ovxrZJOi0]
例えば?



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

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

591 名前:588 mailto:sage [2006/03/10(金) 20:41:18 ID:DvP0u0ni0]
>>589
If(WinActive(........) || WinActive(..........) || WinActive(..........) || ..)
などの時です

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

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

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

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

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

596 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/11(土) 12:52:01 ID:aZXYdYak0]
Send, {ALTDOWN}`{ALTUP}
こう書くんじゃないの?

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

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/11(土) 17:28:31 ID:/NprAL2G0]
`は``とエスケープしないと

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



600 名前:yy [2006/03/12(日) 00:18:28 ID:gfXzHMTR0]
書き忘れましたが、エクセルでの話です。

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

602 名前:592 mailto:sage [2006/03/12(日) 01:48:47 ID:flSoepXq0]
>>598
できました!!
RAlt:: Send, {ALTDOWN}``{ALTUP}
これで右AltでIME On/Offができるようになりました。

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

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

603 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/12(日) 12:01:42 ID:7/ujbqoZ0]
そういうのはマウ筋使った方が早いな>yy

604 名前:592 mailto:sage [2006/03/12(日) 12:11:54 ID: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 mailto:sage [2006/03/12(日) 13:37:35 ID:MzJzCq0O0]
>>604
+CapsLock::
GetKeyState, state, CapsLock, T
MsgBox, %state%
Return

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

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

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

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

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/13(月) 14:00:56 ID:HyKmrYHA0]
WinGetPosじゃ駄目なん?

608 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/03/13(月) 18:33:26 ID:+eLuhcrb0]
Guiの方ばっかり見てて
Windows関係の命令見てませんでした。

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

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が送られるお。なんだこれって感じ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<298KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef