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


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

AutoHotkey スレッド part5



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/28(月) 15:48:16 ID:LAzeYh1N0]
(テンプレ>>1)
■公式
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/

関連リンク>>2以降も参照

225 名前:名無しさん@お腹いっぱい。 [2008/03/06(木) 08:54:13 ID:BV4oMbN/0]
ahkのexeを元のテキストファイルに戻すにはどうしたらいいですか?


226 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 12:04:27 ID:lRZgq2Fj0]
>>223
それでもわからないです。

アクティブでないソフトにキー連打を投げようと思っているのですが、
とりあえず、1つ投げようと思い、
PostMessage,0x0100,52,0, ,ok.txt - メモ帳 ;0x0100 = WM_KEYDOWN 52 = Rキー

こう書きましたが、動作しませんでした。

どうすればできるでしょうか?

227 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 16:35:44 ID:xNYWdmgs0]
>>225
公式にあるますよ
Other DownloadsのとこのScript Decompiler

228 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:22:40 ID:BV4oMbN/0]
>>227
ありがとうございます、そのものずばりがありましたね。

229 名前:名無しさん@お腹いっぱい。 [2008/03/08(土) 00:04:58 ID:xH0DTZtbO]
Send,{a DOWN}
Sleep,2000
Send,{a UP}
こう書いたのですが、aが押されません。
どうすればできるでしょうか?

230 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 00:56:43 ID:DtPLQhIDP]
Send,a

231 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 01:10:49 ID:vkiW+A4s0]
マウスカーソル直下のクラスにキーを送るには何を使えば良いんですか?

232 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 03:52:22 ID:C49QZ/eM0]
まずマウスカーソル直下のクラスを取得して、その取得したクラスに向けてキー入力を送信すれば良いんじゃないでしょうか。

233 名前:名無しさん@お腹いっぱい。 [2008/03/08(土) 07:37:52 ID:xH0DTZtbO]
>>230
あー、いや、押しっぱなしにしたいんです



234 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 07:42:01 ID:DtPLQhIDP]
何のために?
押しっぱなしにしてもキーリピートは発生しないから一回押下するのと変わらないはずだよね?

235 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 08:11:16 ID:xH0DTZtbO]
>>234
キーリピート発生するものだと・・・
じゃあ高速でa連打してるようにするしかないか。

ただ単にShift+a-zを楽にしたかったのですが、諦めます。

236 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 09:35:30 ID:1dCsOj/k0]
やりたいのはキャプスロックなの?

237 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 09:46:12 ID:gdlcsZFD0]
どなたか>>226をお願いします。

238 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 16:32:59 ID:sRcY2mlL0]
>>237
メモ帳にRなんか連打して何がしたいんだ
そもそもRなんてショートカットキーあるか
動かないのもしょうがないだろ
テキスト入力したいならコマンドが違う

239 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 17:15:19 ID:fACAe+Ks0]
>>238
なにがしたいんだって、それは練習作業の「たとえば」の部分だろ。
おまえはツッコミ処が違う。

ただ、>>237みたいに、初回に書き込んだ後、なにも経過を書かず、
アンカーだけで督促するようなゆとりには、アドバイスなんかしたくないが

240 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 17:44:40 ID:gdlcsZFD0]
>>239
ゆとりみたいな催促ですみません。
書く前まではあまり進展がなかったのですが、
入力するキーを変えたり、キーコードをVK_Rなどにしたり、メモ帳以外のソフトに投げてみたり、
WM_CHARAで投げてみたり、KEYUPを追加してみたり、SendMessageで投げてみたり。

少なくとも上のことはしました。
でも反応がないです。
他に試すものはありますか?

241 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 17:50:30 ID:ipRVXXHT0]
公式が落ちててDLできないや

242 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 18:02:45 ID:2YOSdkCz0]
>>240
何がしたいの?具体的にやりたいこと書いたほうがいいよ。

243 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 21:39:03 ID:pv+wG3tD0]
Oblivionってキーカスタマイズできないの?
不便すぎて死ぬ。



244 名前:名無しさん@お腹いっぱい。 [2008/03/08(土) 22:15:46 ID:mQS6JGYG0]
>>242
>アクティブでないソフトにキー連打を投げようと思っているのですが、
そっくりそのままの意味ですが同じボタンを約1〜5万回押さなければならず、
普通にSendで送ってもいいのですがやってる時間がもったいないので、バックグラウンドで放置して投げようかと思っていた次第です。

245 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 22:19:12 ID:fACAe+Ks0]
>>244
「具体的に」

246 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 22:35:47 ID:TbcOcXMf0]
>>116あたりからの流れ見りゃいいんじゃねぇの?

247 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/09(日) 00:15:32 ID:vy5jug8M0]
非アクティブウィンドウに Postするサンプルならホイールリダイレクトあたり探せば出てくるんじゃね?

248 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/09(日) 04:30:03 ID:/EsSZJU/0]
>>244
キーリピートならループ処理じゃね?
Loop, 50000
Send, a

249 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/09(日) 05:36:33 ID:k1HRQwMn0]
何がしたいのなんて関係なくね?
要はできるかできないかだけ
教えてやればいい

250 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/09(日) 10:35:35 ID:xgksTwcV0]
>>249
ソフトによってキーメッセージの受け取り方が違ったりすることはザラだし、
質問者が物凄い効率の悪い方法でやろうとしていて、
その効率の悪い方法について聞いてたりすることもあったりするから、
目的をはっきりさせた上で、自分が試したことを書くってのが答えやすい質問なんじゃない?

お望みのことはこれでできるけど応用は勝手にやっておくれよ
PostMessage, 0x100, 0x41, 0, Edit1, ahk_class Notepad

251 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/09(日) 12:54:57 ID:4SvVAdgeO]
ゲームを操作しながら他の作業ができるようにスクリプト組めますか?
また、どの関数使えばいけますか?

ControlSendは動いてくれませんでした。

252 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 03:41:18 ID:BEWopslV0]
あるウィンドウで任意のキーが押されたとき、常に特定のエディットにフォーカスして
押されたとおりのキーを送りたいのですが、どうするのが上手い書き方でしょうか?
今のところ、↓のように全部のキーを書く方法しかわかりませんでした。

#IfWinActive HogeHoge
HogeSendKey(x)
{
ControlFocus, Edit1
Send, %x%
}
*a:: HogeSendKey("{Blind}a")
*b:: HogeSendKey("{Blind}b")
*c:: HogeSendKey("{Blind}c")
*d:: ......

253 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 13:52:10 ID:BSxkGXvM0]
1.0.47.06



254 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 16:54:27 ID:vUAUq/Eu0]
Caps LockをCtrlに対応させたく思い、
vkF0sc03A::vkA2sc01D

CapsLock::Ctrl

CapsLock::^
としてみましたが出来ません。どうすればいいのでしょう。
教えてください。よろしくお願いします。

255 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 17:24:27 ID:9BCH5cLc0]
>>3

256 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 19:05:40 ID:Qf9LF4830]
mayu とか KeySwap とか併用が前提だな

257 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 20:06:01 ID:7U86VYG60]
同じキーでSHIFT状態によって別な文字が入る(例:1と!)のを逆転させる方法はないものかって
ずっと心の片隅に引っかかってたけどやっとこさ見つけられて(NT系限定だけど)とってもハッピー
SendしてからRemapすればよかったのか

!::Send, 1
1::!


258 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 22:34:56 ID:ffMlG0e60]
>>254
自分はChgKeyというソフトで無変換に変更してから、
AHK上で無変換キー(SC79)としてつかってる。
(ちなみに英語キーボードなので無変換は空キー)

259 名前:名無しさん@お腹いっぱい。 [2008/03/11(火) 18:46:36 ID:8hd1Vj+m0]
ALT+左ドラッグで表示画面移動
→ホイールドラッグで実現したく、

MButton::Send, {Alt} down {LButton} down
MButton up::Send, !{LButton} up

など試しましたが、押した瞬間しかALTが押されていないようです。
どこを変えたらよいか教えてください。

260 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/12(水) 09:38:42 ID:7Sj/8niq0]
ちょっと質問します。
"アクティブウィンドウ以外を最小化"を行いたく、以下のようなスクリプトを書いたのですが、、、

WinGetActiveTitle, title
WinMinimizeAll
WinActivate, %title%

なぜか自分の環境ではWinMinimizeAllが効かずこの方法は断念しました。
それとは別に、一瞬にしてもアクティブウィンドウは最小化させたくはないので(上記のスクリプトはきっとチカチカする)
できればループ処理でアクティブウィンドウ以外を最小化させたいのですが、
全ウィンドウのコレクションを取得する方法が思いつかず、かつ見つけることもできませんでした。
AHK達人の皆さま、お知恵を拝借できないでしょうか。

261 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/12(水) 09:55:52 ID:BBn5kDvF0]
Winget list

262 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 01:55:46 ID:X0LgGNT60]
キー操作じゃなく
ControlClick, X座標 Y座標, Jane Doe Style, , LEFT, , NA
ってな感じにツールバーボタンをクリックしてやる操作だと
Janeをバックグラウンドで動かせるな
ツールバーにないのはスキンで追加したりして

263 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 04:22:47 ID:w2GTXRhg0]
マウ筋から乗り換え中ですが、躓きました。どうかアドバイスお願いします。

マウス右ボタン+ホイール上下で、キーボードの「カーソル上or下」を送信し、
右ボタンを放したときに、右クリックメニューを{ESC}で消す動作を想定しています。

RButton & WheelDown::Send,{Down}

RButton & WheelUp::Send,{Up}

ひとまずこれで操作はできたのですが、ホイール操作後に右クリックを離すと、
(当然ですが)右クリックメニューが出てしまいます。

マウ筋でいうところの「アクション終了後に実行」に相当する機能で
ESCを送信すれば解決しそうなのですが、それに相当する機能がどうしても
わかりません。

このあと、右クリックを離したときに {Esc} を送信するには、
どう書けばいいでしょうか。


それと、マウ筋の「トグル動作」に相当する機能は、
AutoHotkeyでも可能でしょうか。



264 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 09:02:54 ID:QnXsY3pI0]
調べてもわからなかったので質問します。

X単打→A
X長押し→B

といった風に、特定のキーの単打と長押しで動作を変える方法はあるでしょうか。
教えていただけるとうれしいです。

265 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 11:23:39 ID:t9zhO3C60]
流行らせるページのマウスジェスチャ2なんだけど
explorerにRB_LB_でAlt+F4を送るようにしてあるんだけどマウス直下じゃなくてアクティブウィンドウに利くようになってる。
もちろん設定のアクティブウィンドウをターゲットにするはチェックしていない。
また、ブラウザなどが持っているマウスジェスチャが一部が利かなくなったりする。
どうにかならないだろうか。

266 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 13:33:04 ID:0BKa7fCF0]
Alt+F4の前にWinActiveを書けばいいと思う

267 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 13:33:44 ID:0BKa7fCF0]
WinActivateか

268 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 17:29:36 ID:P6frNnDA0]
RButton & Wheelup::send {Left}
と記述したら、これ以外の右クリック関係が効かなくなってしまいました
以前の動作と共存させるにはどうしたらいいですか?

269 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 18:04:12 ID:m2sf8lzZ0]
まずは落ち着いて流行らせるページを読んだ方が良いと思うよ

270 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 18:06:43 ID:+F3eJm7K0]
アフィを踏まないようにな。

271 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 18:20:10 ID:khMgy4pn0]
>>264
KeyWaitで時間指定してErrorLevelで判断すれば多分出来る

272 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 19:34:39 ID:P6frNnDA0]
~RButton & Wheelup::send {Left}
としたら動くようになりましたが、アクション後に右ボタンを離したらコンテキストメニューが出てしまいます
出さないようにするにはどう記述すればよいですか?

273 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 19:59:10 ID:D9gd79zc0]
KeyA & KeyB::
{
 Some Script
}
$KeyA::Send,{KeyA}



274 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 20:16:57 ID:khMgy4pn0]
なんか、

RButton::
MouseClick, R,,, 1, 0, D
KeyWait, R
MouseClick, R,,, 1, 0, U
return

ってやってもドラッグがうまくいかないな、なんかやり方ある?
どうも、押下時点でメニューとか出るんでKeyWaitがうまく行ってないのかな?

275 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 20:20:29 ID:LGlyJ14t0]
なまず日記のmigemo_isearchを使っている人に質問です。

「[MIGEMO] I-search:」ウィンドウが開いているときに
ブラウザ内のどこかにフォーカスが移ると、検索ワードの
入力待ちから抜けられなくなりますよね。
そこで、とりあえず、自分でフォーカスを移した場合に
ついては以下のようにして逃げていますが、根本的な
解決策が知りたいです。

#IfWinActive ahk_class IEFrame
^s::MIS_IEMigemoISearchForward()

#IfWinActive ahk_class migemo-isearch
^s::MIS_MigemoISearchNextForward()

Esc::
AppsKey::
+f10::
MIS_MigemoISearchClose()
return

*LButton::
MIS_MigemoISearchClose()
MouseClick, Left
return

*RButton::
MIS_MigemoISearchClose()
MouseClick, Right
return
#IfWinActive


276 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/14(金) 20:47:13 ID:P6frNnDA0]
>>273
ありがとうございました m(_ _)m

277 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/15(土) 06:40:10 ID:5wNKe8CI0]
>>274
う・・・わ、恥ずかしい。今ごろ気付いた
R待ってても意味無いよな。RButtonだろ俺
ナンダヨー ニヤニヤ スンナヨー><;

278 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/15(土) 13:25:31 ID:MWOMNoQ50]
xx分をxx時間xx分に換算する関数を作ろうと思い、できたのがこんなんです。
Conversion(origin){
min := Mod(origin, 60)
h := Round((origin - min) / 60)
Return, (hr ? h " h " : "") min " min"
}
いまいちかっこわるいのですが、こんなもんでしょうか。

279 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/15(土) 13:57:40 ID:A+4bfbKP0]
簡単なので言えばこんなのとか
conv(i){
 t = 2000
 t += %i%,Minutes
 FormatTime FormdT, %t%, HH 'h' mm 'min'
 return FormdT
}

280 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/15(土) 20:27:19 ID:LpB2dUsx0]
型定義か、オブジェクト作成が出来ればいいんだけどね
static 変数使えば、private変数みたく出来・・・ないか

ま、そこまで求めるような処理系をやるような言語ではないしな

281 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 02:40:14 ID:PRavS+EG0]
WinGetコマンド等でExclude Titleを指定できますが、
ここで複数タイトルを指定するにはどのようにすればいいでしょうか?

282 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 06:18:08 ID:PRavS+EG0]
>>281
AddGroupでグループ化して、ahk_groupで除外するというのを試みたのですが、うまくいきませんでした。

283 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 20:13:32 ID:L7k3BomJ0]
長押しと独自キーリピートのサンプルクレクレ



284 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 22:17:10 ID:bN/A5LaO0]
Inputbox に数式を入れると、結果を返すだけのツールを
作ったんですが、激しく仰々しくって・・・。もっと簡素に書けませんか?

vk1Csc079 & i::
  InputBox, suushiki, 数式を入力,,, 300, 110, , ,,
  FileAppend, Output:=%Suushiki%`r`n, c:\Enzan.ahk
  FileAppend, Msgbox`,`%Output`%, c:\Enzan.ahk
  Run, c:\Enzan.ahk
  Sleep, 500
  FileRecycle, C:\Enzan.ahk
return

(一行しか式を書き込めないので、拡張性に乏しいです)

285 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 22:28:10 ID:6gu0PBjt0]
なんでFileAppendなんか使うん?

286 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 22:37:17 ID:bN/A5LaO0]
FileAppendしか思い付かなかったので・・。行数制限は外したが。

vk1Csc079 & i::
Loop, 20{
InputBox, Suushiki, 数式を入力(Canselで入力終了),,, 300, 110,,,,,Y:=
If ErrorLevel = 0
{
FileAppend, %Suushiki%`r`n, C:\Enzan.ahk
}
If ErrorLevel = 1
{
FileAppend, %Suushiki%`r`n, C:\Enzan.ahk
break
}}
FileAppend, Msgbox`,`%Y`%, C:\Enzan.ahk
Run, C:\Enzan.ahk
Sleep, 500
FileRecycle, C:\Enzan.ahk
return

287 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 22:44:09 ID:MFHWv9K4P]
>>284
fenrirスレとマルチのうえあっちはほったらかしかよ。死ねよクソガキ。

288 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 23:05:49 ID:6gu0PBjt0]
俺には付いていけん発想だ
炊飯器に乗って隣の家に行くような

289 名前:284 mailto:sage [2008/03/16(日) 23:26:39 ID:bN/A5LaO0]
ID調べる粘着さんに誤爆をマルチ呼ばわりされてしまった。


>>288 ダイヤログボックスに数式を入れて結果を入力させるのが目的です。
上の文ではMsgboxを使っていますが、使用時はクリップボード&貼り付けにしています。

Google窓やCals.exe等では、結果の閲覧までなので一歩進めて入力までやりたくて・・。

290 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/16(日) 23:29:19 ID:EsUPLoeS0]
これはひどい

291 名前:284 mailto:sage [2008/03/16(日) 23:59:55 ID:bN/A5LaO0]
Gui,Edit を出して変数に格納するのですか?

そうだとしても外にAHKを書くためにFileAppend以外に方法はないと思うのですが・・・。

292 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/17(月) 00:32:49 ID:tHZ6lmZ50]
まあ、もう少し付き合うけど
変数に入れてそれをLoop, Parseするのでは何がいかんのか?

293 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/17(月) 01:31:27 ID:5FHlkxSn0]
結果をほかのものに渡すだけならクリップボードを使えば良いだろ。
ClipBoard= %Suushiki%



294 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/17(月) 05:00:44 ID:w3b2p0Pp0]
標準出力でもいいんじゃね

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/17(月) 10:40:11 ID:0WAsk9HL0]
>そうだとしても外にAHKを書くためにFileAppend以外に方法はないと思うのですが・・・。
FileAppend以前にわざわざ外にAHKを書く意味がわからない。

fenrirスレ見てきたけど、IDなんか調べなくてもまんまマルチじゃん。
しかも向うではツッコミ入れられてから誤爆とか言い訳してるし、お前本当クズだな

296 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/17(月) 12:44:41 ID:vyHUZ/Zr0]
数式ならはやらせるページのあぷろだにいくつかあった気がするが

297 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/17(月) 23:36:46 ID:z52UcUVJ0]
>>271
遅くなりましたが、ありがとうございます。

298 名前:271 mailto:sage [2008/03/18(火) 06:36:36 ID:DBpKlb6a0]
>>297
いえいえ

299 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 16:20:40 ID:p9N7Q+240]
Loop の回数を入力して2重ループでキーをsendするマクロを使っているのですが;
たまに回数を間違えて終わるのを待つのがつらいです。
マクロを強制終了する方法はあるのでしょうか?

300 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 17:13:36 ID:5EvAikyp0]
^ESC:: ExitApp とか適当にホットキー設定しておけば?
マルチスレッドで動いてるはずだから多分大丈夫じゃね?

本当にどうしようもない時はタスクマネージャからプロセスの終了で強制終了汁

301 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 19:21:18 ID:+E1ehu8R0]
連打だったら、こんな感じで
規定回数orフォーカスずらしたら終わるようにしてるなぁ

