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


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

AutoHotkey スレッド part7



1 名前:名無しさん@お腹いっぱい。 [2008/12/31(水) 12:39:34 ID:ROX9gd900]
■公式
www.autohotkey.com/

■解説
AutoHotkeyを流行らせるページ
lukewarm.s101.xrea.com/

■過去スレ
1 pc7.2ch.net/test/read.cgi/software/1098531338/
2 pc7.2ch.net/test/read.cgi/software/1129836713/
3 pc11.2ch.net/test/read.cgi/software/1157043396/
4 pc11.2ch.net/test/read.cgi/software/1184556627/
5 pc11.2ch.net/test/read.cgi/software/1201502896/
6 pc11.2ch.net/test/read.cgi/software/1219130051/

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

263 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 00:39:11 ID:tq73/xcp0]
いや、あらゆる処理が作れるだろ、dll呼び出しもできるし

264 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 00:52:14 ID:P/hV8GiU0]
AutoScriptWriter使えばキーマクロっぽいこともできるんだよな
ほとんど利用したことはないが。

>257
例によってAutoExecuteセクションの記述飛ばしてて引っかかってるんじゃね?

265 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 01:15:10 ID:EUev75pp0]
>>263
確かにそうだけどさ、、AHKの範疇は超えちまうわな


AutoScriptWriter はテキストエディタのマクロみたく操作がコードになってくれるから
全然コマンドを知らない人が後からマニュアル見ながら改変するのには便利かなぁとは思う。
出来たコードはかなりしょっぱいけど・・・
マクロ登録の貧弱さという点で、UWSCとかより弱いと言われている点だな

266 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 09:36:47 ID:PZx5JzBI0]
>>259
(比較的)楽な方法
・キーマクロで何とかする
・適当なダウンローダ探して連携する
・URLDownloadToFile でhtmlを取得して、リンク抽出して個別に落す

そりゃ、comやdll使えば何でも出来るだろうが、
やはりそこは作成者・利用者の技能と、それを現実的なコストで作れるかというのも考慮すべきではないかと。


267 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 12:37:16 ID:P/hV8GiU0]
ああ、ID:EUev75pp0 の言ってるキーマクロっていうのは
Send や MouseClick によるキーエミュレーション動作のことなのか。

まんまエディタのキーボードマクロみたいな、ユーザー操作を記憶して
再実行してくれるものを想像してたから混乱したわ

268 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 04:16:50 ID:CZpXyFEM0]
C などの unless って Autohotkey では使用できないのでしょうか
unless に相当する物をしようしたいときは

if hoge = 1 else
{
msgbox,hello!
}

こういう風に書くしかないのでしょうか
それとももっとスマートな書き方があるのでしょうか

269 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 06:39:35 ID:xPcJgk5F0]
論理否定

270 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 07:54:37 ID:TE2mD3kq0]
if hoge != 1

271 名前:名無しさん@お腹いっぱい。 [2009/02/14(土) 08:20:50 ID:iCnD4vMa0]
>>269-270
ああ、なるほど
単純なことなのに分かっていませんでした
ありがとうございます。



272 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 10:14:14 ID:dHhfIlz20]
>268
C に unless はないべ。Perl とか Ruby にはあるらしいが。

273 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 12:25:08 ID:wQWZhHiF0]
unlessって使う機会ある?
ド・モルガンの法則を使えばいいだけじゃん。

274 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 13:19:42 ID:T1oNA6o40]
iniファイルに書いたkeyをHotkeyにアサインした場合ってどう書くの?

test.ini
+++++++++++++++++++++
[hoge]
Key=#z
+++++++++++++++++++

IniRead, h_key, test.ini , hoge, Key
;MsgBox , "%h_key%" ;ちゃんと値は取得できている

h_key::
;↑ダメ
%h_key%::
;↑ダメ
"%h_key%"::
;↑ダメ

275 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 14:30:36 ID:7OA6UMgE0]
Hotkey, %h_key%, Label で普通に割り当てできるが?