renda(key, cnt) {
 WinGetClass, oCls, A
 Loop, %cnt%
{
  IfWinNotActive, ahk_class %oCls%
  Break,
  Send, {%key%}
 }
 return
}

302 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 21:31:22 ID:qz5VYRvo0]
GetKeyStateで適当なキー押下を調べて
押されてたらBreakするとか

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/18(火) 22:42:31 ID:LmQpgVGGO]
UWSCのMOUSEORGみたいに、
特定のウインドウにキーを送る関数や方法はありますか?



304 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 00:13:54 ID:Qu6VUaAz0]
ありまくり

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 12:12:38 ID:ZHMEY0Ip0]
>>301
ありがとうございます。

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/19(水) 13:45:53 ID:PsQCSOhe0]
>>304
ありがとうございます。

307 名前:TWZmalSIIaso mailto:nel@yhoo.com [2008/03/21(金) 09:05:57 ID:0s2M9jx00]
<a href=imporous.cn/map.html >online</a>
importee.cn/map.html
<a href=importee.cn/map.html >online</a>
jointed.cn/map.html
<a href=jointed.cn/map.html >online</a>
jolite.cn/map.html
<a href=jolite.cn/map.html >online</a>

308 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/22(土) 14:49:01 ID:6t3qgOPy0]
・マウスの中ボタンを押すと、(中ボタンを放した瞬間)検索開始
・マウスの中ボタン+ホイール↓で、検索の次候補(F3)
・マウスの中ボタン+ホイール↑で、検索の前候補(shift+F3)

という動作をさせたいのですが、

MButton::send,^f
MButton & WheelDown::send,{F3}
MButton & WheelUp::send,+{F3}

この3行のうち、下の2行を入れると、
先頭の「中ボタンを押しただけの動作」が無視されてしまいます。

希望する動作にするためには、どう書けばいいでしょうか。

309 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/22(土) 15:15:08 ID:UA/65Cwf0]
単独と&の組み合わせって駄目じゃなかったっけ。
前試して動かなかったような記憶が。

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/22(土) 16:24:18 ID:DRTfcI5V0]
MButton Up::send,^f
でできると思う

311 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/22(土) 20:17:36 ID:0AYJpUnlO]
マウスボタンの配置を入れ替えることはできますか?

a::b
b::a
↑キーボードはできたんですけど

312 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/22(土) 20:59:20 ID:H09tmeZI0]
指をクロス

313 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/23(日) 02:24:18 ID:yu0oJW4R0]
>>311
Windowsの設定で左利き用にするのではだめなのか?



314 名前:311 mailto:sage [2008/03/23(日) 09:32:42 ID:h6Mm6xGhO]
右←→X2を交換したいんです
ロジのトラックボール(ST-45UPi)を購入した
ので親指に左右クリックを集めて使いたいなと
SetPoint+UberOptionsで実現できそうなのですが
できればSetPointとか使いたくないんです。

315 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/23(日) 09:37:41 ID:h6Mm6xGhO]
間違い左←→X2です

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/23(日) 09:57:54 ID:IKb6ZKv10]
SetPointつかったほうがいいんでないかい

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/23(日) 11:37:05 ID:MbnHXQ3d0]
>>308です。

>>309
そのようです。

>>310
これでできました。ありがとうございます。

318 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/23(日) 21:27:50 ID:7xaaJCup0]
>>311
この辺が参考になるかも
www.autohotkey.com/forum/topic26163.html
www.autohotkey.com/forum/topic889.html

319 名前:311 mailto:sage [2008/03/24(月) 11:25:36 ID:Ns5Ryq4zO]
>>318 ありがとう。すごく参考になりました。

一応結果を書いておきます。
飛び先にはいくつか方法が書かれているけど,↓がベターだとおもう。

*LButton::
MouseClick, right,,,,, D
KeyWait, LButton
MouseClick, right,,,,, U
return

*RButton::
MouseClick, left,,,,, D
KeyWait, RButton
MouseClick, left,,,,, U
return

KeyWaitの効果??でマウスジェスチャー,範囲選択も標準同様に動作できた。
ちょっと不満なのは右クリするとコンテクストメニューが表示されたり
されなかったりする。それ以外は期待通りでした。
(再現も規則性があって,右ダブルクリックすれば回避できるけど)

>>316
自分の環境だと突然ALTやCtrlが押された状態になってイライラするから
使いたくないんです。原因もわからないし・・

320 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/24(月) 16:06:20 ID:n1SVzXNB0]
XPSP3日本語版はキーUp/Down情報が正しく返して(>>3)くれる・・・わけないよなぁ

321 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/24(月) 20:59:47 ID:4Vqa4LsF0]
Setpointの押しっぱなし回避のため、Alt/Ctrl/Shift upとSetpoint再起動のスクリプトを書いておくがよろし

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/24(月) 22:08:58 ID:m2WbBKQQ0]
>>319
スレチだけど、押しっぱなしの件うちも起こるなぁ。>Setpoint
まぁ、ごく稀になんで我慢して使ってるけど。MouseWareの頃はこんな事なかったのになぁ。
どれかが押されたままになったら、そのキー(キーボード実体)を適当にポンポン叩いてると
しばらくすれば直るんだけど。
俺は>>321をやってみようかと思う。アイデアどうもありがとう


323 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/24(月) 23:56:48 ID:4Vqa4LsF0]
>>321をやるなら、ホットキーは^!+z::みたいにするのがおすすめ。
押しっぱなしの症状出ていても起動するようにな。



324 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 14:08:04 ID:fKCEZ+8l0]
Ahkファイルを右クリックしたとき出る「edit script」で使用するエディタを変更する方法は何かないでしょうか?

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 16:39:51 ID:/e6R/f5R0]
>>324
俺は↓のレジストリのnotepad.exeの部分を書き換えてる。
他の方法もあるかもしれないけど。ちなみにOSはXP

HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 19:23:22 ID:tZ5Dk9KN0]
>>324
lukewarm.s101.xrea.com/test/read.cgi/bbs/1092315194/107-108


327 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 20:01:12 ID:4sJAnoqM0]
「フォルダオプション」の「ファイルの種類」で
.ahk->詳細設定->Edit scriptいじってもできるよ。

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 20:45:40 ID:v2dURCKr0]
あとは、Menu, Tray, 〜で全部書き換えてしまうとか

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 00:45:10 ID:uloWWH/t0]
Photoshop、Sai、Neko、ComicStudio共通、3分間操作しないと自動保存を行うAutoHotkeyスクリプト
ttp://blogs.yahoo.co.jp/uwsc_script/31579152.html

330 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 10:21:32 ID:rg2QQF050]
雑談していいか?デジ絵業界のこと全く知らんのだが、プロにもAutohotkeyは流行ってるの?浸透する余地はあるの?

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 12:03:00 ID:UhywBhzN0]
プロや同人者じゃないけどフォトショやイラレくらい普通に使うっしょ。ビジネスでも個人でも。

スクリプトに免疫ある云々以前に自動保存は危険だから そうそう需要があるとは思えんし
(保存する気は無いけどちょっと試してみた、っつーような状態でオリジナル更新とかされたら泣ける。
MS-Officeみたいに保存でアンドゥバッファがクリアされるようだとかなりアウチな状況になる)
329のブログの人は元々uwscとかやってるから、浸透させたいとかそういう意図じゃなく
単純に自分が使ってるものを公開してるだけじゃないか?


332 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 12:27:50 ID:XtKWYjkt0]
VAIOノートのボリューム変更が面倒(ミュートボタン+十字キー)なので、ahkでボリュームを変更しようと考えました。
しかし、VistaのせいかVAIOのせいか、XP機では問題なく動作していたコマンド「SoundSet」がまったくききません。

これはVistaで音量管理が変わったせいでしょうか。それともVAIO固有の問題でしょうか。
他にVista機を使ったことがないので、ボリューム関係の命令が通常は問題なくVistaでも動作するのかどうかお教えいただければと思います。

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 12:28:04 ID:rg2QQF050]
イラレを普通の人が使うか?まぁいいや。俺的には糞キーだった無変換と

変換キーがAHKで超活躍したのに感動して、ネタ探しにこのスレに居着いてる。



334 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 13:42:09 ID:s4aoxhYc0]
無変換は使う人は使うらしい。
うちの親父がひらがな確定するのに使ってた。
AHK立ち上げたまま貸したから誤爆しまくってた。

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 14:06:53 ID:aFNDPsi80]
ドロー系ってイラレくらいしか市販ソフトで選択肢なくなってるじゃん
簡単なものならInkscapeとかでも良いけどちょこっと凝ったことやって
印刷所に渡すとかならイラレ一択だよ

普通の人でもちょっと凝ったチラシ程度は作ったりするでしょ?

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 14:20:42 ID:mvQbsgET0]
作業上、定型処理があってマクロが無い場合、
何らかの補助ツールを用いてバッチ的に処理したいと思うのは
当たり前なんじゃないの?

エクセルとかの事務処理ツールは大抵マクロがあるけど、
オーサリングとか描画とかのツールには無いことがあるし。
その場合、キー送信って方法はわかりやすい手法だと思う。

でも浸透はしてないと思う。

>>332
アプリケーション毎に音量を変えられる Vista の仕様には対応してないとか。
つまり、AHKのプロセスのみの音量が変わるだけ。
システム全体のボリュームを変更したい場合は以下のようにして逃げろと書いてある。

@AHK互換モードで動かす
Aボリューム変更キーを変更してシステム全体のマスタ音量を変えるようにする


ttp://www.autohotkey.com/docs/commands/SoundSet.htm
> [Remarks]
> On Windows Vista, SoundSet and SoundGet affect only the script itself
> (this may be resolved in a future version).
> There are at least two ways to work around this:
>
> 1) In the properties dialog for the file "AutoHotkey.exe" (or a compiled script),
>   change the compatibility setting to "Windows XP".
> 2) Have the script send volume-control keystrokes to change the master
>   volume for the entire system. For example:
> (以下略)



337 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 14:22:30 ID:oolhOgY80]
>>334
俺も無変換に機能を割り当ててウハウハ気分。
だが、あるとき「あれ?ひらがなにならねぇじゃん」というシーンがちらほら。

・・・あれだけ邪魔扱いしていた無変換キーを、
無意識のうちに微妙に使ってたことに驚愕した。ごめんよ無変換君

まぁ最終的に ~ up で支障のないように割り当てちゃったけど

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 15:23:42 ID:UhywBhzN0]
>>336
コミスタみたいな漫画描き用ツールは使ったことないからわからんが
adobe系ならアクションで操作記憶できるし、jsも使えるからな
外部のソフトでどうこうしようって需要はそんなには高くないんじゃないかな

自分はjsわからんからAHKで適当にやらせちゃったりしてるけど。

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/27(木) 12:16:30 ID:YojpcV9k0]
>>336
なるほど、Volume_Upを送ればいいんですね。助かりました。
AhkがVistaの仕様に対応してくれると面白いんですがね。

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/27(木) 23:12:54 ID:wa/kgMqy0]
>>337
変換中にひらがな なら、Ctrl+u、或いはF6使うとか?
Ctrl+u,i,o,pに慣れたんで、変換中は無変換キー使わないです。

無変換キーは、なまず日記(2005-09-16)参考で(Alt複数回押しが元ネタ)
2度押しでF24キー送ってランチャの呼び出しキーにしてるのと
テンプレにもある無変換+IJKLで↑←↓→にして使ってる。

341 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/27(木) 23:45:44 ID:7ph+A4hy0]
すみません。全くの初心者です。
マウスのX2ボタン+ホイールで水平スクロールさせたいのですが、つまづいてます。
下の表記ではダメなのでしょうか?どの様に表記すれば良いでしょう?

XButton2 & WheelUp::
ControlGetFocus, fcontrol, A
SendMessage, 0x114, 0, 0, %fcontrol%, A

XButton2 & WheelDown::
ControlGetFocus, fcontrol, A
SendMessage, 0x114, 1, 0, %fcontrol%, A

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/28(金) 00:51:14 ID:vippfD4h0]
「アクティブウィンドウのアクティブコントロール」だと
実際はどこにフォーカス当たってるのかわからんよ
マウス下のコントロールハンドル送るほうがまだ確実

MouseGetPos,,,,ctrl,3
PostMessage, 0x114, 0, 0, ahk_id %ctrl%

もしこれでもダメなら対象のコントロールがスクロールに対応してない
(見当違いのコントロールをつかんでしまっている)か、
スクロールハンドルも指定してやらないといかんとかだと思う

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/28(金) 01:09:11 ID:SNoH02TP0]
Mousegesture.ahk使え



344 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/28(金) 08:29:45 ID:1yE4nRrQ0]
>>331
使いにくいインターフェースを使いやすくするのには使っている。

upp.sakura.ne.jp/src/upp16216.jpg
upp.sakura.ne.jp/src/upp16217.jpg
upp.sakura.ne.jp/src/upp16218.jpg


345 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/28(金) 20:40:26 ID:lF6janXs0]
%00%01%12みたいにエンコードされたURL文字列をデコードしたいのですが、
変数に入っているURLをデコードするには、どのようにすればいいでしょうか。

AutoHotkey本家サイトで、下記のサンプルらしきものをみつけたのですが、
AutoHotkey自体にまだ慣れていない状態で。たとえば %abc% という変数に
入れたURLを変換するには、どのように書けば動いてくれますか?


uriDecode(str) {
Loop
If RegExMatch(str, "i)(?<=%)[\da-f]{1,2}", hex)
StringReplace, str, str, `%%hex%, % Chr("0x" . hex), All
Else Break
Return, str
}

www.autohotkey.com/forum/topic18876.html

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 16:33:33 ID:VfpQtKeR0]
これってクリップボード拡張機能があるの?
あるんだったらいくつまでため込んでおけるの?

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 17:02:54 ID:G6elPIP40]
クリップボードをどうにかできる機能はある。拡張は各自で行う。
己の好きなだけためられるようなコードをかけばOK

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 17:59:21 ID:VdXqTZUN0]
cbhistory%num% = cbhistory%num-1%
とか偽配列に溜め込んでいけばいくらでも

349 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 20:14:12 ID:T1+UFJiD0]
例えばあるキーを押したら「○」と入力されるようにするには
クリップボードを使わずにできるの?

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 20:59:51 ID:G6elPIP40]
できるけど全角文字はOSや入力先コントロールによっては化けるよ

351 名前:名無しさん@お腹いっぱい。 mailto:age [2008/03/30(日) 02:53:04 ID:E4XGHc6a0]
アニメ「めぐみ」ダウンロードページ
www.rachi.go.jp/jp/megumi/index.html#ja

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 09:32:11 ID:ltQQNcJf0]
他のスレでAHKを勧められたんで使ってみようかと思っています。
iniファイルに設定を書けって言われたんで記述しようかと思ったんだけど
落としたzipにはiniファイルがありません。
これは自分で作れってことですか?

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 09:55:59 ID:gl83dI/t0]
>>352
初回にAHKを起動したときに自動で作られる
ttp://d.hatena.ne.jp/ka8823ge/20060214



354 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 10:23:13 ID:vGXFRISg0]
練習ならデスクトップで、右クリックして
 [新規作成]→[Autohotkey Script]
と選択して新規ファイル作る。

さらに出来たファイルを右クリックして
 [Edit Script]
を選んで編集する。
たぶんメモ帳で編集となる。

何か書いたら*保存して*からダブルクリックして実行。

後はがんばれ。

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 10:27:04 ID:Ok2aoVwO0]
自分も新参なんでそのへんよくわからんですが、
最近のAHKは、ini ファイルあれば読み込むけど、勝手につくったりはしないのでは。
適当な名前(AutoHotkey.ahkとか) を適当なところに置いて起動時に実行させたほうが、
エディタで編集もしやすいし良いような。

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 10:37:22 ID:UVMk0PgG0]
zip版でも.ahk起動でなかったらini作られると思うけど

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 13:01:06 ID:qN+p1OrA0]
AHKでiniファイルを作って使用する場合
その設定はシステム全体に共通するものになってしまうんですか?
ある特定のソフトではその設定を無効にすることってできますか?

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 15:24:24 ID:Irt6PGPH0]
>>357
システム全体に共通のものにすることも
特定のソフトだけに適用させることも
特定のソフトだけを除外することも

皆できます。

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 16:15:28 ID:WwLdVX2H0]
>>358
そのやり方の書いてあるサイトを紹介してくれませんか?

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 16:47:55 ID:UVMk0PgG0]
>1

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 22:10:05 ID:oszNmWuy0]
さすがに春とは言えひどいのがわくなw

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 22:14:42 ID:mTU/MBw90]
いちいちあおんな

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 22:19:42 ID:JMekhfLu0]
>>350
やっぱり化けますか。
クリップボードに文字入れてペーストするしか方法ないのかな。



364 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 23:35:22 ID:vGXFRISg0]
ttp://lukewarm.s101.xrea.com/myscripts/index.html
の[Sendコマンド用日本語コード変換]

365 名前:名無しさん@お腹いっぱい。 [2008/03/31(月) 23:53:39 ID:I9uPmNx00]
変換キーをシフト+コントロールにしたいんだけど
vk1Csc079::^+
だとうまく動かないんだけどSend使ってもダメだった。
どうやったら出来るの?全然違うことやってるかな…



366 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 00:15:47 ID:Bzz1rfhi0]
おまえら、AutoHotkeyなんてもう腐りきった言語をいつまでも使ってるんじゃない!
これからはJHotkeyの時代だぞ!!
lukewarm.me.land.to/

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 00:28:52 ID:o19x/qgO0]
>>開発途中のため、構想されている機能のうち極一部しか実装されていません。

意気込みはいいが、これじゃな…

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 00:31:29 ID:VxtyJ8oc0]
今日は・・

369 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 00:32:21 ID:taqmYof10]
ぬるたん、何やってんのw

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 01:05:47 ID:+YiplxOD0]
エイプリルフール?
じゃないのね・・・
さすがスクリプトオタク

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 01:49:23 ID:Bzz1rfhi0]
;# MobileSOS.ahk
Gui, 1:+ToolWindow -Disabled -SysMenu -Caption
Gui, 1:Color, FF0000
Gui, 1:Show, X0 Y0 W%A_ScreenWidth% H%A_ScreenHeight%
Gui, 2:+ToolWindow -Disabled -SysMenu -Caption
Gui, 2:Color, 000000
Gui, 2:Show, X0 Y0 W%A_ScreenWidth% H%A_ScreenHeight%
Loop
{
Gui, 1:SHOW
Sleep, 200
Gui, 2:SHOW
Sleep, 200
Gui, 1:SHOW
Sleep, 200
Gui, 2:SHOW
Sleep, 200
Gui, 1:SHOW
Sleep, 800
Gui, 2:SHOW
Sleep, 200
}
Return

Esc::ExitApp

www.forest.impress.co.jp/yashiro/2008/mobilesos.html

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 02:04:47 ID:rprG/suh0]
>>365
AHK勉強中です、正しい書き方でないだろうし
もっとよい記述があると思うんだけど一応書いてみました。
vk1Csc079::
Send,{Shift Down}{Ctrl Down}
loop
{
sleep, 10
GetKeyState, vkstate, vk1Csc079, P
if vkstate=U
{
Send, {Shift Up}{Ctrl Up}
break
}
}
return

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 02:25:34 ID:+YiplxOD0]
>>371
すばやいな
でも、SOSは・・・ーーー・・・だとおもうんだ




374 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 03:41:28 ID:xJn9jWDG0]
画面の特定の場所(たとえば右上)にマウスオーバーしたら、
特定のアプリを最前面表示、みたいにやりたいんですが、
どこかにそういうスクリプト公開されてますか?

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 03:48:29 ID:Bx9nGxi10]
画面端だけならMouseGesture.ahkにある

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 03:51:02 ID:xJn9jWDG0]
なるほど。ちょっと見てみます。

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 03:52:36 ID:Bx9nGxi10]
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 04:02:39 ID:xJn9jWDG0]
         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!
          cト    cト /^、_ノ  | 、.__ つ  (.__    ̄ ̄ ̄ ̄   ・ ・
ミミ:::;,!      u       `゙"~´   ヾ彡::l/VvVw、 ,yvヾNヽ  ゞヾ  ,. ,. ,. 、、ヾゝヽr=ヾ
ミ::::;/   ゙̄`ー-.、     u  ;,,;   j   ヾk'! ' l / 'レ ^ヽヘ\   ,r゙ゞ゙-"、ノ / l! !ヽ 、、 |
ミ/    J   ゙`ー、   " ;, ;;; ,;; ゙  u ヾi    ,,./ , ,、ヾヾ   | '-- 、..,,ヽ  j  ! | Nヾ|
'"       _,,.. -─ゝ.、   ;, " ;;   _,,..._ゞイ__//〃 i.! ilヾゞヽ  | 、  .r. ヾ-、;;ノ,.:-一'"i
  j    /   ,.- 、  ヾヽ、 ;; ;; _,-<  //_,,\' "' !| :l ゙i !_,,ヽ.l `ー─--  エィ' (. 7 /
      :    ' ・丿   ̄≠Ξイ´,-、 ヽ /イ´ r. `ー-'メ ,.-´、  i     u  ヾ``ー' イ
       \_    _,,......::   ´゙i、 `¨ / i ヽ.__,,... '  u ゙l´.i・j.冫,イ゙l  / ``-、..- ノ :u l
   u      ̄ ̄  彡"   、ヾ ̄``ミ::.l  u   j  i、`ー' .i / /、._    `'y   /
              u      `ヽ  ゙:l   ,.::- 、,, ,. ノ ゙ u ! /_   ̄ ー/ u /
           _,,..,,_    ,.ィ、  /   |  /__   ``- 、_    l l  ``ーt、_ /  /
  ゙   u  ,./´ "  ``- 、_J r'´  u 丿 .l,... `ー一''/   ノ  ト 、,,_____ ゙/ /
        ./__        ー7    /、 l   '゙ ヽ/  ,. '"  \`ー--- ",.::く、
       /;;;''"  ̄ ̄ ───/  ゙  ,::'  \ヾニ==='"/ `- 、   ゙ー┬ '´ / \..,,__
、      .i:⌒`─-、_,....    l   /     `ー┬一'      ヽ    :l  /  , ' `ソヽ
ヾヽ     l      `  `ヽ、 l  ./  ヽ      l         )  ,; /   ,'    '^i

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 15:34:48 ID:PbhXdZno0]
SubMakeTxt:
(処理)
FileAppend,%Text%,hoge.txt
Return

このようなサブルーチンで、処理の最中に再び同じサブルーチンが呼び出された場合、
最初に呼び出された方を打ち切って新しく最初からやり直すというのはどう書けばいいんでしょうか。

やりたいのは「さっきのやめて新しい条件でhoge.txt作って」という感じのことです。

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 21:45:56 ID:taqmYof10]
そいつをコンパイルEXE化しといて
呼出し毎にまずプロセスを落としてから処理に入るとか

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 22:27:43 ID:TzLRdUHG0]
偉い先生、教えてください。
スクリプト起動中に Hotstring の設定を書き換えられますか?
たとえば
#Hotstring C
 ↑
 ↓
#Hotstring C0
などとトグルしたいんですが。

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/01(火) 23:35:42 ID:iDdNVKh40]
>>364
ありがとう!

383 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 17:23:33 ID:WduZd3PH0]
AHKでマウスのスクロールボタンを押した
動作を設定したいんですがそれってできます?
テンプレにある流行ページ見たんですが
ボタン押しのキーリストがありませんでした。
やりたいことはスクロールボタンを押したまま
スクロールさせてアプリを切り替えたんです。



384 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 17:24:05 ID:WduZd3PH0]
× 切り替えたんです。
○ 切り替えたいんです。

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 19:30:07 ID:wPtPDyuj0]
下の二行で頭がくらっと来た。

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 20:57:10 ID:XEaurMqJ0]
エディタや入力部分等で選択している範囲の文字列中の一番右側の数値を1増やすのってどうやればいいんですか?

file-01.txt

を選択して実行すると

file-02.txt

になるような感じです

387 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 21:08:44 ID:2iojmLuY0]
>>386
正規表現で数字部分だけ引っこ抜いたらどうでしょう

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 22:43:10 ID:d+HQvHP20]
Alt や Ctrl や Shift を素早く二回押しして
クリップボードとかを立ち上げようと思っているのですが、
こういう「連続押し」はどうすれば良いのでしょうか?

(窓使いの憂鬱スレで聞いたら「AHKが得意だよ」と言われてやって来ました)

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/03(木) 00:02:45 ID:nVgIA2Ke0]
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1092315194/16
その他

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/03(木) 01:29:40 ID:k0tD4Xy50]
>>389
どうもありがとうございます。
これに何か書き加えれば
連続押しでアプリを呼び出したりできるんですね。
ちょっと勉強してみます。
詰まったらまた質問させて頂きますので
その時はお願いします。

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/03(木) 23:44:41 ID:2gOsBbkj0]
リファレンス見てて
Exp() ネピア数eのべき乗を返す関数
を見たときに自分の限界を感じた
商業科卒でろくな数学教わってこなかったから
単語調べても説明文から理解できないという詰みっぷり
例題とかどういう時に使うのかないから
プログラミングできなくてもこれ使えばなんとかなるかなフフンって思ってた自信が崩れた
理系の学校に行っとけばよかったと思ったよ後の祭り

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 00:45:32 ID:7zeiblG+0]
>>389のURLで紹介されていた

~CTRL::
if A_PriorHotkey <> %A_ThisHotkey%, return
if A_TimeSincePriorHotkey > 400, return
;some action


return

に、現在クリップボードを呼び出すショートカットである
Ctrl+D を試しに割り当てて呼び出したいのですが、
どうすれば良いでしょうか?
(高校中退の僕にはプログラミングは難し過ぎでした)

393 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 11:01:00 ID:pBB/Zv3r0]
リファレンスの Send の項を見て来い
わからないんならお前には無理、あきらめろ



394 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 17:41:26 ID:1bP2SCxJ0]
>>391
eなんて理系でも使わないとこじゃまったく使わねぇよw

ってか何でそんなもんを調べてるんだ?
「米の炊き方が知りたいのですが鉄の熱伝導率を調べても私には意味がわかりませんでした」って言ってるようなものだぞ

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 18:04:46 ID:G2g11yCV0]
"e"をネピア数っていうんだ。知らんかった。一応理系の大学でたけど。
てか、数学をコテコテいじるようなところじゃなかったしな。

自然対数の"底"って書いてあれば、高校数学程度って分かるんだが。
数Uくらいか?(ってか今、数Uってあんのか・・・?)

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 20:35:03 ID:bHsVIBeM0]
>>394
ちゃうだろ
米の炊き方なら目的がはっきりしてるから鉄の熱伝導率なんて知識が
米を炊く時に必要かそうでないか判断できる
知らないものを調べることになんか疑問あるかね
何か思い立ったときそれが必要だったとして知らなかったら不可能として諦めて損になる

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 20:45:23 ID:bcgYhMW50]
日本語でおk

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 22:48:35 ID:5/uiSusF0]
何か不幸な生い立ちでも?

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 08:23:27 ID:AZM4ch+j0]
Cを始めるときにC言語辞典読破してからハローワールドするみたいな

400 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 10:04:21 ID:8a6N5frDO]
>>396
お前にとってeが必要になる可能性が高いかどうかくらいは今でも判断つくだろ?
おおよそ不必要なら、さっさと基本的な事をマスターして、その後で覚えたらいいやん。

401 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 16:47:46 ID:IvDj1tasP]
覚えたらeやん

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 17:49:22 ID:IwMCZKAQ0]
つくしが引っ込んだぞ、おい

403 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 19:31:49 ID:zWjQS3cI0]
ゴメン



404 名前:名無しさん@お腹いっぱい。 [2008/04/06(日) 21:06:22 ID:FTx5YlaY0]
神様
あるウィンドウがクリックされた時に、
そのウィンドウにあるメニューバーの特定のメニュー項目がdisabledならば、
クリックされなかったことにしてreturnしたいのですが、
どこかにサンプルなどないでしょうか。

たとえばIEがクリックされた時、IEのメニューバー->編集(E)->コピー(C)が
disabledならクリックイベントが発生しないようにしたいです。

エロかっこいい神様、どうかおながいします。

405 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 21:25:26 ID:nrvmy2DX0]
コピー限定だけど、Disableかどうかにかかわらずとりあえず実行して
クリップボードが変更されたなら実行、そうでないなら放置、でいいのでは。

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 21:34:22 ID:FTx5YlaY0]
例は、分かりやすく書いただけなので、「コピー」とは別物です。
フックとかしないとだめなんでしょうか。

エロカッコいい神様、どうかおながいします。

407 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 21:47:07 ID:JhcN1jbX0]
>>404
サブクラス化

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 23:24:36 ID:FTx5YlaY0]
サンプル見つけました。
www.autohotkey.com/forum/topic21451.html
エロスさまどうもあらがとうごあいまさた。

409 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/07(月) 23:41:05 ID:TGYHX9Tn0]
$^f::Send {Right}
として、MS Word 上で ^f のキースクロールをくりかえすと、
たまに (数百回に一回ぐらい) Ctrl-F が入力されてしまうんだけど、
こんなもんなのだろうか?

^v::Send {PgDn}
でも Ctrl-V が入っちゃう。Sleep を入れるともっと悪くなるよ orz



410 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 01:04:03 ID:IhpfBzS20]
AutoHotkeyでも、こういうソースコードっぽいソースを書く人もいるんだな

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 07:59:06 ID:BaKIsNaN0]
素人質問ですが、教えてください。

@ ;右クリック+ホイール↓ = タスク切り替え
  ~MButton & WheelDown:: AltTab

  ;右クリック+ホイール↑ = タスク切り替え(逆順)
  ~MButton & WheelUp:: ShiftAltTab

A ~MButton & WheelDown:: AltTab

   ~MButton & WheelUp:: ShiftAltTab

@の方法で記述すると、ダイアログにアイコンが表示されるんですが
Aだと表示されず、中央ボタンを押したらアプリが切り替わります。
ですのでホイールの意味がまったくないんです。
どこが違うんでしょうか?Aでも@のような操作がしたいんですが。

412 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 08:00:03 ID:BaKIsNaN0]
@のMButton→RButtonに置き換えてください。

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 14:24:21 ID:AbWtGmV70]
IMEが入力中かどうかを判別する方法はありますか?
変換や確定のSpace,Enterとそれ以外を分けたいんです。



414 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 16:01:49 ID:/9Ax63ok0]
IME状態を得るのなら探せば幾つか・・と即レスするところだった。
MS-IMEやATOKがはたらいているかどうか、見るスクリプトは見たことないなぁ。

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 16:52:37 ID:225eMm8v0]
OnかOffかという状態をみるだけならなんとでもなるんですけどね…

416 名前:414考え中 mailto:sage [2008/04/08(火) 18:36:01 ID:/9Ax63ok0]
AutoHotKey Threadの>>591で言われているPixelSearchを
実際に使ってみた。やれないことはなさそう。>>413

;0XC56A31 ←ATOK変換時の色(青) 0XFFFFFF ←未確定時の色(真っ白)
X2:=A_CaretX + 5
Y2:=A_CaretY + 1
PixelSearch, Px, Py, A_CaretX, A_CaretY, X2, Y2, 0X0F0400 ,0
if ErrorLevel = 0
IMEFlag=1
Msgbox, %IMEFlag%

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 00:48:40 ID:8oDip4ta0]
>>413に書いてある内容だけ実現したいなら、
"窓使いの憂鬱が"の方が向いている
だが、Vistaだと厳しいな

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 02:52:04 ID:CYoGSIzg0]
AutoHotkey から Text Services Framework (TSF) は使えないのだろうか?

419 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 21:39:19 ID:Y/Kzcbh10]
最近いじり始めたばかりだが
マウスジェスチャの動作書くのって
素人じゃ難しいかな?
どっかに詳しく書いてあるといいんだが。

420 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 22:30:24 ID:j0FC8OmH0]
>>419
マウスジェスチャならはやらせるページの作者がかなり高性能なものを作ってくれてる
それをいじるなり参考にするなりすべし

421 名前:419 mailto:sage [2008/04/09(水) 23:30:39 ID:Y/Kzcbh10]
一応それ入れて中見てみたけど
もう自分にはチンプンカンプンでした。
a::bみたいな簡単には行かないんですね。

422 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/10(木) 22:18:00 ID:R9AZZFcs0]
RButton →←::〜
みたいな書式なら楽だな

ってか、マウ筋みたいだ

423 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/10(木) 22:35:21 ID:Z+zxLkTQ0]
マウ筋をAHKに移行したいのだがマウ筋でつくった設定が膨大すぎてやる気が起きんw



424 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/10(木) 22:39:41 ID:Ys36v7eM0]
ttp://www.ms.u-tokyo.ac.jp/~abenori/diary_old/200707.html#200707180
こんなんあるな

はやらせるページに比べたらはるかに低機能だが

425 名前:419 mailto:sage [2008/04/10(木) 23:29:26 ID:zeB47hBY0]
>>424

これは具体的にどうすればいいんでしょう?

ラベルで振り分けるようにしてみました.
マウ筋 に近い挙動にしたつもり.これをincludeして,
設定ファイルにはMG_****(****にはジェスチャの動作を入れる)なるラベルを書けばいいです.
プログラム名とかも指定できて,次のような感じ.

426 名前:419 mailto:sage [2008/04/10(木) 23:30:29 ID:zeB47hBY0]
include?
設定ファイル?
ahkに上の文章を書き込むだけじゃダメ?

427 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 03:08:21 ID:uA7AvC520]
自分で試行錯誤できないなら止めとけよ。


428 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 18:19:46 ID:Pc4g0Pb20]
::無変換+E
~vk1Dsc07B & e::Edit
こんなんやってるんだけどIMEオン時にひらがな、カタカナ、半角カタカナと切り替わるんだけど
この切り替わるのを無効に出来ないですか?


429 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 22:53:50 ID:JQHzlaNh0]
>>428
IME側の設定を変えるのが良いかと思う

430 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 23:30:02 ID:1LAD2LgE0]
~消して、IMEがOnかOffかを調べてOnだったら無変換送らないようにするとか

431 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 23:57:14 ID:8JtpLxde0]
>>429
あーそこ忘れた。
ありがとう

430もありがとう


432 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 13:59:42 ID:QOZL0eII0]
メインスクリプトAとサブスクリプトBがあって、それぞれ共通の変数cを使いたいんだが
いわゆる戻り値という形で変数を使いたい場合はどのようにすればいいかな?
今はその方法がわからないので、iniに読み書きすることでどうにか対応してるけど
もっとスマートな方法があったら教えてくれないか
一応スクリプト晒す

A
;回数入力-確認
;c ループ回数
runwait B.ahk
iniread,lc,ahk.ini,変数,c
msgbox,ループ回数 %c%

433 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 14:02:29 ID:QOZL0eII0]
つづき

B
;回数入力
;d ループ回数
loop
{
inputbox,d,回数入力,繰り返す回数を入力(1-999)
;Cancelを押した場合
;iniに0を書き出してmsgbox出してループ脱出終了
if errorlevel<>0
{
iniwrite,0,ahk.ini,変数,c
msgbox,終了します
return
}
;1〜999の数字を入力した場合
;iniにdを書き出してループ脱出終了
if d between 1 and 999
{
iniwrite,%a%,ahk.ini,変数,c
return
}
;1〜999以外の数字を入力した場合
;msgbox出してループ戻り
else
msgbox,回数は1-999の間で入力
}

Bはいろいろなスクリプトで使いまわしたいので
それぞれ独立した形でどうにか実現したいんだ・・・



434 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 17:55:30 ID:KChtUcd/0]
Bを関数化して汎用ライブラリにすりゃいいんじゃないの?
AなりCなり好きなメインスクリプトから Includeして使えばいい

435 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:07:32 ID:dzf8gFoh0]
>>434
(・∀・)デキター
どうもありがとう

436 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:34:07 ID:fqJFcYl60]
このスクリプト(ttp://tryhost.net/~catwalk/?AutoHotKey%2FScript%2FFavoriteFinder#k2e37617)
動いている人いますか?

こちらでは

Error at line 94.

Line Text: List %FAV_DIR%
Error: This line does not contain a recognized action.

The program will exit.

というエラーになってしまうんですが。

437 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:44:44 ID:nEMDvuYT0]
そんな行はないぞ。手を入れてないか?

438 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:46:22 ID:xXoSaRM/0]
変数内の文字列で条件分岐したいのですが、
Tabってどうやって検索すればよいのでしょうか。
\tでも`tでもないんですね。

439 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:54:27 ID:fqJFcYl60]
>>437
FavoriteFinder.ahk の94行目を global List, FAV_DIR に変更したら一応動いたんですが
リストが取得できていないようです。

手を加えたのは12行目のMigemoOpenのところだけです。

440 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 01:01:28 ID:tiSAGbZG0]
>>438
%A_Tab%

441 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 07:48:16 ID:pTaNcO/h0]
;; EBWinで辞書検索
#s::
clipboard=
Send,^c
ClipWait
SetEnv,word,%clipboard%
run,C:\applications\EBWin\EBWin.exe /C=1 /S=%word%
return

442 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 08:27:20 ID:BPEkA5hT0]
>>439
気になったので調べてみたよ。

Files = %Files%%fn%`n

ret = %ret%%FAV_DIR%%item%.url`n



Files := Files . fn . "`n"

ret := ret . FAV_DIR . item . ".url`n"

に変える。

`nが何故か消えちゃって全部つながっちゃうのが原因だったみたい。AHKのバグなのかな??
しかし、作者さんの言うように検索がどうもうまくいかないみたい。

443 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 08:48:06 ID:BPEkA5hT0]
訂正:

ret = %ret%%FAV_DIR%%item%.url`n

の方は修正しなくても大丈夫みたい



444 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 15:59:55 ID:pTaNcO/h0]
>>442-443
ありがとうございます。

まだ使い始めたばかりなんですが色々できて面白そうですね。

445 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 01:51:41 ID:4Mol9YLc0]
Send系で、^や+等の特殊キーやアルファベットの大文字等のShiftを押しながら入力する文字が化けることってない?
^vで貼り付けをしたはずが単にvだけだったり、括弧()を入力したはずが89になったりとか…
Delayの値を増やしても時々発生するしバグなのかな