276 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 15:21:43 ID:7uL3RWEi0]
惜しいなぁ。実に惜しい。
まぁ、>>275の言うとおりなんだけど。
ラベルの方を動的に変えようっていうのはちょっと驚いた。

ホットキーラベルもサブルーチンラベルの一つ。
かつ、有効なホットキーラベルとして使える文字で構成されていなければならない。

ソース見たりしたわけじゃないけど、
AHKは起動(初期化)時にスクリプトを全部見て「::」のあるラベルを探して、
Hotkey, 「キー名」, 「キー名」 相当の事をしてホットキー登録しているはず。
で、これは実行するスクリプトのAutoexecブロックより先に行われている(はず)。

で、なんで>>274が駄目かっつーと
エラーダイアログ見れば分かると思うけど、実行時エラーじゃなく、
パース時のエラー(文法エラーとか)でしょ。
初期化時には、 h_key なんつー有効なホットキーはないし、
ユーザが使える変数なんかも無いわけで初期化エラーになる。
上から順に書いてあってその通りに処理しているように見えるけど実はそうじゃない。
IniRead までたどり着いてない。

277 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 17:55:29 ID:bE1sAjs50]
WinSet,Topの
>システムの設定によっては動作しない。
の条件ってなんだろう?

278 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 20:29:40 ID:FTwXZkWh0]
>>276
なぁオマエ一言多いとかリアルで言われないか?

279 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 20:58:12 ID:mkT/24Fx0]
>>278
オマエ一言多い

280 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 21:24:53 ID:sliL46ld0]
>>279
オマエ一こt(ry

281 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 21:53:18 ID:fL3JIfIu0]
トレイアイコンをクリックしたら実行するってどうやるの?



282 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 12:01:39 ID:VXj0TK7a0]
なんつーか、大したことないんだが274みたいな奴って発想力が面白い。
プログラムってスキルも大事だが発想力だと思う瞬間だったよ。

283 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 14:03:58 ID:BLcyg5Ix0]
以上、本人でした。

284 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 14:16:47 ID:4Lz/N4h80]
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

285 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 16:34:58 ID:WX2c84/Q0]
まあ、スマートではないな>>276

286 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 02:28:52 ID:mgBRF9yu0]
SetTimerで
WinGetPos,, Ypos,,, A
if (Ypos <= 30)
 WinMove, A,,, 19,,,,
Ypos =
return
というのを回していると、Firefoxで右クリックメニューが一瞬で消えてしまいます。
間隔を500〜2000にしたり、同じ事をLoopでやってみても同じで、この現象が起きるのは
Firefoxだけです。
どうかアドバイスお願いします

287 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 03:13:35 ID:mMn42qaU0]
if(Ypos <= 30 && Ypos != 19)
にしたらええんじゃないのか?

288 名前:名無しさん@お腹いっぱい。 [2009/02/16(月) 03:19:38 ID:axPHiozx0]
クリックすれば指定されたurlに飛ぶような文字列を
msgboxで出力したいのですがどうすればよいのでしょうか

たとえば
MsgBox,0, test,google
という出力をして、そのgoogleの部分をクリックすればwww.google.co.jp/に飛ぶのです。
htmlが使えるなら
MsgBox,0, test,<a href="www.google.co.jp/">google</a>
こういうことです


289 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:21:27 ID:w558LR820]
>>288
GuiかMenu。
ポップアップメニューだと一回一回消えるから、Guiでつくればいいかもね。

290 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:25:35 ID:w558LR820]
>>281
流行らせるページの「タスクトレイアイコン操作」で望みが叶うかも。
何を望んでいるのかはわからんが。

291 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:39:14 ID:w558LR820]
>>286
簡易の絶対領域みたいだね。TTBaseプラグインでもあったな。



292 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 06:36:37 ID:DfB2sRU60]
>>289
なるほど
その手がありましたか
やってみます