446 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 09:22:21 ID:Tx6njfDx0]
>>440
助かりました。ありがとうございます。

447 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 18:10:02 ID:VCKaK5TL0]
;Mac用ユーティリティ Smart Scroll X にlogiマウスのフリースピンっぽいことができるスクロールに慣性つける機能があるけど
;Win用ユーティリティでそれができるものがたぶんないと思うので作ってみたがが・・できたものは別物orz

;ホイールを速く回せば連続スクロールに変わり逆回転で止める(連続スクロール中に速度を変えることもできない・・
~WheelDown::
Wheelstate:=1 ; スクロールUpの停止条件
If (A_EventInfo > 2) ; ホイールの速度が設定値を超えると連続スクロール
Loop, 100 { ; 暴走対策・・
Sleep, 30 ; スクロール速度調整用のウェイト
Acceleration:=A_EventInfo*A_EventInfo*A_EventInfo ; スクロール加速度・・とりあえず3乗してみた
Loop,%Acceleration% {
if (Wheelstate=0) ; WheelUpが入力されるとスクロール停止
return ; breakしないでもいいんだろうか?
send,{WheelDown}
}}
return
~WheelUp::
Wheelstate:=0 ; スクロールDownの停止条件
If (A_EventInfo > 2)
Loop, 100 {
Sleep, 30
Acceleration:=A_EventInfo*A_EventInfo*A_EventInfo
Loop,%Acceleration% {
GetKeyState, Wheelstate, WheelDown
if (Wheelstate=1) ; WheelDownが入力されるとスクロール停止
return
send,{WheelUp}
}}
return

; これをもっとまともにできないだろうか・・?

448 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/19(土) 01:18:50 ID:BmW3iOlc0]
~WheelUp::以下の
GetKeyState, Wheelstate, WheelDown
を消し忘れてた・・・それ以前の問題だろうけど・・

449 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/19(土) 02:31:09 ID:iBWV1p7A0]
1) スクロール速度用の変数をグローバル変数でもつ
2) ホットキー設定では、スクロール速度の変数だけを操作して、何も送信しない("~"はつける)
3) タイマで一定のサブルーチンがコールされるようにする
4) 3)で呼ばれるルーチン内で指定の速度分のスクロールをPostMessageで利用して送る
ex) PostMessage,522,%wParam%,%lParam%,%cls%,ahk_id %hwnd%

って感じかなぁ。
トラックポイント派なので検証できず。

450 名前:名無しさん@お腹いっぱい。 [2008/04/19(土) 15:49:36 ID:7DcoF6RP0]
zを押したら
jとvをタイプしてくれるようにするには
どう書けばいいのか教えてください

451 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/19(土) 16:07:29 ID:7DcoF6RP0]
::send,jv

452 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/19(土) 19:35:50 ID:kQy+E4pv0]
なまず日記が復活して、楽しみにさかのぼって読んでたら・・・
もう面白いスクリプトは書いてくれなさそうで残念だ。

453 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/20(日) 06:21:20 ID:QN2yrlSL0]
>>449
よくわからなかったが・・それらのキーワードをヒントに調べてみると
どうやら>>1のなまず日記の中で(3)(4)らしいことやってるようなのでそのあたり参考(むしろパクリつつ)作り直してみた・・・
1;
#Persistent
#MaxHotkeysPerInterval 300
FreeScroll("init",0) ; タイマ0でないと遅くなる・・
FreeScroll("setDefault",1.5,120,1) ; 加速度"1.5",最小スクロール幅"120",スクロール開始速度"1"
return
WheelDown::
FreeScroll("down")
return
WheelUp::
FreeScroll("up")
return
FreeScroll(dir = "", param1 = "", param2 = 0, param3 = 0)
{
static WheelDownCounter ; down方向のホイール割り込み回数
static WheelUpCounter ; up方向のホイール割り込み回数
static Acceleration ; スクロール加速度
static MinimumScrollValue ; 最小のスクロール量(1ノッチ
static FreeScrollSpeed ; 連続スクロールに切り替えるホイール速度
global FreeScrollState ; 連続スクロールの状態 0=通常スクロール,1=連続スクロール開始フラグ,2=連続スクロール中
global ScrollValue ; スクロール量(速度)
global cntrl ; スクロールコントロールウィンドウ?
if(!dir){
if(WheelDownCounter || WheelUpCounter){ ; ホイール入力があったとき
CoordMode,Mouse,Screen
MouseGetPos, posX, posY, window , cntrl, 3 ; PostMessageのために位置とウィンドウを取得
; WinActivate, ahk_id %window% ; ホイールでウィンドウをアクティブにする・・しかしスクロールがガクガクになる



454 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/20(日) 06:21:52 ID:QN2yrlSL0]
;2
ScrollValue := Round((WheelDownCounter ** Acceleration) * MinimumScrollValue * -1) ; スクロール量の計算
ScrollValue := ScrollValue + Round((WheelUpCounter ** Acceleration) * MinimumScrollValue) ; スクロール量の計算
Critical
WheelDownCounter = ; ホイールDownカウンタをリセット
WheelUpCounter = ; ホイールUpカウンタをリセット
Critical, Off
Gosub, FreeScrollCheck ; 条件が面倒なので外に出した・・
}}
else if(dir == "init"){ ; 初期化
Critical
if(!Acceleration)
Acceleration = 1.5 ; 1で加速なし
if(!MinimumScrollValue)
MinimumScrollValue = 120 ; アプリによってはこれより低いとスクロールしないらしい
if(!FreeScrollSpeed)
FreeScrollSpeed = 1 ; 大きいほどスクロール切り替えに要する速度が速くなる
Critical, Off
if(!FreeScrollState)
FreeScrollState = 0 ; タイマ0でないと遅くなる・・
if(!param1)
time = 0
SetTimer, FreeScrollHandler, %time%
}else if(dir == "setDefault"){ ; Defaultの設定
Critical
if(param1 != 0)
Acceleration = %param1%
if(param2 != 0)
MinimumScrollValue = %param2%
Critical,Off

455 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/20(日) 06:22:17 ID:QN2yrlSL0]
;3
if(param3 != 0)
FreeScrollSpeed = %param3%
}else if(dir == "down"){
WheelDownCounter++
if(WheelDownCounter > FreeScrollSpeed && FreeScrollState == 0) ; 連続スクロールのホイール速度取得
FreeScrollState := 1 ; 連続スクロールの開始フラグ
}else{
WheelUpCounter++
if(WheelUpCounter > FreeScrollSpeed && FreeScrollState == 0) ; 連続スクロールのホイール速度取得
FreeScrollState := 1 ; 連続スクロールの開始フラグ
}
if(ScrollValue == 0) ;スクロールしないときは終了。これがないとスクロールバーがアホになる・・
return
WinGetPos,winX,winY,winW,WinH, ahk_id %cntrl% ; コントロールの真ん中の座標・・?
if(posX == "")
posX := winX + winW // 2
if(posY == "")
posY := winY + winH // 2
wparam := (posY << 16) | (posX & 0xffff)
lparam := ScrollValue << 16
PostMessage, 522, %lparam%, %wparam%, , ahk_id %cntrl%  ; メッセージを送りスクロールする
if(FreeScrollState == 0) ; 通常スクロールのときはメッセージを送ったあとスクロール量をリセット
ScrollValue := 0
sleep,20 ; 増やすとスクロールは荒くなるが重いウィンドウでのスクロール停止が早くなる
return
}
FreeScrollCheck:
{ ; 通常スクロール以外の条件分岐
if(FreeScrollState == 0) ; 通常スクロールならさっさと抜ける

456 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/20(日) 06:23:08 ID:QN2yrlSL0]
;4
return
if(FreeScrollState == 2 && FreeScrollValue > 0 && ScrollValue < 0){ ; 連続スクロールUpをWheelDownで止める
ScrollValue := 0
FreeScrollValue := 0
FreeScrollState := 0
return
}
if(FreeScrollState == 2 && FreeScrollValue < 0 && ScrollValue > 0){ ; 連続スクロールDownをWheelUpで止める
ScrollValue := 0
FreeScrollValue := 0
FreeScrollState := 0
return
}
if(FreeScrollState == 1 && ScrollValue != 0){ ; 連続スクロール開始時
FreeScrollValue := ScrollValue ; FreeScrollValueは連続スクロールの方向を保持しているような・・
FreeScrollState := 2
return
}}
FreeScrollHandler: ; タイマハンドラ FreeScroll()コールするだけ
{
FreeScroll()
return
}

長くなってしまった・・
スクロールがガクガクならずにホイールでウィンドウをアクティブにするにはどうすれば・?
他にもなにかあれば・・

457 名前:409 mailto:sage [2008/04/23(水) 22:41:57 ID:FJVhdogM0]
$^f::
BlockInput On
Send {Right}
BlockInput Off
return

としたら >>409 の問題現象が出なくなった。こんなもんで良いのだろうか…
AHK Version 1.0.47.06

>>445
同じ問題のように思えるので、BlockInput を追加して試してみてくれるとうれしいな。

458 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 01:39:30 ID:TGEhJA8Z0]
エクセルの永遠のテーマである
「入力」モードから、「編集」モードに行く時、
F2押さないと、移行しないっていう面倒な仕様。。

ぐぐるとみんなあの仕様にイライラしてて
でも解決策ないみたいで。

autohotkeyなら、
入力開始したら、左下ステータスの文字を判定して、すぐ編集モードに移るのができそうな気がして。

もし「超々々々々」気が向いたら、誰かあの仕様を回避するスクリプト書いてくれませんか

459 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 14:50:06 ID:6JZuf2bE0]
F1ヘルプさえヌッコロしとけばF2編集は別に苦痛じゃない。
Windows標準ショートカットなので慣れれば忘れることもそうないし。

460 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 16:31:27 ID:LWYvIa7f0]
F2の何が面倒なんだ?
選択項目編集としては標準キーバインドじゃん
せいぜいF2から他のキーに変えたいなら分かるが

モード移行は自覚的に行いたいし自動的に
編集モードとかのほうが糞仕様だと思うが

461 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 16:51:19 ID:4OSW5I0L0]
Vimのノーマルモードくらい非編集時に英数字キーに機能が割り当てられているわけではないし、
こういった直接入力の要望が出てくるのはそんなに不自然なことではないと思うけど…

作ってやれよと言うつもりは毛頭ないけど、なんでも頭ごなしに否定するのはどうなのさ。

462 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 18:02:31 ID:GNgnzel70]
Ctrl+何かにF2を割り当てるような定義じゃ駄目なのか、それほどせっかちさんなのか

463 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 18:07:54 ID:fR4TStBp0]
セルを上書きしたい場合は、一度内容を消すのかな?





464 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 18:13:59 ID:4hZaxx9B0]
AHKで、エクセル中は無変換キーあたりをF2に割り当てたらどうよ?

465 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 05:57:30 ID:reBjcHgv0]
>>458 うちの会社はこうだが、何をぐぐったんだ?みんなってお前一人だろ。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendKeys "{F2}"
End Sub

466 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 12:08:52 ID:SAJE0Db70]
Vistaに導入する際に、UACは特に気にせずインスコしても動きますか?
導入時の注意事項があれば教えてください。

又、mousegesture.ahkをVistaで使ってる人、問題点などないでしょうか?

467 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 12:24:34 ID:UjhgWZ4K0]
CUIのツールが標準出力に吐き出した値を拾って
ahkのGUIでその数値を加工して表示し隊のですが
どうすれば標準出力から拾ってこれますか?

468 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 14:28:05 ID:KqItUE2c0]
スレチだけど、Windows Script HostとかPowerShellを使うほうがいいような

469 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 15:46:22 ID:Bwb7i5Fk0]
>>467
そのCUIのツールは、リダイレクトで結果をファイルにはき出させて、
AHKからそのファイルの中を見る
とか・・・

470 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 16:51:32 ID:ARGm8jsa0]
>>466
基本、あまり問題は起きない。
マウスジェスチャもつかえる。

でもこれまで遭遇した問題は、
ホットキーをランチャーがわりにして、
メッセンジャーを立ち上げようとしたときにものすごいディレイがあるとかだったかな・・・・

とりあえずオフにしてる。

471 名前:466 mailto:sage [2008/04/28(月) 17:56:50 ID:mttKTXzzO]
>>470
ありがと。勢いインスコしてみたがmousegesture.ahkは問題ないみたい。
会社のXPマシンと、ウチの旧XPマシンで2ヵ月ほど前にmousegesture.ahkを導入したらマウスジェスチャ無しで操作するのが厳しくなっちゃって…。
1年程前に買ったVistaマシンはフリーソフトで汚さないwって決めてたんだけど、マウスジェスチャできないから旧マシンを使う頻度の方が高くなっちゃってたんですよ。
これで快適にVistaが使えます。

472 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 19:26:29 ID:UjhgWZ4K0]
>>468,469
ありがとうございます
こういう用途にはahkは向いてないみたいですね
おとなしく標準出力以外の出力方法があるソフトを探すか
他のスクリプト言語に切替えます λ..........トボトボ


473 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 21:32:35 ID:w8H8giGfO]
規制中なので携帯から簡単に。
cmdret.dllを使うと楽。



474 名前:467 mailto:sage [2008/04/29(火) 00:23:17 ID:TKo6PHKn0]
>>473
おお、こういうのがあるんですね
Forumのサンプルコード見ながら頑張ってみます
ありがとうございました

475 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/30(水) 23:31:11 ID:ZElAylVP0]
AHKでコンパイルした実行ファイルを2つ起動していると、
片方で#IfWinActiveが効いた瞬間にもう片方が動作
しなくなってしまうのですが、なぜでしょうか。
Reloadすると動作するようになるのですが、いちいち面倒です。

476 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/01(木) 19:30:50 ID:Fgucx+QS0]
Menu, Showで表示させたメニューなんですが、
キーボードでEscapeキーを押すと消えてくれますが、
Send,{Escape}で消えてくれません。解決策はあるでしょうか?

477 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/01(木) 20:13:18 ID:agwV3sli0]
>>476
別のAHKスクリプトからじゃないと消せないんじゃないだろか。

478 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/01(木) 20:59:51 ID:/6hzVxqK0]
{ESC}
でいいんじゃまいか

479 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 00:25:36 ID:Q776ljbS0]
>>465
そのVBAは矢印キーでセル移動するだけで必ず編集modeになるな
酷すぎるw

480 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/02(金) 05:19:12 ID:34mNTVls0]
AHKスレらしくエクセルのdll呼び出してずばっと解決してくれる神はおらんのか?

481 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/03(土) 09:23:38 ID:4YTov+QA0]
>>458
ttp://www11.axfc.net/uploader/20/so/He_97006.zip DLKey=ahk
あまり試してない。
古いExcel使って試したから新しいExcelだとだめかも。(Excel 2000使用)

編集状態のままセル移動のオマケ付き。
Excelって、テキストデータの切り貼りとか整形ぐらいで たまにしか使ってなかったから
編集状態維持したままセル移動出来ないの知らんかった。

設定はエディタで編集して。

482 名前:481 mailto:sage [2008/05/03(土) 10:39:01 ID:4YTov+QA0]
バグってた
ttp://www11.axfc.net/uploader/20/so/He_97019.zip DLKey=ahk

483 名前:名無しさん@お腹いっぱい。 [2008/05/03(土) 15:49:27 ID:cnmVYKra0]
ウィンドウを垂直方向・水平方向それぞれに
最大化・リストアのトグルをするには
どうすればいいでしょうか?
窓使いの憂鬱でいうところのWindowVMaximize,
WindowHMaximizeを実現したいのですが・・・



484 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/03(土) 20:16:23 ID:8H08QxQU0]
WinGetPosで直近のサイズを取得してクラスやタイトルと一緒に保存、
WinMoveで縦なり横なりを最大化したサイズに変更
戻す時は直近のサイズをまた取得してどちらかがマックスだったら
保存してあるサイズに戻す、とか

485 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/03(土) 21:30:24 ID:g1xl/KBL0]
>>458 出てこい。つか、>>482でも動かない希ガス。

486 名前:481 mailto:sage [2008/05/03(土) 21:45:23 ID:4YTov+QA0]
思い付きで機能追加しまくったんで使いもんにならなくなってた。
ttp://www11.axfc.net/uploader/20/so/He_97128.zip DLKey=ahk

・日本語入力確定の為に[Enter]押しても次のセルに移ってしまう。
・「編集開始1発目のキーが [BS]か[Del]でセルクリア」が不完全。
・[F2]自動モードOff時は「[BS]か[Del]でセルクリア」もOffにした。
・[F2]自動モードをOffにした時、[F2]のホットキーまでOffにしていたので、[F2]で
 編集モードに入った時、「自動でカーソル位置の変更」が機能しなかった。

Excel2000しか試せないからExcelのバージョンによって挙動が違う場合は正直お手上げ。

>>485
全く機能が働かないならバージョン違いによる可能性大。

487 名前:481 mailto:sage [2008/05/03(土) 22:15:29 ID:4YTov+QA0]
Excelのバージョン違いによるタイトル違いの可能性を忘れてた。
125:SwitchMode:
126:  Hotkey,IfWinActive,Microsoft Excel -  <-ここが違うと全部だめ
127:  SetHotKeys(Excel_Label,Excel_HotKeys)

あと、設定にあるクラス名が一致してれば ある程度は動くはず。

488 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 00:13:11 ID:dJtYYrWj0]
斜め黄泉のおっさんですがDLLを1つ作成して
WH_KEYBOARDをグローバルフックをしたらいいとおもうよ
www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm
www.autohotkey.com/forum/topic19367.html

489 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 00:18:30 ID:Jy+nA7+u0]
>>486

458じゃないですが、いただきました。

Excel2000と2003で今のところ問題なし。というほど色々弄くってはいないけど・・・
便利ですねー。今まで無変換キーにF2を割り当てていたのだが、これ使おうかなぁ。
ただ、AHKのスクリプト3つ(内1つはMousegesture.ahk)走らす事になるからちと悩みどころ。
とりあえず様子見てみます〜。




490 名前:481 mailto:sage [2008/05/04(日) 00:47:24 ID:35cVLblb0]
>>488
それ作りはじめに思った。
全文字キー1個1個打ちながら、こんなのタイマー回してExcel見つけたらスレッドフック
かけちった方がはえーなって。処理する必要ないときはスルーすれば済むし。

>>489
2003はOKと。報告d。
#Includeで他のスクリプトのケツに読み込んで、このスクリプトの1番上に適当なラベル名を
付けて、他のスクリプトの起動時にGosubで呼び出せば多分問題なく使えるとおも。

491 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 18:44:02 ID:jcnqkmNH0]
Shift+テンキーの「.」でカンマ「,」を出そうとしていますが
+NumpadDot::,
と記述してもDelete(デフォルトの動作)になってしまいます。
どうすればよろしいでしょうか、お知恵を拝借したいです。

492 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 18:44:52 ID:cGN/EYVF0]
NumLockオフったら

493 名前:名無しさん@お腹いっぱい。 [2008/05/04(日) 22:34:17 ID:ydz3yyO/0]
Spaceと数字のコンビネーションでプログラムを実行しようと
下のように書いたのですが、単にSpaceを入力するとき
キーリピートが利きません。
キーリピートが利くようにはできないでしょうか?

Space & 1:: Run, "c:\path\to\exe"
~Space:: Send, {Space}
~*Space:: return



494 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 23:44:10 ID:KBkpDPw80]
~Space & 1:: Run, "c:\path\to\exe"
だけでいいだろ

495 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 00:34:26 ID:tOYYOoT+0]
>>494
ありがとうございます。できました。
が、当たり前かもしれませんがSpaceを押して1を押す前の間に
Spaceが入力されてしまうんですね。
Spaceを押して直後に1が入力されればSpaceはモディファイアのように働き、
何も入力されなかったときだけSpaceを入力するようにはできますでしょうか?

496 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 01:10:00 ID:Tkv85+Ez0]
なんでSpaceなんて一番使用頻度の高いKeyを修飾keyとして使うという発想が沸くのかが疑問だ…。

497 名前:名無しさん@お腹いっぱい。 mailto:age [2008/05/05(月) 02:14:41 ID:9F1eIESU0]
今Windows標準のデフラグソフト「ディスク デフラグ ツール」を起動させてCドライブの
デフラグが終わったら表示されたウィンドウを閉じて次に自動的にDドライブのデフラグを開始
させるような一見簡単そうなスクリプトを組んでいます。Windows標準のデフラグが2つ同時
や1個目終了ご2個目等のように実行できない為、退席時間が長い場合に有用だと思っています。
スクリプトを晒します。
#persistent
run, %SystemRoot%\system32\dfrg.msc, C:\WINDOWS\system32
;sleep, 2000
setKeyDelay, 200
SetTitleMatchMode, 2
;ifWinActive, ahk_class MMCMainFrame
winWaitActive, ahk_class MMCMainFrame
{
send, {TAB}{SPACE}
}
;winWaitActive, ahk_class #32770
winWaitActive, , 最適化が完了しました
{
msgbox, ココまできたよん
sleep, 500
send, {ALT DOWN}C{ALT UP}
sleep, 200
mouseClick, LEFT, 80, 116
sleep, 200
send, {TAB 2}{SPACE}
}
今のところこんな感じなのですが、どおおおおおおしてもCの最適化終了後の「最適化が完了しました」
ウィンドウをwinWaitActiveで取得できません!ahk_class指定してもダメだし(ahk_class #32770)
ウィンドウタイトルは本体のデフラグと全く同じタイトルなのでいきなり判定されてしまうし、
ウィンドウテキストでチェックかけても取得できず。 lukewarm.s101.xrea.com/commands/WinWaitActive.html を
見てみるとWinTitleとWinTextぐらいでしか指定できないみたいで、打つ手なしと言う感じです。
いくら試行錯誤しても解決できません・・・。ご教示よろしくお願い致します・・・。

498 名前:名無しさん@お腹いっぱい。 [2008/05/05(月) 02:38:52 ID:tOYYOoT+0]
>>494
一番使用頻度が高いので大きくて押しやすくなっているからです。
AHK自体いじり始めたばかりなのですが、
すばやく操作するのに便利かと思いやってみよう思いました。
やはり何らかのモディファイアとのコンビネーションに
するしかないでしょうか?

499 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 02:59:29 ID:3X2C+hLq0]
スペースと1では、間違えて意図しないときそれが作動してしまいそうだなあとすごく思いますよ

500 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 03:05:06 ID:3X2C+hLq0]
>>497
Diskeeper+uwscで似たようなことをやった例
ttp://blogs.yahoo.co.jp/uwsc_script/31027984.html

501 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 03:09:03 ID:M3ocFwX1O]
>>498
つスペースの隣の無変換キー

502 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 03:39:50 ID:M3ocFwX1O]
>>491
たぶん…
左側はShift & NumpadDotにせなアカン。右側は,ってエスケープ必要じゃなかつたっけ?

503 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 07:37:21 ID:7ihOQ5bQ0]
>>497
defrag.exeじゃダメなのかな

自分は JkDefrag 使ってる。これだと JkDefrag.exe -q C: D: だけで期待した動作になる。
Windowsのデフラグよりも速いし、最適化も優れてる。スクリーンセーバ中の動作も可。
ttp://www.kessels.com/JkDefrag/
ttp://pc11.2ch.net/test/read.cgi/software/1169559049/



504 名前:名無しさん@お腹いっぱい。 mailto:age [2008/05/05(月) 10:06:33 ID:9F1eIESU0]
>>500
おお、ちょっと参考になりました。
UWSCのコードは全く知らないのですが、やはりここでも
>Defrid=GetID("Defragmentation Completed","#32770")
のように、ahk_class #32770が動いてますね。Windows標準のデフラグツールだから無理なのかな・・・。

>>503
defrag.exeがありましたねぇ〜、そういえば。すっかり忘れてました。
これだとAHKで書くよりBatで書いた方が早いかな?w

JkDefragですかぁ・・・・ 私はPerfect Disk7.0を今まで使ってましたが、今回このスクリプトを
書いている理由は、Perfect Disk7.0がない環境においてもWindows標準ツールのみで
2つのドライブをデフラグ出来るようにしたかったという経緯があります。
色々教えて頂きありがとうございました。

505 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 10:10:04 ID:igWkcxAk0]
>>504
何かのコントロール(ボタン)が押せるようになってるかどうかで判断したら?
そういう変化があるボタンがこのケースであるかどうかは分からんけど

506 名前:名無しさん@お腹いっぱい。 mailto:age [2008/05/05(月) 10:11:29 ID:9F1eIESU0]
>>503
書いてみた。なんという簡単なコード・・・


@echo off
defrag c: -f -v
defrag d: -f -v
pause

たったこれだけです。こういう用途だとAHK使うよりBatの方がいいですね・・・。

507 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 17:10:54 ID:rXDxE/Vg0]
ファイルのプロパティ-概要の項目を変更したいんだけど
「エクスプローラ起動→ファイル選択が完了している」という前提でしか
ファイルのプロパティを開けなくて困ってます。
理想としては、ファイル名を渡すだけでエクスプローラなどを経由せずに
直接変更したいんだ・・・AHKでそういうことは実現可能?
もし何かしら方法があるのならご教示お願いします。

508 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 17:41:03 ID:igWkcxAk0]
すぐ上に出てるだろ、と思ったらここじゃなくてフェンリルのスレだった

509 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:33:50 ID:o0k8LHCA0]
>>481
ExcelAutoF2.ahkの不具合?報告。
オートシェイプに文字を入れようとすると、「参照が正しくありません」になります。
理屈はわかりませんが、とにかくExcelAutoF2.ahkを走らせた状態でオートシェイプに文字を入れようと
するとそうなり、ExcelAutoF2.ahkを落とせば問題ありません。
おそらく関係無いと思いますが、設定は以下の通りです。
Excel_AddMode = 1
Excel_EnterTab = 0
Excel_Space = 1
Excel_HomeOrEnd = 0
Excel_BSDel = 1


510 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:36:10 ID:nXY1j0ks0]
PERSONAL.XLSがおかしいとか?

511 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 00:01:06 ID:o0k8LHCA0]
>>510
うーん、良くわからないけどデフォのままだからなぁ。
会社のPC(Excel2000)と、家のPC(Excel2003)の両方で確認。

今気づいたけど、オートシェイプに文字入力しようとする時にF2を押して入力すると「参照が正しくありません。」
になるんだわ。
だから、ExcelAutoF2.ahkを走らせてるとそうなるってのは当たり前な訳だが、オートシェイプに入力する時はF2
しない様に組めますか〜作者様・・・


512 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 21:02:36 ID:Yjv7RteR0]
FileLoopでディレクトリ内のファイル数でループさせ、ファイル名を変更したいのですが、
正規表現の書き方が理解できていないので、アドバイスいただけるとうれしいです。

やりたいこと

|あいうえお 1話
|あいうえお 2話
|あいうえお 3話
|あいうえお 10話
|
|↓
|
|あいうえお 01話 ←0を追加
|あいうえお 02話 ←0を追加
|あいうえお 03話 ←0を追加
|あいうえお 10話 ←そのまま

条件
 半角または全角スペースの後に半角数字がきて、かつ1桁だったら、
 最初の数字の前に0を挟む

> ;ファイル名変更
> Loop, *.flv,0,0
> {
> NewStr := RegExReplace(A_LoopFileName, "\s\d", "\s0\d", ReplacementCount)
> }

これだと、置換後のデータに \s0\d がそのまま出力されてしまい、うまく動きませんでした。

参考にしたページ
lukewarm.s101.xrea.com/RegEx.html

513 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:03:32 ID:9paZiFl90]
NewStr := RegExReplace(A_LoopFileName, "(\s)(\d)([^\d])", "$10$2$3", ReplacementCount)
でどう?
[スペース][数字][数字以外]の組み合わせにマッチ



514 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:32:32 ID:Yjv7RteR0]
>>513
ありがとうございます。なるほど、こう指定するんですね。
おかげさまで、見通しがつきましたので、これをベースに仕上げていきます。

完璧に成功
 >MIAU 第1回ダビング10シンポジウム 1(sm2097191).flv
 >MIAU 第1回ダビング10シンポジウム 01(sm2097191).flv
 >
 >MIAU 第1回ダビング10シンポジウム 2(sm2097287).flv
 >MIAU 第1回ダビング10シンポジウム 02(sm2097287).flv
 
要検討
 >AC版 ドルアーガの塔 ALLクリア+ZAP 1ゲーム20円(sm2057056).flv
 >AC版 ドルアーガの塔 ALLクリア+ZAP 01ゲーム20円(sm2057056).flv
 >
 >MSX ガルフォース 高画質版 1of2(sm1325845).flv
 >MSX ガルフォース 高画質版 01of2(sm1325845).flv
 >
 >カダッシュ (タイトー・1990.03) 1/3(sm2294905).flv
 >カダッシュ (タイトー・1990.03) 01/3(sm2294905).flv
 
スラッシュがあったら発動しないとか、法則を見つけて例外パラメータで潰す感じですかね

515 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 23:43:59 ID:9paZiFl90]
それはもうフォルダまるごとループかけるんでなく、変更したいファイルだけ選択してやった方がいいんじゃ?
選択してるファイルはCtrl+Cで取得できるんで、それに対してループさせるとか。

516 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 23:49:52 ID:9paZiFl90]
ちなみに、こういったファイルに対する作業をやるために、単機能のahkファイルを作っておいて
XButton1,2にその時々において割り振りを切り替えられるようにしてる。

いまだけXbutton2に 「選択ファイルの更新日時をすべてそろえる.ahk」を割り振ろう、とか

517 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 23:51:17 ID:PU1RHSIV0]
URLの数字を増やしたり減らしたりするAHKで昔苦労したっけ
アレもいろいろ条件が複雑でな

518 名前:481 mailto:sage [2008/05/08(木) 02:14:20 ID:J+Y8vwYQ0]
>>511
遅くなってごめん。
試しにやってみた。[F2]押すとスクリプトに関係なく上の横長のエディットボックスにフォーカスが
移って、その状態で文字入力すると「参照が正しくありません。」と出るんね。

で、左上のセル番号を表示しているコンボボックスの文字列を取得して分岐しようと思ったら、
実際に画面上に表示されている値と、コンボボックス内部の値が一致してなくて苦戦。という状態。
一度コンボボックスにフォーカス当てれば内部の値も更新されるんだけど。

519 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 09:27:37 ID:x5ytqvPG0]
>>517
それやりたかったやつなのですが、できませんでした。
よかったらソースいただけますか?

520 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 19:43:44 ID:J+Y8vwYQ0]
>>511
ttp://www11.axfc.net/uploader/20/so/He_98575.zip DLKey=ahk

標準ツールバー(「上書き」とか「開く」ボタンがあるやつ)の状態を確認してるから、標準ツールバー
が表示されてないとオートシェイプ使用時の不具合は回避出来ない。他は今までどおり。

無駄省き等でちょこちょこいじったからバグあるかも。

521 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 22:38:38 ID:+1iNoZSC0]
てか、コードじゃなくて正規表現だけのような・・・

1個のパターンだけで表現しようとするから難しい(ってか面倒)かと。

「検索パターン」と「置換文字列」をセットにして、
複数のパターンを順次かければいいんじゃないかと。

INIファイルとかにパターンを外だしすると、メンテ性も良さげ。

多重フィルタみたいな感じ。


522 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 01:56:30 ID:oLj4i3l00]
既出だと思うけど、
AHKでコンパイルするとマカフィがウィルスですと
ご認識して、勝手に削除しちゃうんだけど、
AHKで作ったものを安全と認識させるにはどうすればいいのですか?

※マカフィを無効にはしたくないです。

523 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 02:37:57 ID:XMewj1P/0]
UPX圧縮あたりかねぇ



524 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 02:45:37 ID:XMewj1P/0]
よくあるっぽい
ttp://slashdot.jp/security/article.pl?sid=08/03/21/0915246

525 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 05:03:40 ID:QY922Rg80]
まあ実際ウィルスだしな。
キーロガーなんかも簡単に作れちゃうし。

526 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 16:08:49 ID:jBwpf+lE0]
>>525
その論理はおかしい

527 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 16:55:30 ID:idNAx07N0]
ccとかも駄目だな。

528 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 17:34:25 ID:GpewcdJF0]
マカフィーに報告して、埋め込まれたAHKエンジン部分だけで判定しないようにしてもらうとか、
どっか一箇所のフォルダに入れておいて、そこだけスキャンの除外設定すればいいんじゃないかと

529 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 16:01:08 ID:cI06fFxv0]
UPX圧縮じゃなくて、
AHKのエンジンがウィルスチェックに引っかかっている模様。
マカフィーだけでなく、そこいらのウィルスチェックソフトも同様のご認知をしているみたい。
みんなはどうしてるの?

530 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 16:08:02 ID:oHi2W79S0]
圧縮すりゃ回避できるかもね
って>>523は言ってると思うんだが

531 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 16:28:31 ID:wYoClkp80]
>>519
どうせスケベなページ連続で開きたいんだろ?
皆考えることは同じだな
俺はこんなんしか思いつかなかったが、もっと画期的なやつあるなら知りたい

cnt = 0
Loop
{
cnt := cnt + 1
run www.hogehoge.com/sukebe/ero/%cnt%/
sleep 1000
if cnt = 100
break
}

532 名前:名無しさん@お腹いっぱい。 [2008/05/10(土) 16:51:27 ID:pMlcH0Uj0]
ウィンドウを相対的に移動するために下のように書いたのですが、
Win+矢印を押しっぱなしにしたときの動きが遅いです。
1回呼び出されるたびに一瞬ひっかかる感じです。
AHKではこんなものと諦めるしかないでしょうか?

WinMove2(dx, dy)
{
WinGetPos, X, Y, Width, Height, A
WinMove, A, , X + dx, Y + dy
}

#Up:: WinMove2(0, -16)
#Down:: WinMove2(0, 16)
#Left:: WinMove2(-16, 0)
#Right:: WinMove2(16, 0)

533 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 17:26:46 ID:WSeKGJ880]
「おしっぱなし」のときの動作を別に作ればいいんじゃね?



534 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 18:08:35 ID:bkFh+con0]
キーボードの設定でキーリピートを速くする
もしくは
GetKeyStateでキーを監視しつつLoopで回す
SetWinDelayも忘れずに

535 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:14:46 ID:pMlcH0Uj0]
>>533>>534
キーボードのリピート設定はMaxです。
WinDelayがデフォルトで100になってるんですね。
これを2くらいにすることで満足できるレベルになりました。
せっかくなので「おしっぱなし」のときを考慮して書いてみようと思い、
WinMoveをLoopで囲み、下のようにBreakさせようとしたのですが、
無限ループにキーを放してもループからぬけません。
なぜなんでしょうか?

GetKeyState, s, Left
If s = "U"
{
Break
}

536 名前:名無しさん@お腹いっぱい。 [2008/05/10(土) 22:18:14 ID:TEwDHYzo0]
>>531
HTTPでヘッダ取得して200だったらrunするようにすれば?

537 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:20:01 ID:wYoClkp80]
>>536
言ってる意味がわからない・・・

538 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:26:14 ID:mttGHkLM0]
Loopで日本語ファイル名を取得すると、ファイル名が化けますね。

 ;AutoHotkeyで取り扱えないダメ文字ファイルの場合は、処理を飛ばす
 IfNotExist %A_LoopFileName%
 continue

こんな感じで、あるはずのファイルを読んで見つからなかったら処理を飛ばす
という逃げを作りましたが、できればフルに動かしたいです。

日本語を扱えるパッチか、なにか対策はないでしょうか。

539 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:30:40 ID:TEwDHYzo0]
>>537
サーバーにページが存在するかどうか問い合わせて存在したらrunするということ。
www.studyinghttp.net/を読めば出来ると思う。

540 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:43:26 ID:wYoClkp80]
>>539
そういうことしたいわけじゃないよ。

エロページはだいたいパスの最後が連番になってるページが多いので
1〜100までページがあるのがわかってる時、片っ端から開いてくのに使ったりする。
Irvineでダウンするにしてもページ内のjpg数がページによってまちまちだしなw

>>517>>519もそういう事がしたいんだろう?

541 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 23:29:14 ID:cI06fFxv0]
エロを必死に確認したいID:wYoClkp80であった・・・www

542 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 23:30:58 ID:iuOrHl4L0]
なんで一般的なスクリプトで済むことを
AHKでがんばりたがるのかがわからない。

543 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 00:00:09 ID:k8/9xXte0]
>>538
>2の なまず日記 を漁ってみ



544 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 00:23:08 ID:x2ZUK6I60]
>>535
if var = value
なので、その場合は
if s = U
が正しい
あと好みによるけど GetKeyState() って関数も

545 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:30:35 ID:2QK3XTeB0]
>>540
そうそう、連番のエロページを自動でめくってムヒヒwって
ちがわい!

>>536
みたいなことってできるんだ。thx!


546 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:32:46 ID:v6FefRTW0]
>>538
なまずさんのとこの関数は処理が激烈に遅いので、速度を求めるもの(ファイル検索とか)だと目的にあわせて多少技がいると思う。

>>540
1,Alt+DなりでURL拾う
2,そのURLを右から読んで最初に出てきた数字を+1
じゃだめかい?

547 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:50:33 ID:rCs0tb0O0]
文字が化けて困ることをするのなら他のスクリプト言語を選ぶのもひとつの選択ではないか。煽りじゃなく。

548 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:21:15 ID:3yDLllki0]
ttp://lukewarm.s101.xrea.com/myscripts/MouseGesture.html
マウスジェスチャスクリプトで、中央ボタン(MB)のダブルクリックを検知するには
どう書けばいいのでしょうか。
MB _ _ MB _ か、MB _ MB _ か試したけれど動かない…。


549 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:22:35 ID:QLi8tEuC0]
漏れはファイルパスだけダメ文字修正されたヴァージョン使ってるよ
どこで拾ったかは忘れたが

550 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:24:00 ID:QLi8tEuC0]
駄目文字微対策版
ttp://yak.myhome.cx/junks/index.html#ahk.cp932

これだ

551 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 13:22:44 ID:2QK3XTeB0]
>>539
>サーバーにページが存在するかどうか問い合わせて
これってAHKでできるんですか?
URLDownloadToFileは違う気がするし。