293 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 09:20:33 ID:HnxszwKY0]
>>291
質問者じゃないけど、どういう事か教えてくれまいか

294 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 09:29:13 ID:gRNTeVF80]
ggrksが来るぞ

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 10:28:05 ID:m36Y1Mz60]
絶対領域はググっても違うもんばっか出てくる。
www.forest.impress.co.jp/article/2008/05/15/zettai.html

296 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 13:34:08 ID:w558LR820]
あれ?違った?>>295みたいなことをしたいのかと思ったわw混乱させてゴメンね。

297 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 15:56:36 ID:dAYg3thQ0]
>>290
それってタスクトレイアイコンを直接操作するためのものじゃないの?

298 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 22:15:59 ID:mgBRF9yu0]
>>287
即レスくれたのに遅くなってすみません、
if(Ypos <= 30 && Ypos != 19)にしたら快適動作で幸せです。
&& Ypos != 19が必要だった理由が今ひとつ分かっていませんが勉強してみます。
有難うございました

299 名前:名無しさん@お腹いっぱい。 [2009/02/17(火) 00:33:23 ID:Uxje6XHz0]
guiでウィンドウの中に exit ボタンを作成し
そのボタンを押すとそのウィンドウを閉じるだけの物をつくりたいです

はやらせるページのにあるものを使用して次のような物を作ったものの
うまく動きません

Gui,Add,Text,,testtest
GUI,Add,Button,,Exit

gui,show

ButtonExit:
ExitApp

どこを直せばよいのでしょうか

300 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 00:43:51 ID:p7oLYgT60]
gui,show
return
ここで終わらせないとExitAppまでいっちゃうぞ。

301 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 01:20:14 ID:Uxje6XHz0]
>>300
あ、普通に動きました
そりゃそうですね
ご指摘ありがとうございます。



302 名前:274 mailto:sage [2009/02/17(火) 01:36:11 ID:ChZCT6AI0]
>>275-276
ありがとうございます。無事できました。
276さんの書いていることは自分なりに勉強になりました。

便乗するようで悪いのですが、多重起動をしようとする際現状だと英語のメッセージが出るんですが
Menu, TRAY, NoStandard
のように消して、日本語にすることって可能でしょうか?

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 02:38:11 ID:t03ashNM0]
      ドッカーン!
      (⌒⌒⌒)
      |||
     _____
   /::::::::::::::::::::::::::\〜プーン     
  /:::::::::::::::::::::::::::::::\〜プーン  
  |:::::::::::::;;;;;;|_|_|_|_|〜プーン   
  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ〜      
  |::( 6∪ ー─◎─◎ )〜      
  |ノ  (∵∴ ( o o)∴)〜      
  | ∪< ∵∵   3 ∵> ムッキー!   
  \        ⌒ ノ______ 
    \_____/ |   | ̄ ̄\ \
___/      \   |   |    | ̄ ̄|
|:::::::/  \___   \|   |    |__|
|:::::::| \____|⊃⊂|__|__/ /
|:::::/        | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 14:45:20 ID:Bio3yT//0]
やろうと思えば、ウィンドウの監視と
COntrolsettextで出来なくもなさそうだけど…

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 04:54:19 ID:ZSSUooit0]
若干スレ違いかもしれませんが、
WindowsのHDDコントローラ(ATA)のモードが、
UDMAになってるか、PIOになっているかを、
ahkから読み取るには、どのようにすればできそうでしょうか。

何台もPCを使っていると、いつのまにかPIOになっていることがあったので、
それを起動時にチェックしてバルーン通知したいと考えています。

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 12:29:43 ID:YsZiDyJK0]
レジストリの値を読むとか?

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 17:28:59 ID:o28us3FR0]
括弧 { を入力した後 } を加えてカーソルを中に入れるように
~+[::Send,}{left}
return
と記述したのですが } と{left}しか送られません
他の括弧は たとえば<> 同じように
~+,::Send,>{left}
return
でうまくいってるのですが、どのようにしたら {} でも成功するでしょうか?


308 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 19:06:54 ID:FVUyG2Or0]
>>307
つ 特殊記号のエスケープ
  ttp://lukewarm.s101.xrea.com/commands/Send.html


309 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 19:34:48 ID:29d3Le160]
俺も>>231みたいに「 , 」(コンマ)を使うホットキーが使えなかった。
コンマ使うホットキーを今使いたいわけじゃないが、
もし必要になった時に困るので調べてみた。OSはWinXP SP3。
 
以下試したこと
 ×Hotkeyコマンド( Hotkey,% ","〜 )
 ×Hotkeyラベル( ,:: 〜 )
 ×GetKeyState(",","P")→状態取れず
 ×本体バージョンをあれこれ変えた
 ○別PCで同じスクリプトを試した(WinXP SP2)
 ○「 vkBCsc033 」形式で書く
 
vkBCsc033を使った方が確実かもしれない。

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 20:56:25 ID:o28us3FR0]
>>308
ありがとう
解決しました

311 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 00:32:15 ID:nBgazVqW0]
>>219-220
これの解決法ないでしょうか?
似たようなスクリプト作ったんですがやはり数分すると
クリップボードの監視が無効になってしまいます。



312 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 00:58:08 ID:YWf8g0hR0]
timerでreload仕込むとか

313 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 11:09:45 ID:KfP6MoHK0]
OnClipboardChange: じゃなくて ClipWaitで監視してみるとか?
あとはAPI のクリップボード関数で直接弄るか。

関係ないが、クリップボード内容がEXCELデータのときに
ClipboardALLで丸ごと待避しようとするとExcelがハングする。
DllCall("GetClipboardOwner",Int) でオーナーウィンドウを調べて
Excelがオーナーの時は テキスト内容だけ保存するようにして回避してるがちと面倒だ。

314 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 11:41:34 ID:KfP6MoHK0]
そういや昔あったクリップボードユーティリティースレでもこの手の話題あったな。

確かクリップボードの変更通知はクリップボードビューアチェインに接続されたソフト間での
バケツリレー方式で伝えられていくので、間に行儀の悪いソフトがいるとチェインから勝手に
外されてしまって、それ以降の変更通知が受け取れなくなるって話だったような。
巷によくあるクリップボード系ユーティリティーでは定期的にチェイン接続し直すことで
対策を取ってるとかだったと思う。

よくわからんがAHKでも ONMessage()で CallBackサポートされてるし、具体的なサンプルは
clcl のソースとか見ればたぶんできるんじゃね。
英語できるんならAHK作者氏に対策方法添えて要望出すのが手っ取り早いとも思うけど。

315 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 12:09:33 ID:BAYW6hF70]
流れ無視して悪いがさっぱり分からんので、教えて頂きたい

例えば、
 -t C:\Documents and Settings C:\Program Files
というような文字列を、
 -t "C:\Documents and Settings" "C:\Program Files"
というように、パスっぽい文字列に引用符をつけるには、
どうすればいいのだろうか?


316 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 12:53:07 ID:IHzf1wv30]
文字列の中に実在するパスがあったら囲む、くらいじゃないの

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 13:27:25 ID:IHzf1wv30]
適当に作った。かっこ悪い。

Hoge(str) {
 StringSplit, arr, str, %A_Space%
 idx := 0
 Loop {
  if (idx++ >= arr0)
   break
  c := arr0 - idx
  Loop {
   p := arr%idx%
   Loop, %c%
    i := idx + A_Index, p .= A_Space . arr%i%
   if FileExist(p) {
    arr%idx% := """" arr%idx%, idx += c, arr%idx% := arr%idx% . """"
    break
   }
   if (c-- < 1)
    break
  }
 }
 Loop, %arr0%
  ret .= ((A_index > 1) ? A_Space : "" ) . arr%A_Index%
 return ret
}