552 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 15:12:15 ID:APYiR8av0]
>>544
ありがとうございます。
「"」をはずしてGetKeyStateにPをつけることでうまくいきました。
最初はGetKeyState()を使っていたのですが、
どういうわけかキーを放してもループを抜けないのことがあるので
引数3つ版を使いました。

553 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 16:48:25 ID:UwM9OJqU0]
>>549-550
みごとに動きました!ありがとうございます!結婚してください!

1つ問題を言うなら、AutoHotkeyのトレイアイコンを変更するコマンドで

>Menu,Tray,Icon, .\AutoHotkey.exe,1

という指定をしてるのですが、この行で「アイコンがない」という意味の
エラーが出るようになりました。
しかし、外部のアイコンを指定して回避できました。



554 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 17:53:33 ID:FcY1c5ey0]
エロ画像のURLを連番でムヒヒって、
AHKじゃなくてブラウザ用の拡張ツールとかダウンローダ用つーるのようなきがする、
ってかそうしないとアクション数が多すぎて面倒。
つか、DOM解析したりとか、マウス直下のエレメントから直に実行した方が効率いいし。

そうえいば、Irvineなら
 http://boo.foo.woo.com/hoge/fuga[00-99].jpg
なんてのを、
 http://boo.foo.woo.com/hoge/fuga00jpg
  :
 http://boo.foo.woo.com/hoge/fuga99jpg
って感じに展開してダウンロードキュー作ってくれたはず。

まぁ、Janeとかから間接的に起動させたいならコマンドラインでAHK経由ってものあるが。



555 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 19:22:23 ID:1+Yqvhql0]
AutoHotkeyの「Iniwrite」コマンドで書いたiniファイルは、
keyがない項目は最下部に追加される仕様で、
長く使っているうちに、順番が汚くなってしまいます。

これを、セクションまたはキーの名前でソートさせる方法はないでしょうか。

[セクション1]
abc=0
ghi=0
def=0



[セクション1]
abc=0
def=0
ghi=0

みたいな感じにできるとすっきりするのですが

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 19:43:04 ID:D8UjqaFx0]
>>555
Sort使えばいいんじゃね?一回iniファイルを削除して、ソートしてからIniWrite

557 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 23:53:58 ID:9MCe40FX0]
vk1Csc079 & i:: Send, {Up} などとして、変換キー Down → 「I」キー Down
→ 変換キー Up → 「I」キー Up すると、「i」が勝手に連続で入力され始め
てしまいます。(何か入力すると止まる)
回避方法は無いでしょうか?


558 名前:557 mailto:sage [2008/05/14(水) 01:07:26 ID:/+0yaezS0]
上の質問取り下げます。
キーリピートの補助ツールの影響でした orz


559 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 04:58:57 ID:ZOd/0zb80]
dllcallのつかいかたについて質問です。

流行らせるページのCPU負荷率取得ライブラリがWindows2000で動かないようなので、
このDLLをつかって取得を試みています。

getcpust.dll(WindowsNT/2000/XP/Vista / プログラミング)
>CPUの使用率を取得 (利用例ソースコードつき)
www.vector.co.jp/soft/winnt/prog/se361629.html

それで、下記のように入れてみましたが、

cpu:=DllCall("getcpust.dll\GetCpuStatus") ; get CPU usage

帰ってくる値は常に「1」になってしまい、取得できません。

なお、dllのファイル名を変えたり「GetCpuStatus」を変えると、
1じゃなくてヌルが帰ってくるので、dll自体は認識できているとみて
いいのでしょうか。

DllCallの使い方になれていないのですが、今回の場合は
どのように書けばよいのか、アドバイスをお願いできれば幸いです。

560 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 10:39:48 ID:VPcXWzWx0]
>>559
昔まったく同じ質問があったらしい。
うまくいかない時とかもそうだけど、何度も呼び出すならLoadLibraryしたほうがいいよ

#Persistent
OnExit, ExitSub
hModule := DllCall("LoadLibrary", str, "getcpust.dll")
if hModule=0
{
ExitApp
}
SetTimer, GetCpust, 500
return

GetCpust:
Ret:=DllCall("getcpust\GetCpuStatus", "Int*", cpust, "cdeclInt")
ToolTip, 返値 %Ret%`ncpust %cpust%`nErrorLevel %ErrorLevel%
return

ExitSub:
DllCall("FreeLibrary", UInt, hModule)
ExitApp

561 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 10:52:50 ID:ZOd/0zb80]
>>560
どうもありがとうございます!正常に動きました。

562 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 21:53:23 ID:qEVMeKsk0]
Sendでクリップボードの中身を書き出そうとした時に
2バイト文字が含まれてると正常に書き出せなくない?

563 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 23:10:25 ID:P1pe7NoV0]
つ Send,^v



564 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/16(金) 10:48:47 ID:PH/VxX9w0]
ClassNNの指定方法について質問です。

AutoHotkey付属のAU3_Spy.exeをつかって、
ClassNNを取得するところまでは理解できました。

たとえば下記の例はブラウザのSleipnirですが、マウスカーソルが
FenrirEmbeddedToolBar1の上にあるときのみ、カッコ内のスクリプトを
実行する場合、どのように記載すればよいでしょうか。

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Sleipnir - [WinGet]

>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN: FenrirEmbeddedToolBar1

#IfWinActive ,***** ←たぶんここに何かを記載する
 〜実行したいコマンド〜
#IfWinActive

565 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/16(金) 14:47:34 ID:c9i3EJxT0]
#IfWinActive, Sleipnirのクラス
***::
MouseGetPos, , , , OutputVarControl ,
If Outputvarcontrol = FenrirEmbeddedToolBar1
{実行コマンド}

こうかな、わかりません><

566 名前:名無しさん@お腹いっぱい。 [2008/05/17(土) 12:51:31 ID:cUZz5sdV0]
特定のウィンドウではキー変更せず
それ以外ではキーを変更するにはどうすればよいでしょうか?
下のようにしてみましたが、NotepadでCtrl+Aすると
#MaxHotkeysPerInterval に達してしまいます。
「~」をつけると逆にNotepad以外でもCtrl+Aが入ってしまいます。

^a::
IfWinActive, ahk_class Notepad
Send, ^a
Else
Send, b
Return

567 名前:564 mailto:sage [2008/05/17(土) 13:02:38 ID:l+1Pu63/0]
>>565
ありがとうございます。おかげさまでヒントになり、解決しました。

 MouseGetPos, , , , OutputVarControl ,
 If Outputvarcontrol<>【指定したいClassNN】
  return ;違うなら無効ということで、戻る

 〜以下やりたいこと

これで認識できました。

568 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 14:13:34 ID:hJizOrmY0]
>>566
#IfWinNotActiveじゃだめかい

569 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 15:41:23 ID:cUZz5sdV0]
>>568
ありがとうございます。それでできましたが、
除外したいウィンドウが複数ある場合はどうしたらいいのでしょうか?
単純に #IfWinNotActive を複数書くと
どちらも無効になってしまうようなのですが・・・

570 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 18:26:03 ID:L03/NFhv0]
>単純に #IfWinNotActive を複数書くと
これがよくわからんが

#IfWinNotActive window1
{
#IfWinNotActive window2
{
#IfWinNotActive window3
{
なんとか
}}}

論理条件だとこうなりそうだがこれだとダメなのか?

571 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 20:32:11 ID:/leBUyky0]
つウィンドウグループ

572 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 22:51:18 ID:cUZz5sdV0]
>>570
入れ子にせずに独立に2つ書いてたんですが、
入れ子にしてみるとあとに書いたものしか有効になってないようです。

>>571
こういうのがあるんですね。
ちょっとやってみます。

573 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 01:15:23 ID:jn7VlSlu0]
ショートカットキーで特定のアプリ(Firefoxとか)に対して
タスクトレイに最小化/最大化をトグルするということはできますか?
よろしくお願いします。



574 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 03:25:19 ID:1OtJdJTx0]
Access97のモジュールウィンドウでマウスホイールによるスクロールはできないでしょうか?

Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない
ttp://support.microsoft.com/kb/837910/ja

を試してみたのですがAccess2000以降でないと動かないようなので、とりあえずキーを送るだけのものを書いてみたのですが
どうもいまいちな気がしますので。

#IfWinActive ahk_class OMain
*WheelDown::
Send,{DOWN 2}
return

*WheelUp::
Send,{UP 2}
return
#IfWinActive

575 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 03:29:23 ID:1OtJdJTx0]
ちなみにWheel Redirectorやかざぐるマウスでは動きませんでした。

576 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 04:36:47 ID:87P/lABM0]
>>574
別にその解決法でいいと思うけど、どうしても気になるなら
WM_SCROLLかWM_VSCROLLメッセージをコントロールに送れば良いんじゃね?
「どこでもホイール」がそんなことやってたような。
Access97は触ったことないので上手くいくか分からないけども。

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 09:29:46 ID:1OtJdJTx0]
>>576
ありがとうございます。

しかしどこでもホイールも試してみましたが動きませんでした。
Access2000以降でないとWM_MOUSEWHEELでホイールメッセージを検出できないようです。(よくわかっていませんが)
このあたり
ttp://www.asahi-net.or.jp/~uk8t-ktu/wincode/global/0010.htm
を参考にすればできそうな気もしますが、AHKはまだ使い始めなのでどう書けばいいのかさっぱりな状態です。

578 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 11:25:55 ID:HJA6d0Re0]
>>573
タスクトレイにFirefoxがあるなら最大化、無ければ最小化でいいんじゃないか?
タスクトレイのものを操作するサンプルは流行らせるページにあったはず

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 12:00:49 ID:ab0+UOCY0]
>>577
多分 WM_VSCROLLでスクロールコマンド投げる時にスクロールバーのハンドルを
指定してやらんといかんのじゃないかな。

検証してやりたいけどAccess97はもう持ってないので、この辺り使って自分で試行錯誤してくれ
表示ペインとスクロールバーのクラス名や関係性は Winspectorとかで調べると分かりやすいと思う
ttp://lukewarm.s101.xrea.com/up/file/085.zip

580 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 12:28:21 ID:q+GwzdQJ0]
>>572
Regular Expressions を使うといいんじゃないかな?

SetTitleMatchMode RegEx
#IfWinNotActive ahk_class (window1|window2|window3)

581 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 13:50:53 ID:7i8b10K90]
1つのPCで、複数のAHKスクリプトを動かす際、
ホットキーの優先順位を決めることは可能でしょうか。

PCを起動している間、必ず常駐させるスクリプトが1つある状況で、
たまに使いたいスクリプトをあとから実行して2つ存在させると、
同じ定義下にあるホットキーを入れた際、発動するスクリプトが
不定期に入れ替わるようです。

2つ目のスクリプトが起動している間は、1つ目のホットキーを
無効にさせたいのですが、ネットワークでいう「メトリック」みたいな
動きは、どのように作るのがベストベストでしょうか。

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 14:08:37 ID:1OtJdJTx0]
>>579
ありがとうございます。

ちょっと今Accessの勉強をしないとまずいので暇を見てやってみることにします。
ハンドルやクラス名の取得はClsinfoというのを使っていたんですがWinspectorは細かく調べられていいですね。
かざぐるマウスとかで簡単にいけると思ったんですが甘かった..

583 名前:574 mailto:sage [2008/05/19(月) 19:51:51 ID:xrRjgNKk0]
579でいただいたスクリプトを適当に書き換えてAccess97でもマウスホイールによるスクロールができるようになったので
一応報告しておきます。場当たり的修正なので汎用性は0です。WheelScrool.ahkは93行辺りで変数を初期化しているよう
なので38行辺りの設定が無効になっているような感じです。
--- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007
+++ WheelScrool.ahk Mon May 19 00:41:40 2008
@@ -137,6 +137,11 @@
scmode = 0
}

+ if (ccls = "OModule") ; 追加
+ {
+ scmode = null
+ }
+
if (!scmode)
MOUSEWHELL(ctrl,mx,my,"",AcclSpeed,AcclTOut)
Else SCROLL(ctrl,mode,shwnd,"",ScrlCount,AcclSpeed,AcclTOut)
@@ -283,6 +288,8 @@
ACount := ScrlCnt
Else
ACount += ScrlCnt * ASpeed
+
+ ACount = 3 ; 追加

;wParam: 方向
if (dir = "")

AutoHotkey.iniには以下で
#IfWinActive ahk_class OMain
#Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk
Gosub,WheelInit
#IfWinActive



584 名前:574 mailto:sage [2008/05/19(月) 21:58:09 ID:xrRjgNKk0]
失礼。これだけでいいみたいです。これなら汎用性もありそうです。
--- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007
+++ WheelScrool.ahk Mon May 19 21:53:35 2008
@@ -94,6 +94,7 @@
,VDisavledList, VScroolList, MdiActivateList
,BypassCtlList, NullShwndTabooList, HDisavledList

+ Gosub,WheelInit
CoordMode,Mouse,Screen
MouseGetPos,mx,my,hwnd,ctrl,3
WinGetClass,wcls, ahk_id %hwnd%

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 00:01:32 ID:z9u7+QjX0]
>>583
>WheelScrool.ahkは93行辺りで変数を初期化しているよう
>なので38行辺りの設定が無効になっているような感じです。

そこは関数内でglobal変数を直に使えるよう再宣言してるだけで初期化はされない筈…
一応うちではちゃんと動いてるんだけど、値引き継がれない?
XP SP2 / AHK Version 1.0.47.06

586 名前:585 mailto:sage [2008/05/20(火) 02:08:31 ID:z9u7+QjX0]
ああ解った、AutoHotkey.ini側の記述の問題だわ
AHK常駐時に初期化する前提だから AutoExecute部(ファイル先頭)に書かないとダメ
;--- AutoHotkey.ini ---
#Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk
Gosub,WheelInit

あくまで#IfWinActiveでAccessにのみ適用したいなら WheelScrool.ahkの Hotkeyの前後に入れる
;--- WheelScrool.ahk : Line 77 ---
#IfWinActive ahk_class OMain
+WheelDown:: WheelRedirect(1)
+WheelUp:: WheelRedirect(1)

WheelDown:: WheelRedirect()
WheelUp:: WheelRedirect()
#IfWinActive

ttp://lukewarm.s101.xrea.com/up/file/085.zip
HDD漁ったらロジクールのチルトでの横スクロールのテストとかした時に作った新しいのがあったんで
上げ直しときます。互換リストにOModule追加してみたんで良かったらコメント外して使って見て下さい。
(ちなみに >583 scmode = null は 0でなく "null"という文字列が代入されてる模様)

587 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 20:13:17 ID:zd0pXxS10]
AutoHotkeyで取り扱いたいファイルのハッシュ値を計算するための、簡単な方法はないでしょうか。

@IT:Windows TIPS -- Tips:ハッシュ値を利用してファイルの同一性をチェックする
www.atmarkit.co.jp/fwin2k/win2ktips/597fciv/fciv.html

上記で解説しているマイクロソフト製の「fciv.exe」をRunで渡してみました。

 cmd=fciv.exe "%hashfile%" -xml hash.txt
 runwait %cmd%,,Hide,pid

が、fciv.exe側が日本語のファイル名に対応していないようで、
ほとんどのファイルが、見つからない旨のエラーになってしまいます。
(コマンドラインで渡してもダメだったのでAHkのダメ文字ではないようです)

日本ではfasthash.dllというのが有名のようですが、
dllを使うには、どのように記述すればよいでしょうか。

FastHash.dll
hp.vector.co.jp/authors/VA033110/fasthashdll.htm

588 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 21:11:57 ID:+6tZiYR+0]
>>587
日本語のファイル名に対応していないなら、一時的にAHKでリネームすればいいじゃない。

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 22:00:36 ID:jzwbJ8Aa0]
>>586
わざわざありがとうございます。

かざぐるマウスと併用できるようなのと加速が意外と便利なのでAccess以外にも適用させて使おうと思います。
というかマウスジェスチャーや音量の調節も出来るようだし、AHKがあればかざぐるマウスはいらなそうです。
AHKになさそうなのは設定ダイアログをだしていてもメインウィンドウを動かせる機能ぐらいじゃないかと思います。

590 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 18:01:23 ID:+Xi75qRh0]
PCのビープ音を鳴らす「Soundbeep」って、状況把握に便利なんですが、
鳴らしている間はスクリプトが完全に止まってしまいますよね。

ビープは鳴らすけど、スクリプト自体は止まらせない方法ってありますか?

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 18:02:57 ID:P1fIW2PZ0]
別のスクリプトに書いてRun

592 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 19:29:17 ID:08CXmI6t0]
>>590
SetTimer,Beep,10
Return

Beep:
soundbeep
Settimer,beep,off
return


593 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/21(水) 21:46:37 ID:+Xi75qRh0]
>>591-592
ありがとうございます。うまくいきました。



594 名前:名無しさん@お腹いっぱい。 [2008/05/22(木) 02:08:12 ID:Bhfqc5ef0]
WinXPのエクスプローラーでアドレスバーを非表示にしているとき
ツリービューとフォルダビューの間をTabで行き来しようとすると
ツリービュー→フォルダビューはTab1回でいけますが
フォルダビュー→ツリービューはツリービューを閉じるための×印に
一旦フォーカスがあたるため2回Tabを押さないといけません。
これを1回で行うためにフォルダビューにフォーカスがあるときは
Tabが2回送られるように下のようにしたのですが、
なぜか×印がフォーカスされてしまいます。
どうすればよいでしょうか?

#IfWinActive, ahk_class ExploreWClass
~Tab::
ControlGetFocus, ClassNN
if ErrorLevel = 0
if ClassNN = SysListView321
Send, {Tab}

595 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/22(木) 14:35:58 ID:UGRCaXb90]
tab送りじゃなくてControlにFocusを合わせるようにすれば?

596 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/22(木) 23:25:56 ID:Bhfqc5ef0]
>>595
なるほど
↓でいけました。ありがとうございます。

#IfWinActive, ahk_class ExploreWClass
Tab::
ControlGetFocus, ClassNN
If ClassNN = SysListView321
ControlFocus, SysTreeView321
If ClassNN = SysTreeView321
ControlFocus, SysListView321

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/23(金) 10:45:11 ID:NPhBXbgz0]
デバッグをするため、ウインドウのClassNNが特定の値になっているときに、
ToolTipメッセージをマウスカーソル付近に連続で表示させる動作をさせています。

しかし、マウスカーソルがToolTip自身に乗っかってしまうと、
ClassNNが「特定の値」ではなく、空白になってしまいます。

ClassNNが空白のエリアを除外させたところ、
ToolTip以外の、本当にClassNNが空白の場所との区別ができなくなりました。

ToolTipを表示させる際、ToolTipのClassNNを指定することは可能でしょうか。

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/23(金) 23:56:26 ID:/hthvnSA0]
互換シェル使っててLWinをモディファイアに
いろんなソフト起動させてるんだけど

LWinをちょんと押すだけのときにシェルメニュー
表示とか割り当てたい

でもLWinをモディファイアにしてるバインドと
ぶつかっちゃうんだけどどうしたら解決できるか
わかる人いますか?

599 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 00:14:55 ID:jR+OEghm0]
LoopでGetKeyState取得して
キーが離されるまでのループ回数で分岐とか

KeyWaitで時間指定して
それを越えたときのKeyStateで分岐とか

600 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 01:51:22 ID:kkBoRCJr0]
GUI画面にテキストを表示させた際、操作者がGUIの内容を更新する操作をしたとき、
表示したテキストを別のテキストに置き換えて再描画したいです。