318 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 13:39:31 ID:BAYW6hF70]
>>316-317
ぐはっ、わざわざ作って頂けるとは!
よくそんなすぐに作れるな、初心者からすれば驚愕ですよ
ありがとー

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/20(金) 18:36:07 ID:+ofqUOOa0]
vistaじゃFileSetTime使えないのかな

320 名前:名無しさん@お腹いっぱい。 [2009/02/21(土) 21:01:51 ID:FzZoDrMY0]
FirefoxにAlt+Rで、戻るを割り当てたいのですが、
autohotkeyからPostMessageを送って設定することは可能でしょうか?
可能であるなら、下の0x111,28690,0,,A に相当する値をお教えいただけないでしょうか? m(__)m
   !R::PostMessage,0x111,28690,0,,A ;// 戻るを割り当てたい
firefoxでPDFを開くとフォーカスがacrobatに奪われるので、
autohotokeyを使って、戻るのキーを割り当てられないかと試行錯誤しております

321 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/21(土) 21:52:11 ID:0EOzQQjN0]
うちは↓でいける @Fx3.0.6 on XP SP3
#IfWinActive, ahk_class MozillaUIWindowClass
!Left::Send, {Browser_Back}
!Right::Send, {Browser_Forward}



322 名前:320 mailto:sage [2009/02/21(土) 22:10:01 ID:FzZoDrMY0]
>>321
ありがとうございます
助かりました

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 20:03:09 ID:qnu0ZxRB0]
自分も前から気になってたけど、FirefoxはSendMessageとかPostMessageは受け取らないのでしょうか?
非アクティブのままにautohotkeyから操作したいんですけど?

324 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 20:13:46 ID:q+YO7qML0]
ご存じの通りマルチプラットフォームのものでWin専用って訳じゃないから、
ウィンドウメッセージ受けとってもスルーされるものが多いと思う。

WM_MOUSEWHEEL とか WM_KEYDOWN/UP などは受けとってそれなりに動く。
メニューバーやステータスバーもウィンドウズのものじゃなく独自に作ったもの。(>>254参照)
Firefoxだけじゃなく Java とかもそうだけどそういうのをコントロールするのはちと厳しいね。

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 22:56:59 ID:lt/+4kjg0]
確実性には乏しいかも知れんが
ControlSend か ControlClick あたり試してみたらどうだろうか

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 22:58:01 ID:qnu0ZxRB0]
>マルチプラットフォーム

これをすっかり忘れてました、そう言われると出来なくても当然って感じですね
ありがとうございました。

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 23:19:18 ID:qnu0ZxRB0]
>>325
ありがとうございます。
今ちょっと試してみたら、ControlSendでなりそうです。

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 00:59:34 ID:chhOXYqK0]
Enterを右Ctrlにするやり方がわかりません。
Enter::RCtrlでBSを入れようとすると
Enter+Hで1回はBS入るけど、
Enter押したままもう一度Hを入れると
こんどはそのままHが入力されます。
どうしたらいいんでしょうか?

329 名前:名無しさん@お腹いっぱい。 [2009/02/23(月) 07:31:59 ID:xVptRsNb0]
コロンのhotkeyに割り当てる方法はないでしょうか?
:::Send,{A} ;// : をAに割り当て
vkBAsc028::Send,{A} ;// : をAに割り当て
のどちらで設定しても、:のhotkeyが有効になりません

セミコロンだと以下で割り当てられるのですが…
vkBBsc027::Send,{A}


330 名前:名無しさん@お腹いっぱい。 [2009/02/23(月) 21:29:51 ID:6awX2jgS0]
AutoHotkeyを流行らせるページ
lukewarm.s101.xrea.com/
↑の入力置換関連部分を無視すればAutoIt3の日本語ドキュメントになる?

しかしAutoIt日本語ドキュメントなさ杉

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 23:50:07 ID:KDZEcOqx0]
結構書き方違う



332 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 03:37:01 ID:mnDWmi6d0]
mayuでは難しい部分を、最近ahkで作り始めました。
VIMが1枚だけ存在したらアクティブに、
2枚以上存在したらリストを表示するようにしたいのですが、
以下の状態で既に詰んでます...どなたかご教示願います。
#^+!f2::
SetTitleMatchMode,2
WinGet, title, Count, - GVIM
If %title% = 0
MsgBox, none
else if %title% = 1
MsgBox, vim
else
MsgBox, %title%

ウインドウ数は取得できてるようなのですが...

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 03:48:04 ID:nmUnQgbz0]
If title = 0

334 名前:332 mailto:sage [2009/02/24(火) 04:06:13 ID:mnDWmi6d0]
>>333
ありがとうです!
盲点でした。

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 06:40:25 ID:9IBsCb9z0]
変数は常に%%で囲むっていう風に統一してくれればいいのに。

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 08:53:53 ID:hmO2qa6n0]
if 1 = 0

こんな書き方になっちゃうもんなぁ。

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 09:20:34 ID:ZrVDgkhH0]
文字列リテラルは一般の言語様式に合わせてくれた方がいいな
シングル・ダブルクォートで囲むとか

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 15:13:52 ID:10tP/ti50]
SandS.ahkの2008.09.21版かそれ以降のものがほしいのですが、どなたかお願い
できないでしょうか。


339 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 15:23:09 ID:A2x/mr5E0]
あぷろだにまだ上がってるよ
lukewarm.s101.xrea.com/up/file/089.zip

でも SandS だったら前スレ264のがシンプルかつスマートでいいと思う。

> 264 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/09/21(日) 22:24:04 ID:jd9yjK/i0
> 自分の Shift & Space はこれ。
>
> Space Up:: Send, % "{Shift Up}" (A_TimeSincePriorHotkey < 200 ? " " : "")
> +Space:: Send, +{Space}
> >+Space:: Return
> Space:: RShift

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 16:20:53 ID:10tP/ti50]
>>339
どうもありがとうございます。とても助かりました。
(A_TimeSincePriorHotkey < 200 ? " " : "")
てあたりが気がきいていると思いました。

341 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 14:47:02 ID:qGUJzHwS0]
最長マッチのHotstringを作りたいのですが
どうすればよいのでしょうか






342 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 17:32:35 ID:zx85xhcp0]
Feb 25, 2009
Version 1.0.48 is released.

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 18:09:02 ID:N/JDSNBe0]
パッチ等を当てずに安心して2バイトコードを使える日は、いつになるのだろうか・・・

344 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:06:58 ID:eljuCyAE0]
ttp://www.autohotkey.com/changelog/ の適当な訳

1.0.48 - February 25, 2009

■互換性
後方互換性に影響するであろう変更は、今回より、変数に格納された浮動小数点値が高精度なったこと。
数値精度の差に依存するスクリプトは精査して、更新する必要があるかも。
"SetFormat Float" (例: SetFormat, Float, 0.6) を *各所* で利用することで互換性が維持できるはず。
「SetFormatフロート」は高精度値を不活化するけど、新しい速い浮動小数点演算のうちのいくらかを使わない。

■パフォーマンス
このリリースの主なテーマはよりより速い実行。
スクリプトはほとんどすべてより速く実行できるはず- 特に式とか整数の評価の多用では(場合によっちゃ通常の3倍!)。
完全なる恩恵を得るには、スクリプトは、SetFormatを使用しないようにするべきか、あるいはSetFormatの速いモードを使用するべき。

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:07:22 ID:eljuCyAE0]
■性能改善
- 式と関数のコンパイルをコッテリとさせて、より速くなった(とくに複雑な製数式で、カンマも含む)
- 変数に格納されたバイナリ数値をキャッシュさせて文字列(から/へ)変換するのをやめるようにした。これで変数の算術演算が速くなった。
- 式やマッチ/比較コマンド内でのリテラルの数値をバイナリ数値とするようにしたことにより速くなった。例) X+5 とか "if x > 5"
- ブロックを持つループやIFやELSEを "{" をスキップすることで速く実行できるようになった。この結果、"{" が ListLinesで省略されるようになった。
- スレッド作成のパフォーマンスの改善、OnMessage(), RegisterCallback(), GUIイベントの rapid-fireスレッドを補佐する。(註:よくわからん)
■既存スクリプトに影響するかもしれない変更点(トップで記述されているより高精度な浮動小数点以外のもの)