普通に同じ座標にAddで追加すると、前のテキストと重なって表示されてしまいます。

GUI画面を破棄するDestroyを入れるとできますが、画面の全部を作り直すため、
かなりチラついてしまいます。

症状確認用テストスクリプト

 Test:
 loop
 {
 Gui, Destroy
 Gui, Add, Text,,■■■TESTです■■■→%A_Index%
 Gui, Show,,GUIテスト
 sleep,100
 }

これだと、ものすごくチラついてしまいます。
また、Gui, Destroyをはずすと、最初に表示された内容から変わってくれません。 

おそらく、何かやり方があるとは思うのですが、GUI画面の一部の項目を
書き換えて再描画するには、どのように書けばいいのでしょうか。

601 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 02:35:35 ID:kLdoO1vi0]
Gui, Add, Text, vMyText
でテキストを変数MyTextに指定

GuiControl,, MyText, 実際に表示する内容
で書き換える

流行らせるページリファレンスのGUI
OSDサンプルとか見れ

602 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 14:17:41 ID:kkBoRCJr0]
>>601
ありがとうございます。うまくいきました。
100倍くらい速くなりました。

603 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 07:38:54 ID:7/PfvJsA0]
初心者で申し訳ないんですが、
右Alt+jでテンキー1にしたいんですが、
>!j::Numpad1
だと効きません。
j::Numpad1だと問題なく動くんですが、修飾キーをつけたとたん動かなくなります。
Winキー以外のShiftやCtrlでも効きません。何が間違ってるんでしょうか?



604 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 08:14:16 ID:k6NKzcvt0]
98とかME使ってんじゃね

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 15:56:56 ID:7/PfvJsA0]
>>604
流石にそれはないですw俺の環境だけかな?
ノートでNumLockしたくないから、右Altや右Ctrl押してるときだけ有効っぽくしたいんだけど。
あふとかフォトショ使うときに楽になるかなと思ったんだけど。
なぜこんなに難しいんだろ。

606 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 16:43:04 ID:pwVrvVFl0]
>>603
なぜ動かないかはわからんが、
!j::
Send,{Numpad1}
return
で動く。たぶん「仕様」ってやつでは?

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 17:01:33 ID:DsBFwt0y0]
すいません。WheelScroll.ahkですが
Vieasというイメージビューアソフトのマウスホイールでの画像の拡大・縮小が無効になってしまうので
#IfWinNotActive ahk_class Vieas_vwin_class
WheelDown:: WheelRedirect()
WheelUp:: WheelRedirect()

;Shiftホイールで横スクロール
+WheelDown:: WheelRedirect(1)
+WheelUp:: WheelRedirect(1)
#IfWinActive

と書き換えてみたのですが、これだとVieasのウィンドウがアクティブになっているときに下のウィンドウが
マウスホイールでスクロールできません。
マウスホイールが通常動作するクラスを指定するというようなことはできないでしょうか?

608 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 17:03:41 ID:7/PfvJsA0]
>>606
おおっ
>!j::Send,{Numpad1}と
>^/::Send,{NumpadEnter}
で右Altや右Crtlでいけました。有難うございます。
仕様と思います。AHKさいこー。

609 名前:603 mailto:sage [2008/05/25(日) 18:20:04 ID:7/PfvJsA0]
モバイルノートに右Altが無かったし、右Ctrlじゃキーが押しにくいので結局、無変換+でやることにした。
言語の設定で無変換を無効化して無問題。
以下、簡単だし別に使う人もいないだろうけど報告まで。

~vk1Dsc07B & j::Send,{Numpad1}
vk1Dsc07B & k::Send,{Numpad2}
vk1Dsc07B & l::Send,{Numpad3}
vk1Dsc07B & u::Send,{Numpad4}
vk1Dsc07B & i::Send,{Numpad5}
vk1Dsc07B & o::Send,{Numpad6}
vk1Dsc07B & 7::Send,{Numpad7}
vk1Dsc07B & 8::Send,{Numpad8}
vk1Dsc07B & 9::Send,{Numpad9}
vk1Dsc07B & m::Send,{Numpad0}
vk1Dsc07B & .::Send,{NumpadDot}
vk1Dsc07B & @::Send,{NumpadEnter}
vk1Dsc07B & /::Send,{NumpadDiv}
vk1Dsc07B & sc028::Send,{NumpadMult}
vk1Dsc07B & `;::Send,{NumpadAdd}
vk1Dsc07B & -::Send,{NumpadSub}

右Altや無変換でいろいろホットキーを追加してみよっと。

610 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 21:29:11 ID:PNVW0ixZ0]
>>607
VieasのメインウィンドウだとControlが存在せずハンドルが取れてなかったみたい。
コントロールが取れない時はウィンドウハンドルを指定してWHEEL投げるように修正かけました。
ttp://lukewarm.s101.xrea.com/up/file/085.zip


611 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/25(日) 23:50:21 ID:DsBFwt0y0]
>>610
ありがとうございます。動作確認しました。

やっぱりAHKいいですね。アプリケーションを問わずに操作できるのがいい。
自分もいろいろ書けるようになるといいんですけどね。

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/26(月) 23:03:49 ID:xhUv6vGn0]
Guiの質問です。


 Gui, Add, Picture,Section,***

で作成すると、ClassNNに「Static**」という名称が割り当てられますが、
作成したGuiのClassNNを、特定の文字列で指定することは可能でしょうか。

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 01:11:05 ID:0qIAl9sc0]
Excelで平成20年1月1日を ^#Dとホットキーを使った場合に
2008/01/01 とするにはどうしたらいいでしょうか?

#IfWinActive ahk_class XLMAIN
^#D::  このあとどのように記載したらいいか教えてください.
よろしくお願いいたします.



614 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 01:33:15 ID:10H1JCGL0]
2chで使われているような「1201502896」の形式の日付を、
YYYYMMDD形式に変換するには、どのような解決方法が
ありますでしょうか。

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 01:44:23 ID:mvWayqr00]
>>613
Ctrl+CをSendしてStringReplaceしてから
はっつければいいんでは?

>>614
19700101000000 にその数値を秒数で足せば良いんじゃないかな?

616 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 03:35:18 ID:4BLlhUiO0]
窓キーと3を押すのをトリガーにしようとして
# & 3::hogehoge
と書いたらキーボードの3が効かなくなりました。
そこで、
#3::hogehogeと書き直したら直りました。
これは既知の現象ですか?

617 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 03:40:10 ID:4BLlhUiO0]
>>616
間違えた。
窓キーと2をトリガーにしようとして
# & 2と書いたら3のキーが効かなくなった、というのが正しいです。

618 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 03:46:50 ID:Ci2ft8P00]
>>616
一つ目のキー自体のもともとの機能は無効化される。
一つ目のキーにチルダ(~)をつければ、そのキーは無効化されず、普通に入力される。
一つにつけておけば、一つ目のキーが同じほかのホットキーでは指定されていなくても、そのキーは無効化されなくなる。

#はShift+3の#と勘違いされただけ。使い方が間違っている。Win & 3て書かないと。

619 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 04:03:06 ID:4BLlhUiO0]
>>617
連投済まん。
Hotkeys (Mouse, Joystick and Keyboard Shortcuts)のヘルプにあったこれが答えかも。
lose its original/native function when it is pressed by itself
#がある3のキーが効かなくなることが説明できますね。
人騒がせで済みませんでした。夜中にパニックに陥っていたもので。。。(汗

620 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 04:04:31 ID:4BLlhUiO0]
>>618
おっ!書き込んでから発見しました。
こんな夜中にありがとうございます。

621 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 12:14:58 ID:10H1JCGL0]
>>615
ありがとうございます。変換できました。

622 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 13:47:20 ID:3gCvGmfE0]
>>613
^#D:: Send,^1!c{End}!tyyyy/mm/dd{Enter}

んでも IME ONだと失敗するし、素直にExcelマクロで
Selection.NumberFormatLocal = "yyyy/mm/dd"
したほうがスマートだと思うが。

623 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 13:53:59 ID:3gCvGmfE0]
↑はExcel2002の場合ね、他のバージョンだとアクセラレータキー違うかもしれんし上手く動くかわからん。
Winキー発動はできんけどやっぱマクロ作ってでショートカットキー割り当てたほうがいいと思う。



624 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 19:03:51 ID:10H1JCGL0]
・文字列 string を1行ずつループで回す
・取り出した1行にタブが含まれていたら、タブを別の文字「%okikaemoji%」に置き換える
・結果をstringに戻す
・ループをbreakで終了する

という動作を下記の4通りで試しましたが、どれもタブが置き換わってくれません。

1案
 value=`t
 StringReplace, string, A_LoopField,%value%,%okikaemoji%,all

2案
 value=%A_Tab%
 StringReplace, string, A_LoopField,%value%,%okikaemoji%,all

3案
 StringReplace, string, A_LoopField,%A_Tab%,%okikaemoji%,all