- "SetFormat, Integer, Hex" が有効な場合、リテラルの10進値を変数に格納するときに16進数に変換する。これは普通表示用途なはず。
- OnMessage()パフォーマンスについて、メッセージ番号とHWNDは無条件で16進数でなく通常の数値としてやってくる。これは通常表示用となはず。
- パフォーマンスにおける様々な改良を達成するために、スクリプトは今よりちょっと多くのメモリを使用する。(変数と式の数に比例している)
- if var is time" と "YYYYMMDDHHMISS"形式のタイムスタンプを変更・修正し、月の範囲が1-12内に無い場合不正なものとして認識するようにした。[ニックありがと]
- Dynamic関数呼び出しを変更・改善し、関数に定義されたパラメタ数よりも多いものも許容するようにした。このときパラメタは評価はされるが破棄される。[Lexikosが開発(註:Autohotkey_Lの人)]

■その他の変更点
- Autohotkey_Lより追加 → IsFunc() / while-loop / assume-static / A_IsPaused / A_IsCritical / WheelLeft と WheelRight
- NumPutで UInt64をサポート
- UPXを変えた

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:11:50 ID:eljuCyAE0]
バグフィックスは面倒なので割愛w


#if は取り入れなかったのかぁ・・・残念

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 00:57:18 ID:aRIZ1QSP0]
複数のウインドウを高速に一度に前面にもってくることってできないでしょうか?
今は、10枚くらいあるウインドウをWinActivateとLoopで前面化を行っていますが、
かなりまったりと順番に前面にでてきてしまいます。
もとパッっと出すことはできないものかなあと思いまして。

今はこんな感じでやってます。(指定のexeのウインドウを全部前に出す例)

+^!e::
Process, Exist, MageMogeChart.exe
if ErrorLevel = 0
 return
WinGet, id, list, ahk_pid %ErrorLevel%
Loop, %id%
{
  StringTrimRight, this_id, id%a_index%, 0
  WinGetTitle, this_title, ahk_id %this_id%
  WinActivate, ahk_id %this_id%
}
return

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 01:25:30 ID:c+2Jobtp0]
SetWinDelayでコマンド発行後のウェイトを指定してやる。
ウィンドウの重なりが逆順になると思うけど。

v1.0.48用で書いてみた

SetWinDelay, 10
Process, Exist, (ここにExe名)
WinGet, list, LIST, ahk_pid %ErrorLevel%
while list>0 {
 WinActivate, % "ahk_id " list%list%
 list--
}


349 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 20:30:19 ID:uqsx4u4h0]
DELL LATITUDE E6400でTrackWheel(VER. 20081206)を使ってたんだけど
しばらくぶりにバージョンアップしようと最新版/RC版に変えてみたら中ボタンに反応しない。
なんてこった。

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 00:25:24 ID:X+HJqC5y0]
ショートカットキーが付いてないソフトのボタンにahkでキーを割り当てたいんですけど各ボタンを指定するにはどうすればいいですか?

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 00:39:59 ID:imLzKJgB0]
ものすごい放置してた。久しぶりにソース見た。思い出すのに時間がかかった。

>>349
AHK v1.0.48 だと DllCall の Return Type を指定するとうまくいかないところがある。
983行目の最後の
  ,"Int"
を外すと動くかもしれない。

というか、反応しないって事はホットキーのアサインがうまくいってないかも。
全く構造が違うので、Iniは去年のものは流用できないっす。

>>350
1) ControlClick を使う
WindowSpyで独自のボタン情報がとれるなら 直接指定モードでいいはず。
情報がとれないなら、座標指定モードで(ツールバーならこっち)。