4案
 StringReplace, string, A_LoopField,`t,%okikaemoji%,all

どのように書いたら動いてくれるでしょうか。

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/27(火) 20:49:16 ID:mvWayqr00]
AutoTrimをOffにする

626 名前:613 mailto:sage [2008/05/28(水) 05:54:16 ID:vTCC4uvQ0]
皆さん お返事遅くてごめんなさい

>>615
  ありがとうございます

>>622
>>623
 マクロは考えてなかったです.
 AHKにこだわりすぎました
 EXCELマクロでやらせていただきます.
 ありがとうございます.
 

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 14:00:51 ID:b2k6dMVD0]
CTRLのダブルタップを
lukewarm.s101.xrea.com/myscripts/index.html
を参考にしてやってみたんですが、CTRLを少し押し続けた場合も
起動してしまいます。キーリピートのせいだと思うんですが。
>>389も同様でした。

回避策はありますか?

628 名前:627 mailto:sage [2008/05/29(木) 15:45:51 ID:b2k6dMVD0]
キーリピートの設定を遅くしたらましになったんですが、
他のキーは普通にリピートして欲しいです。
CTRLだけリピートを殺すといった事ができるといいんですが。

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 16:59:33 ID:SXLiQ+Fi0]
そもそもCtrlキーにリピートがあるのか?

630 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/29(木) 17:39:08 ID:lv3ZoJSv0]
>>628
lukewarm.s101.xrea.com/commands/KeyWait.html
ここにサンプルある。2カ所KeyWait入ってるけど上は要らんようなキガス


~CTRL::
if(A_PriorHotkey <> A_ThisHotkey){
return
}
if(A_TimeSincePriorHotkey > 400){
KeyWait, Ctrl
return
}
tooltip, double tap!
return

631 名前:627 mailto:sage [2008/05/29(木) 17:55:57 ID:b2k6dMVD0]
>>630
ありがとうございます。
書いてくださった方法でばっちりダブルタップでき、長押しも回避できました。

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 20:08:14 ID:yj8hQgNw0]
DllCallでLCMapStringを使って文字列を操作したいのですが
引数の型がまったくわからず、どうやってもErrorLevelが-2になってしまいます

どう書けばよいのかお教え願えないでしょうか?

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/30(金) 20:47:51 ID:QxYMGk4z0]
非アクティブのiTunesの停止、再生をしたくて↓のようにしてみたんですが
動きません。

#i::
DetectHiddenWindows,On
ControlSend,WinTitle,{Space},iTunes
return

下のようにクラス指定しても無理でした。
ControlSend,,{Space},ahk_class iTunes

試してみたら、そもそもアクティブにしてもだめだったんですが、打開策はありますか?



634 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 08:25:01 ID:KE70yWJA0]
ホットキー以外で初めて書いてみて動作はきちんとするけど、
もっとスマートに書けるんでしょうか?
メモリが2,000か6,000K(1:4の割合で変化)
CPUが0〜4パー
で動いてるんだけど、低スペックってのもあるw(P3-1G)。
プログラミングしたことないんで不安です。

;EBWinが非アクティブになったら終了。
#Persistent
SetTimer , EBWC , 250
return

EBWC:
WinWait , ahk_class EB_POCKET
if ErrorLevel = 0
{
WinWaitNotActive , ahk_class EB_POCKET
if ErrorLevel = 0
{
Process, Close, EBWin.exe
}
}
else
return

635 名前:634 mailto:sage [2008/05/31(土) 09:24:36 ID:KE70yWJA0]
自己解決しました、これでAHKの常時起動しなくて済みます。
スレ汚しごめんなさい。
それとも、まだやりようがあるのかな?・・・わからん。

;EBWinミニウインドー起動が非アクティブになったら終了。
#NoTrayIcon
Run, EBWin.exe -m , C:\Program Files\EBWin
WinWaitActive , ahk_class EB_POCKET
WinWaitNotActive , ahk_class EB_POCKET
if ErrorLevel = 0
Process, Close, EBWin.exe
else
return

636 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 16:10:10 ID:ErfB/+jr0]
>>634
>メモリが2,000か6,000K(1:4の割合で変化)
の意味が全くわからない

そしてスクリプトで何をしようとしてるのか解説が一切ないので、
なにをやってるのかわからない

結論:いくらチラ裏とはいえ、他人にわかるように書きましょう

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 16:21:21 ID:nD99XO9q0]
>>636
正直それはおまえさんの読解力の問題な気が…

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 17:51:19 ID:17jzD8JC0]
繭からやっと移行できたと思ったら
これSynergy経由じゃ動かないのかorz

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/31(土) 19:17:34 ID:nD99XO9q0]
>>638
動いたり動かなかったり。
>>4の無変換+ijklの矢印割り当てくらいなら動いたりするけど、
{Blind}の部分が効かなかったりとか。

640 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 00:07:10 ID:ErfB/+jr0]
プログラムを実行させるとフォーカスを強制的に
フォアグラウンドにしてしまうアプリがあります。

そのアプリをahkからタイマーで呼び出されたのち、呼び出す直前に
作業していた元のウインドウに戻すにはどうしたらいいでしょうか。

その動作を手動で再現させる場合、アプリ呼出し後にALT+TABを押すと
確実に戻れるので、それをAHKで再現できれば解決しそうなのですが。

Run,問題のプログラム.EXE
sleep,2000
send,{ALT DOWN}
sleep,1000
send,!{Tab down}
sleep,1000
send,!{Tab up}
send,{ALT UP}

安全牌で、sleepで余裕を入れてるのですが、タイミングが
合わないことが多く、半分くらいしか成功しません。

641 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 00:32:29 ID:f367mMfv0]
>>640
SleepのタイミングについてはPCスペックや同時に動いてるアプリとの兼合いもあるので
自力で調整値を探すしかない。
だが、ALT+TAB使うより Activeウィンドウ操作系のコマンド使ったほうが成功率は上がると思われ

WinGet, hwnd,ID,A
Run,問題のプログラム.EXE
WinWaitActive,問題のプログラムのタイトル
Sleep,任意の待ち時間
WinActivate,ahk_id %hwnd%

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 12:52:34 ID:+6qJMD7A0]
質問です。
マウスホイールを下に回した場合batu.bmpを探してそこをクリックしたいのですが、全くできません。
拾い物のスクリプトから考えたのですが・・ご教授お願いします。アプリ名はaaaaに置き換えてます。
Loop {
Sleep,10
IfWinActive,aaaa
{
GetKeyState,mbtn,WheelDown,P
if (mbtn="D") {
Loop {
ImageSearch , OutputVarX, OutputVarY, 0, 0, A_ScreenWidth, A_ScreenHeight, batu.bmp
Sleep,100
Send,{LButton}
GetKeyState,mbtn,WheelDown,P
if (mbtn="U") {
break
}
}
}
}
}
#z::Reload
#x::Pause
#e::ExitApp
#r::return
#u::return
#f::return
#m::return
#IfWinActive aaaa
vk1Dsc07B::Send,@

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 13:34:40 ID:0QKb9v/r0]
探した座標使ってないじゃん
MouseClick使え



644 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 13:55:40 ID:Yyr2zU0/0]
なにそのLoop

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 17:51:59 ID:T5SyNYp+0]
Loop,fileなどで読んだファイル名にUnicode文字が含まれると、
「A_LoopFileName」などの変数で、ファイル名のUnicode部分が
ハテナに置き換わってしまいます。

結果、ループの中に居るのに対象ファイルが
見つからない事態になってしまいます。

そこで、ループ中にA_LoopFileNameの実体を読んで、エラーなら、
FileMoveで A_LoopFileName → Unicode部分を削除したA_LoopFileName
とリネームを試みたのですが、Renameする時点で元ファイルが
見つからず、できませんでした。よい解決法はないでしょうか。

なお、対象となるファイルは自分で作成したものではないため、
事前にリネームするのは厳しいという状況です。

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 18:48:58 ID:K9ohG56c0]
「IMEが変換中」という状態を取得したいのだけど、できない。。
誰か俺が調べた限りの情報出すから助けて。

1.AHKのSendMessageを使用する

2.使用する(と思われる)API/WM_IME_COMPOSITION
kumei.ne.jp/c_lang/sdk3/sdk_281.htm
www.winapi-database.com/Message/WM/WM_IME_COMPOSITION.html

おまけ.IMEの参考
lukewarm.s101.xrea.com/up/file/029.zip

つってもこれだけなんだけどね。
もうだめぽ・・・

647 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 18:50:10 ID:K9ohG56c0]
あ、直リンしちゃった。。ごめんちゃい。

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 20:33:23 ID:0QKb9v/r0]
>>645
TransformのUnicode, String
を使えばどうにかならんかね?


649 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 21:06:24 ID:B0W6ZYcf0]
>>646
俺もいろいろ調べたんだけど、
AHKからは他プロセスの入力コンテキストハンドラ hIMC を取得できない
(ImmGetContext が NULL しか返さない) ので、うまくいかないみたい。

ttp://www.zero.co.jp/develop/free/o1/index.html
こんな情報があるけど、俺には使いこなせない orz

650 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 21:25:10 ID:T5SyNYp+0]
>>648
ありがとうございます。
さっそく試してみたところ、transformに渡す対象文字「string」の
内容自体がすでに「?」に変わってしまっているようです。
結果をファイルに書き出して確認したところ、壊れた結果でした。

651 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/02(月) 22:59:30 ID:uDIyl+SM0]
>>645
過去ログ>538-550あたりを読むと幸せになれるかも。試してないからわからんけど

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 00:24:59 ID:8JqjvJlr0]
AttachThreadInputしてみたら?

653 名前:646 mailto:sage [2008/06/03(火) 02:00:34 ID:mB5Ni4140]
>>649 のくれたリンクからファイル落としたんだけど、その中に
>各々のアプリケーションのスレッドはスレッドにアタッチされた複数のIME ウィンドウを持つようになった
って書いてあったので、GetWindowThreadProcessIdとSpy++使って調べてみました。

試しにメモ帳では、「メモ帳」と「メモ帳の入力域」は同じプロセスID・スレッドIDなんだけど、
問題はアクティブウィンドウではなく、IMEのプロセスID・スレッドIDが必要ってことなのかな?

うーん、わかりそうでわからん。。もうなんか今日は1日中これやってるよ。。
こんなにはまるつもりなかったのにな・・・



654 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 02:36:34 ID:5lSXhWR10]
>>653
やっぱり解らないが、
グローバルフックを使うプログラムではDLLを作る必要があるそうな。
ttp://hp.vector.co.jp/authors/VA016117/hook.html

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 04:35:08 ID:gzAwAjm60]
タスクトレイに出たアイコンを左シングルクリックしたとき、
特定のルーチンへ飛ばすことは可能ですか?

右クリックの項目はMenuで表示・追加できますが、
そもそも左クリックの設定は、あるのでしょうか。

656 名前:名無しさん@お腹いっぱい。 mailto:age [2008/06/03(火) 22:54:44 ID:w/zWe+Un0]
AutoHotKeyって標準出力を変数に格納して使う事は出来ないんでしょうか?
コマンドプロンプトに打ち込んだコマンドの標準出力を得るみたいな。
調べてみたところどうにも扱えないっぽいので、仕方なく一時的に作業ファイル・・・
つまり cmd > temp.dat みたいに吐いて、 FileReadLineで一行欲しい部分を読み込んで
対処したのですが、いちいち一時ファイル作るのも大げさかな?と。
その後FileDelete, temp.dat しないといけないし・・・。

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 23:48:20 ID:Qr7ynoy00]
>>656
>>473

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/03(火) 23:55:26 ID:DsQzXGtM0]
うわ、その時お世話になった467ですが
cmdret.dllもよかったけど、流行らせるページの管理人さんが作ったMy Scriptsにある
「プロセスを起動して標準出力を読み書き」の方が外部dllが要らない分使い易いかも

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 00:47:46 ID:IKCvfirm0]
ボタンを多数置くときの、飛び先について質問です。

下記のコードで、ボタンを10個設置します。
Loop,10
 {
 button_no=B%A_Index%
 Gui, Add, Button,G%button_no%,ボタン%A_INDEX%
 }

ボタンが押されたときの飛び先ですが、

B1:
B2:
B3:
B4:
B5:
B6:
B7:
B8:
B9:
B10:
ボタンが押された際に行う処理


10個までならなんとかなりますが、
あまり増えるとソースの可読性が悪くなってしまうので、
この「B1:〜B10:」を1つにまとめて書く方法は無いでしょうか。

参考にしたページ:流行らせるページのGオプション
lukewarm.s101.xrea.com/commands/Gui_Add.html

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 08:45:15 ID:de6Gu0Xr0]
全部同じラベルに飛ばしといて
押されたボタンの名前で分岐すれば

661 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 12:26:20 ID:Vao1bqW80]
タブファイラのX-FinderやTTBaseのUpperDirPluginにウィンドウの余白でクリックとかで上階層に移動するのがあるけど
あれこれツール増やすのもあれなのでAutoHotKeyでやろうと思ったのだが
ウィンドウの余白の検出はどうすればいいんでしょう・・?

とりあえずウィンドウの色で切り替えてやってみた・・
; 1/2
;ホイールクリックでウィンドウの余白なら上階層へ移動・アイコンの上ではダブルクリック
#Persistent
SetTimer,BlankClick,100
return
BlankClick:
{
MouseGetPos,posx,posy,WindowClass,ClassNN,1
IfInString,ClassNN,SysListView32 ; ファイルを開く・・すれば大体SysListView321になるような
{
pgx:=(posx-10) ; カーソル直下だと文字の隙間とかでうまくないので
pgy:=(posy-10) ; カーソルから(-10,-10)〜(+10,+10)を斜めにてきとーに走査
BlankState:=0 ; 0のままなら余白
Loop,20
{
PixelGetColor,undercolor,%pgx%,%pgy%
if(undercolor=="0xFFFFFF") ; ウィンドウの色を変えてると変えないと・
{
pgx++
pgy++
}
else
{
BlankState:=1 ; 別の色にかかったとき適当になんか入れる
break

662 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 12:27:00 ID:Vao1bqW80]
; 2/2
}
}
If(BlankState==0) ; 余白のとき
{
SetMButtonMode:=11 ; Hotkeyの切り替え用 11はBackspace
Hotkey,MButton,On ; ホイールクリックのホットキーを有効に
}
else
{
SetMButtonMode:=1 ; Hotkeyの切り替え用 1はダブルクリック
Hotkey,MButton,On
}
}
else
{
Hotkey,MButton,Off ; ホイールクリックのホットキーを有効に
}
MButton::
{
If(SetMButtonMode==1)
Click,LEFT,,,,2,
else If(SetMButtonMode==11)
Send,{BACKSPACE}
else
return
}

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 16:58:25 ID:de6Gu0Xr0]
#IfWinActiveでやれば?



664 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/05(木) 22:20:16 ID:3BKEexRx0]
その座標をクリックしてみれば、余白だったとき選択項目(フォーカスじゃなく)がゼロ個になるのでは

665 名前:661 mailto:sage [2008/06/05(木) 23:58:37 ID:Vao1bqW80]
MButtonの前の } が1個抜けてた・・

>>663
操作対象がClassNNの時に#IfWinActiveをどのように使うのでしょうか?

>>664
なんらかが選択された状態で余白をクリックしたとき、選択数がゼロ個になるのでは?ということでしょうか
ゼロ個になると思いますが・・そういうことではないとか?

666 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 00:52:21 ID:lKgCTuVw0]
>>665
エクスプローラーの余白ダブルクリックで上階層と理解して最小限でやってみた。
フォルダ選択で1 個のオブジェクトを選択、ファイル選択でファイル情報、余白選択でX個のオブジェクトとステータスバーに表示される。
現状他のホットキー押して左クリックでも発動するけど気になるなら適当に直して下さい。

~LButton::
StatusBarGetText, State,Part1,ahk_class CabinetWClass
If (A_TimeSincePriorHotkey<200 && State<>1 個のオブジェクトを選択)
{
IfInString,State,個のオブジェクト
Send,{BackSpace}
}
Return

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 01:54:43 ID:UApCHu8G0]
AutHotkeyでスクリプトを書き始めました。

デスクトップでダブルクリックした時に、ホットキー(Alt+Numpad1)を実行する
スクリプトを試行錯誤していて、
 ahk_class Progman
での条件判定だとうまくいかなかったところ、>>666のスクリプトを元に、こんな
風にしてみた。

~LButton::
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%
If(A_TimeSincePriorHotkey<300 && color=0x984E00){
Send,!{Numpad1}
}
return

ウチのXPのデスクトップは0x984E00でいいみたいなんだけど、
どんな環境でも、デスクトップ上のダブルクリックを判定できる
ロジックってどんなのがありますか?



668 名前:665 mailto:sage [2008/06/06(金) 09:59:38 ID:89UJiJcz0]
>>666
StatusBarGetTextを使う手がありましたか
ExplorerとBrouseuiはこれ参考にシンプルにできるのがわかりましたが
無数のアプリにある ファイル-開く したときの ahk_class #32770 SysListView321 は対応できないです

>>667
MouseGetPosで拾えるウィンドウIDを
WinGetで調べたデスクトップProgmanのウィンドウIDと比較してみるとか
以下IDのテスト用

~LButton::
MouseGetPos,MouseX,MouseY,WindowID,ClassNN,1
WinGet,DesktopID,,ahk_class Progman
;If(A_TimeSincePriorHotkey<300 && DesktopID==WindowID)
;Send,!{Numpad1}
If(A_TimeSincePriorHotkey<300)
MsgBox,DesktopID %DesktopID% , WindowID %WindowID%
return


669 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/06(金) 10:48:46 ID:P8qHdnIt0]
>>668
問題はデスクトップかどうかの判定じゃないと思うのだが。
>667が言ってるのは多分あんたがつまづいてるとこと同じ

670 名前:665 mailto: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:: 等では途中に左クリック入れるとかしないとそのままではできない・・

671 名前:667 mailto:sage [2008/06/07(土) 01:12:12 ID:93cVi9ld0]
>>670
すごい!デスクトップの色に関係なく動きました!
(ロジックに色判定がないからあたりまえだけど... )

ControlGetを含め、今回出てきた関数を少しずつ把握していこうと思います。

色やステータスバーではなく、コントロールのIDを参照していくのがキモなんですね。

流れをぶった切った質問になっちゃったと思いましたが、意外な関連があり、新鮮な
驚きです。

>>669もありがとうー。



672 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/08(日) 17:38:22 ID:moLBDXbX0]
Autohotkeyは日付の扱いは苦手なようなのですが、
「2008年1月1日の0時から10000秒後の時刻を求めたい」
みたいな感じのものを容易に計算できますでしょうか。
vbsならDateAdd("s", 10000"2008/01/01")で終わりなのですが。

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/08(日) 19:25:46 ID:jZi2GVYs0]
EnvAdd



674 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/08(日) 20:50:51 ID:moLBDXbX0]
>>673
日付計算のオプション合ったんですね。ありがとうございます。

675 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 15:53:58 ID:R3Wd7FZq0]
ControlGetのSelectedでエディットコントロールの選択内容を取得したいのですが、
複数行のテキストを全て選択してる状態だとOutputVarが空になってしまいます。

なんとか正常に取得する方法はないのでしょうか?

676 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 16:42:03 ID:beY3nkeJ0]
空でエラーレベルも正常なら
ControlGetTextで再取得するとか

677 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/09(月) 18:09:39 ID:R3Wd7FZq0]
ControlGetText忘れてましたorz

ErrorLevelも失敗の1が帰ってきますが、その場合はとりあえず
ControlGetTextで取得してPixelGetColorとかで選択状態を判別する事にします。

ご返答ありがとうございました。

678 名前:名無しさん@お腹いっぱい。 mailto:age [2008/06/09(月) 21:10:27 ID:ctvGfYpS0]
FileInstallでファイルを取り込みたいんですが、
取り込みはどうやら成功しているらしい(.ahk状態で実行して正常に実行可能、コンパイルエラーしない
かつ、Ahk2ExeでコンパイルしてEXE化も正常に出来る)んですが、

いざ出来上がったEXEを実行すると、取り込んだファイル全てが
Could not extract file: っていうダイアログが出てきて取り出せません・・・。
コードはこれです

;driverの中身全部を取り込み
;MsgBox, %A_WorkingDir%
FileInstall, driver\setupdrv.exe, \dest\setupdrv.exe, 1
FileInstall, driver\vnccom.sys, \dest\vnccom.sys, 1
FileInstall, driver\vncdrv.dll, \dest\vncdrv.dll, 1
FileInstall, driver\vncdrv.inf, \dest\vncdrv.inf, 1
FileInstall, driver\vncdrv.sys, \dest\vncdrv.sys, 1
FileInstall, driver\vnchelp.dll, \dest\vnchelp.dll, 1

%A_WorkingDir%からの相対パスで指定したいので、MsgBoxで出力してみると 最後の \ までは
入ってませんでしたので、 \dest とdestの前に\をつけてみました。最初は\なしでやってたの
ですが、どうしてもうまく動作しないので・・・。何がいけないんでしょうか?

679 名前:名無しさん@お腹いっぱい。 mailto:age [2008/06/10(火) 21:53:49 ID:SOxaqh3l0]
すみません、文字列の扱いについてお聞きしたいのですが、
どういうときに " "をつけて囲んで文字列と認識させる必要があるのでしょうか?
" " で囲まずにMsgBoxで出しても囲んでMsgBoxで出しても同じ結果が返ってくるかと
思いきや、囲んでないと何も出てこない時もあり、混乱しています。
普通C言語やJavaでは文字列は必ず " " で囲む物ですが、AHKではその辺
どうなってるのでしょうか?例えば
MsgBox, 文字列
だと「文字列」が出力され、
strValue := 文字列
MsgBox, %strValue%
だと空文字・・いやnullなのかな?どっちか分かりませんが「文字列」が出力されずに
何も出てきません・・・。

680 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 22:02:45 ID:fQ25LVyb0]
>>679
× strValue := 文字列
○ strValue = 文字列

:=は、数値の計算結果を代入するときとかに使う。
よって右が文字の場合は、計算のしようが無いので空白になる

681 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/10(火) 22:35:38 ID:BhGK1USa0]
:= 使いたい時こそ " "で囲め

× strValue := 文字列
○ strValue := "文字列"

682 名前:679 mailto:age [2008/06/11(水) 00:28:19 ID:fVOKMAhU0]
レスありがとうございます。
なるほど、分かりました〜。

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 01:01:13 ID:Vk8WnOSz0]
str=hoge (変数strの中にhogeという文字列がある)として、
a=hoge
a:="hoge"
a:=str
a=%str%
以上のaの中はすべて文字列hogeである

また、次のif文もすべて同じ
if a=hoge
if a=%str%
if (a="hoge")
if (a=str)



684 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 02:12:24 ID:6MnSS32m0]
横から見ているだけでも役に立つスレだ

685 名前:679 mailto:age [2008/06/11(水) 07:55:51 ID:fVOKMAhU0]
>>683
おお〜、ありがとうございます〜・・・

なるほど・・・道理で素人の私が混乱するわけですよ・・・
色々な書き方があるんですねぇ・・・。

if(a == "hoge")
みたいな、  =(等しいか?)の変わりに ==(等しいか?)を使っても全く同じですか?
だとしたらどうしてこんな演算子があるんだろうかと・・・。

それと自分で試行錯誤して理解したのですが
Loop, 5
{
でブロック開始しないとLoopは正常に処理されない
Loop, 5 {
で開始するとなんかmissing "{" とかエラーが出て・・・。
でもif文は
if(a == "hoge") {
で開始しても
if(a == "hoge")

686 名前:679 mailto:age [2008/06/11(水) 07:58:36 ID:fVOKMAhU0]
途中で書き込んでしまいました。

でもif文は
if(a == "hoge") {
で開始しても
if(a == "hoge")
{
で開始してもどちらも問題なく動きます。

それとかif(a == str) { と% % で囲まずに変数名指定するだけで中身を見てくれるのに
IfWinExist, str
{
とかだと うまく動作せずに、 IfWinExist, %str% としないとだめのようです。
そしてこの構文も
IfWinExist, %str% {
ってやるとエラーが出て
IfWinExist, %str%
{
ってやると正常に動作するんですよ・・。正直言語仕様を理解するのが凄く大変です・・・。
どうしてこんなにトリッキーなんだろう・・。普通のJavaやCと同じような感じにしてくれれば・・・

687 名前:TpMOPuLyPJNoLl mailto:qzfykuue@vcgqowhp.com [2008/06/11(水) 08:02:18 ID:5Nax1wDx0]
comment2, <a href="www.titaniuexport.kiev.ua">titanium sheets</a>, [url="www.titaniuexport.kiev.ua"]titanium sheets[/url], www.titaniuexport.kiev.ua titanium sheets, >:PPP,

688 名前:yOUAjPuxjrUJV mailto:uvcgwhvk@hgdeslns.com [2008/06/11(水) 08:13:50 ID:+P08aPt30]
comment6, <a href="doorppcpc.com/dinosaurs/coloring-pictures-of-dinosaurs.html">coloring pictures of dinosaurs
</a>, doorppcpc.com/dinosaurs/coloring-pictures-of-dinosaurs.html coloring pictures of dinosaurs
, atbow, <a href="doorppcpc.com/dinosaurs/when-dinosaurs-went-extingged.html">when dinosaurs went extingged
</a>, doorppcpc.com/dinosaurs/when-dinosaurs-went-extingged.html when dinosaurs went extingged
, =[[, <a href="doorppcpc.com/medicine/humphries-medicine.html">humphries medicine
</a>, doorppcpc.com/medicine/humphries-medicine.html humphries medicine
, lsj,

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 09:13:53 ID:FV4NCQQL0]
>>686
始めは %str% しか使えなかったんだよ
わかりにくいからって後から従来言語互換を追加していった結果カオスになった。

ちなみに
if(a == "hoge") だと厳密な文字列チェック(大文字小文字区別)
if(a = "hoge")  はStringCaseSense依存、デフォだと Hoge、HOGE でもOK


690 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 09:52:21 ID:1HOSiKnd0]
後方互換をちゃんと取ってるのはいいけど、古い仕様はobsoleteで非推奨
ってちゃんとドキュメントに書いてくれたらいいのに

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 13:47:40 ID:uoudNQeM0]
そこら辺たしかになんとかして欲しいな。
時々しかスクリプト書かないので
一度覚えてもすぐ忘れて間違えてしまう。

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 14:20:51 ID:OcZxtXTQ0]
>>691
わかる。最初AHKでと思うんだけど、すぐに面倒になってHotKey以外の部分は
UWSCで書き出す自分…

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 15:16:17 ID:JuWezgpD0]
逆に俺はAHKに慣れすぎてたまにvbsとかjsかくと無意識に変数を%で囲ったりしてる



694 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 16:52:35 ID:rC/xuCxH0]
俺も変数の使い方の部分で1週間ぐらい悩んだな
今でもたまに間違うし

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 17:20:20 ID:GfcCYN010]
覚えるのもあほらしいから
毎回何パターンか試して動いたらおkってことにしてるお

696 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 21:16:10 ID:6MnSS32m0]
俺は、%で囲う作業すら面倒になったので、
Win+Vを押すと、クリップボードの内容に%〜%をつけて出力するようにした

string=%Clipboard%
string=`%%string%`%

697 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/11(水) 22:11:00 ID:P7T3f9Wt0]
お前ら丸暗記しようとするから混乱するんだよ
値で扱うか、式で扱うかだけだよ

値で扱う物は文字列は値となるので、変数を使いたい場合に%%で展開しなければならない。
式で扱う物は文字列は変数になってしまうので、文字列を値で扱う為には""で囲まなければならない。

 (値) : (式)
コマンド : 関数
  =  :  :=
  if  :  if()

さらに大まかに分けると、:=と()内は式が使えるとだけ覚えればいい

698 名前:名無しさん@お腹いっぱい。 [2008/06/12(木) 10:10:17 ID:LFiheMSR0]
こんにちは。最近AutoHotKeyを使い始めました。

PDF-XChange Viewer にて、以下のように
スペースキーを右矢印
シフト+スペースキーを左矢印
に置き換えようとしたのですが、
シフト+スペースキーが効きません。

; for PDF-XChange Viewer
#IfWinActive ahk_class DSUI:PDFXCViewer
+Space::Left
Space::Right
#IfWinActive

AutoHotKeyのKey history and script infoでみたいたところ、
Left以外に最初に押したシフトが押されたままになってしまっています。
ところが、PDF-XChange Viewerでは、シフト+右矢印は無効になります。
(右矢印のみは問題ない)
シフト+スペースを押したときに、右矢印のみを押すことはできないでしょうか?
つまり、シフト+スペース時に、シフトを無効にしたいのですが・・・

699 名前:698 [2008/06/12(木) 10:29:25 ID:LFiheMSR0]
これでいけました!

; for PDF-XChange Viewer
#IfWinActive ahk_class DSUI:PDFXCViewer
+Space::
Send {Left}
return
Space::Right
#IfWinActive

お騒がせしました。ご協力いただきありがとうございました。

700 名前:698 [2008/06/12(木) 10:30:33 ID:LFiheMSR0]
あ、returnは余計でしたね。一行でいけるのか
+Space::Send {Left}

701 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/12(木) 18:08:31 ID:FoxozYwL0]
マウスをドラッグ中にカーソルを変更したいのですが、
AHKスクリプト内で、マウスカーソルを変更する方法はありますか?

現在のカーソルの種類を読み出すコマンドはあるようですが、
指定する方法は見つけられない状態でして・・・






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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