2) ツールバーのコマンドを調べてウィンドウメッセージを送る(玄人向け)
ttp://lukewarm.s101.xrea.com/myscripts/index.html の "Inspecting Toolbar IDs" を使って
PostMessage を使って WM_COMMAND を送る



352 名前:349 mailto:sage [2009/02/28(土) 07:36:34 ID:ZNlNraZX0]
>>351
どうも
・1.0.47でも1.0.48でもダメ
・1.0.48で983行目の最後の,"Int"外してもダメ
・iniは流用していない
で、iniのButton=MButtonを=RButtonにしてみると反応する。スクロールもできる。
けどボタンを離してもスクロールのモードから戻ってこない。

てな状況です。

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 20:06:00 ID:imLzKJgB0]
>>352
中ボタンで反応しないのと、右ボタンで暴走したままなのは別事象っす

中ボタンの方だけど、メイン画面開いて Ctrl+H かメニューから View→Hotkeys... でホットキー一覧出して
 m-hook  *MButton
って出てたら、ホットキー登録は問題ないはず。なってないなら大問題・・・。
そうなっているのに動かないなら他のユーティリティが影響していると思われる
確認をお願い

> RButtonにしてみると・・・モードから戻ってこない
こっちはバグですな・・・
間違えた記述のあるサイトのソースを丸々パクっていたため。考えもせず置換して使ってたorz

誤: TW_RBUTTONDOWN:=0x205 , TW_RBUTTONUP:=0x206
正: TW_RBUTTONDOWN:=0x204 , TW_RBUTTONUP:=0x205

650行目あたりから,、それぞれ2カ所あるっす


# 色々直したら zip で置き直す予定

354 名前:349 mailto:sage [2009/02/28(土) 22:00:14 ID:ZNlNraZX0]
>>353
> m-hook  *MButton
出てます。
他のユーティリティか、うーん。旧バージョンは動くのになー。
とりあえずmsconfigで診断スタートアップにしてみたけどダメでした。

RButtonではちゃんと動くようになりました。

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 23:58:39 ID:imLzKJgB0]
旧verで動かしてたんだからそこに問題はないとは分かるんだけど、一応って事で
・・・そうなると機序的に何処に問題があるかは、今はちょっと分からないっす
一応、ソースもう一度読み直ししてみるっす

356 名前:350 mailto:sage [2009/03/01(日) 03:43:58 ID:Rc2HQ5QJ0]
>>351
ありがとうございました
ControlClickでいけました

357 名前:349 mailto:sage [2009/03/01(日) 20:30:20 ID:GJkhTa1h0]
>>355
お手数かけてすまそ。
中ボタンに反応しないって書いたけど、
TWを起動している状態ではアプリケーションでの中クリックも効かなくなってるので
TW自体は一応反応してる気がします。

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 10:53:15 ID:3PFCvLeG0]
>>348
SetWinDelay で指定してみたら、瞬時にとはいきませんがかなり早くなりました。

最新のはwhile使えるようになったんですね

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

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 15:03:15 ID:4Ix+9L8p0]
AutoHotkeyでmacのDashbordみたいなの作れないかな
と自分で無理なことを言ってみる

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 22:51:10 ID:zVxOqqcX0]
ダブルクリックとドラッグの挙動をカスタムしたいんですが、見つかりません
コマンド教えてください

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:08:22 ID:ZvTbo6At0]
+WheelDown::WheelUp

このスクリプトでしばらくは正常に動作するのですが
71 hotkeys have been received in the last 577ms.
というメッセージが出てきます。
どういうことでしょうか?



362 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:10:50 ID:pYSwiV1N0]
スクリプトの冒頭で

#MaxHotkeysPerInterval 200

と書くと良い

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:22:01 ID:ZvTbo6At0]
#MaxHotkeysPerInterval 300でいけました
ありがとうございます。






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

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

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