>>1 乙
誰もスレたてなかったら様子見て立てようと思ってた
>>1 乙
全スレ999と1000 次スレ立てる前に埋めるなよ
最近進行速かったから終わりそうなの気付いてなかった。
乙 いつの間に
7 :
名無しさん@お腹いっぱい。 :2006/09/01(金) 16:15:25 ID:iLt3np2g0
age
9 :
名無しさん@お腹いっぱい。 :2006/09/01(金) 16:51:33 ID:tfgHLp1g0
いつになったらスレタイに日本語の説明がつくんだよ
11 :
名無しさん@お腹いっぱい。 :2006/09/01(金) 18:22:06 ID:OvAAcOQQ0
マウスクリックを連打するスクリプト教えてください。
パソコンをぶっ壊す ↓ パソコンのことは忘れる ↓ 解決
パソコン蛾壊れた
>>10 次回スレ立てまかせた
ていうか、流れを見ると980あたりで次スレってのが妥当だと思うけどどうかな
これから結構続いてくスレだと思うんだけど、出来れば次のテンプレにその辺のことを追加しといたらいいんジャマイカ
今回テンプレ相談する間もなかったよね つか、1000落ちする直前まで誰も気がついてなかった悪寒
migemo i-searchやべえええええ もう手放せね
17 :
名無しさん@お腹いっぱい。 :2006/09/02(土) 23:05:48 ID:6mpJtjZm0
前スレでゲームのコマンドをマクロ登録のやり方聞いてたものですが、 また分からないことが出てきました。 E S F ←E=上、下=D、S=左、F=右ということです。 D 左→左斜め下→下→(右斜め下+Kキー+Lキー) ってのなんですけど、右斜め下で止めるやり方が分かりません。 a:: send,{s down}{d down}{f down}{s up}{d up}kl{f up} return にしたのですが、右斜め下じゃなく右で止まって最後が(右+Kキー+Lキー)になってるらしく、 技が出ません。 どう直せばいいんでしょうか?
だからパッド買えって
あるアプリ(avast!です)の、タスクトレイアイコンの右クリックメニューを呼び出す方法ってありますか?
>>17 電柱か何かに思いっきり頭をぶつければいいと思うよ
>>19 流行らせるページ→My Scripts→タスクトレイアイコン操作スクリプトを参考に。
22 :
19 :2006/09/03(日) 13:25:47 ID:QBsF2VgF0
>>21 レスどうもです。ソース内の使用例から上をコメントにして試してみましたが
Tray_GetInfo(A_Index,hwnd,uid,msg)
の行でエラーがでてしまって使用できませんでした。
AutoHotkeyスクリプトはあまり詳しくないし、今はそんなに空き時間もないので
そのうち中身を解析してみます。
>>23 レスどうもです。このツールは簡単に、avast!のタスクトレイアイコンの右クリックメニューを
表示できました。
・・・でもなぜかavast!のこのメニュー、マウスじゃないと選択できませんでした・・・
あ、
>>24 じゃ意味分かりませんね。
やりたいのは、avast!のタスクトレイアイコンの右クリックメニューの
「更新」→「プログラムの更新」って選択する動作を自動化して
スタートアップに入れたかったのです。
>>23 のツールのおかげでできる!と思ったら
なぜか、マウスでないとこのメニューにフォーカスが移せなくてガッカリ、
という流れでした。
>>25 run, "D:\hoge\Traycmd\traycmd.exe" /L "D:\avendなんちゃら"
Sleep, 300
Send, U(←更新のショートカットコマンド)
とか、コマンドを送るのじゃ駄目?
自分は秀丸メールのタスクトレイアイコンの操作で、こうしてる。
あ、ごめん。右クリックだっけ。 run, "D:\hoge\Traycmd\traycmd.exe" /R "D:\avastなんちゃら" Sleep, 300 Send, U(←更新のショートカットコマンド) でした。
>>26-27 レスサンクスです。一応やってみましたがやはりダメでした。
なんでかよくわかりませんが、avast!のこのメニュー、
一度マウスでどれか選択してフォーカスを移してやらないと、
ショートカットキー(「U」です)も、上下キーも受け付けないんですよ。
他のアプリの同種メニューは問題なく選択できるのですが。
MouseMoveでむりやり触るとか
確かトレイメッセージ受け取り先のウィンドウをWinActivateしてやらないと駄目なときがあるって
アクティブウィンドウを透明度200と255で切り替えるトグル形式のスクリプトを作りたいんですけど アクティブウィンドウのTransparentの値を取得することってできるんでしょうか? やり方がわからなかったので今はトグル形式ではなく、透明度200に設定するスクリプトと 透明度255にするスクリプトの2つを別々のキーに割り当てて使ってます。 ;アクティブなウィンドウを透明度200に設定するスクリプト WinGetClass, class, A WinGetTitle, title, A WinSet, Transparent, 200, ahk_class %class% ;アクティブなウィンドウを透明度255に設定するスクリプト WinGetClass, class, A WinGetTitle, title, A WinSet, Transparent, 255, ahk_class %class%
できなかった気がする。 つかAHK云々以前にWinAPIとかで取得できるんだっけか? 前にちょろっと試して無理そうかなって思った記憶あるんだけど
33 :
28 :2006/09/07(木) 00:00:25 ID:1qJogsB20
>>29 遅くなりましたがレスどうもです。一応、むりやり触ってみる方法で
自動更新っぽくなりました。マウスポインタが動いてしまいますが、まあ良いです。
run, "D:\〜\traycmd.exe" /R /X=500 /Y=500 "C:\〜\ashDisp.exe"
Sleep, 300
MouseMove, 10, -130, , R
Send, {LButton}g
return
>>30 どんな風にすればよいのか分かりませんが、レスどうもです。
それにしてもAutoHotkeyって面白いですね。
時間ができたらのめりこんでいそう・・・
>>31 透明度255と半透明化OFFは別物。255だと若干処理が重くなる。
自分はこんな感じでトグルさせてる。
キー::
WinGetClass, cls, A
WinGet, trs, Transparent, A
IfEqual, trs, 200 WinSet, Transparent, OFF, ahk_class %cls%
Else WinSet, Transparent, 200, ahk_class %cls%
return
WS_EX_TRANSPARENT
<title>Click を Click に置換すれば見れるようになる。
流行らせるページのダウソ版がなんか変ですな
意味不明。板のことか?
ダウンロード版マニュアルの事だろ
>>37 titleタグがダブってただけなのね
ありがとう
管理人さん修正ありがとう
流行らせるページのことは向こうのBBSに書け
なにを偉そうに言ってるんだコイツ
45 :
17 :2006/09/08(金) 20:22:13 ID:GxkFqpY50
どなたかお願いします・・・
49 :
17 :2006/09/08(金) 23:15:06 ID:GxkFqpY50
>>48 違います。
マジです。本当に分かりません。
分かる方教えてください。
AutoHotkeyを流行らせるページを何度も読め そしてそれ以前に空気を読め
>>49 {s down}{d down}{f down}ってなってるけど、ジョイスティックで"左","下","右"が
同時に入ることは有り得ないっしょ。
その後 {s up}{d up} で左と下を離してるんだから "右+?" になるのは当たり前じゃまいか?
ホットキーの使い方やキーの押し離しのコマンドは理解しているようだし、
その順番までここで聞くのは禿げしくスレ違い。
>>51 スレ違いだと思うなら答えるなよ
教えるなら全部書け
お前も学習能力ないだろ
>>52 全部教えれば、性懲りも無く違う技(ゲームの)でまた聞いてくる。
放置すれば、
>>45 のパターンで何度も現れる。
スクリプトの使い方に間違いがあるのでは無く、自分の考えが足りない事を教え、
この件に関しては、ここで聞くべき事はもう無いということを悟らせたかったのだが。
Send,1234567890 より Clipboard=1234567890 Send,^v のほうが速いんですが、クリップボードを介さないで後者くらい速くメッセージを送る方法はありませんか?
SetKeyDelay
>>53 結局、今まで通り中途半端に教えてるだけにしか見えないけど?
場面によっては ControlSetText を使うとサクサク
>>53 前スレ読んどらんの? そいつ学習能力ないよ、そして鬼しつこい
責任とってちゃんと最後まで面倒ヨロ
>>57 ありがとうございます。高速になりました。
>>53 そいつ絶対悟らない無能だから無理。諦めて見捨てて放置してください。
ホットキーな
62 :
28 :2006/09/10(日) 15:11:20 ID:Y9YNXt/j0
時間ができたので、
>>22 のエラーの原因を探ろうと思い、
しばらく中身を見ていたら、使用例のTray_GetInfo関数の
最後の引数が指定されてなかったのが原因でした。
× Tray_GetInfo(A_Index,hwnd,uid,msg)
○ Tray_GetInfo(A_Index,hwnd,uid,msg,hicon)
ちなみに、コメント部分の説明の引数も同様でした。
× Tray_GetInfo(idx,ByRef hwnd,ByRef uid,ByRef msg)
○ Tray_GetInfo(idx,ByRef hwnd,ByRef uid,ByRef msg,ByRef hicon)
ついでに、Tray_MoveIcon関数が使えなくてなぜ?と思い
調べたら、実際の関数名はTray_MoveButtonでした。
× Tray_MoveIcon
○ Tray_MoveButton
流行らせるページ→My Scripts→タスクトレイアイコン操作スクリプト、を
参考にする場合は、上記3点に注意ですね。
改めて、いろいろとアドバイスありがとうございました。感謝です。
流行らせるBBS、たまに質問スレにレス返してるだけなんだけど 過疎ってるから結構 連投規制に引っかかる。 可能なら値ちょっと調整してもらえると嬉しいッス > 管理人さん
むこうに書けよ
だから連投規制で書けないんすよ…
つ【メール】
ClassNNがコロコロ変わってしまう変なソフトがあるんですが、どうすればいいんでしょうか・・・ あるクラスのテキストを読みたいんですが、ソフトを起動し直す度に変わってしまうのでどうにも指定できません
法則性があるならLOOPとかで数字を回転させて総当りとか ランダムな文字列なら厳しいのかな もしくは全テキストをいったん取得して その前後が一定の文章だったらそれを目印にカットできるかも
>>68 取得したいクラスは、Button123 といったかんじで、末尾の数字がコロコロ変わります
また、Button125など、似たクラス名のものもあるので、そっちを取得してしまう事もありました
取得したいテキストは、3〜4桁の数字ですがスペースが末尾につくので、
そこらへんで判別出来るかもしれないのでやってみます ありがとうございます
AHKで取れるClassNNはZオーダーで尻番が変化するけどそういう意味じゃなくて? ウィンドウからの相対座標位置でクラスのある場所のアタリをつけられるなら MouseMove → マウスポインタを指定クラス上に移動 MouseGetPos → クラス名 (or AltMethod=2でハンドルとして取得) ControlGetText ( or WinGetText) ただ、ControlGet はソフトによっては値取れないことも多いので xyzzyのように動的にクラス名を替えてくるものの場合はムダかもしれない
おっと、書込む前に更新すればよかった。 >末尾の数字がコロコロ それはZオーダーだから、 MouseClick や ControlGetFocus で フォーカス持ってきてやればたぶん毎回 Button121 でOKになると思う
ある色の上にマウスがきたときにクリックするようなものって作れますかね?
MouseGetPos MouseClick
PixelGetColor
EnvSub, X2, %X1% EnvSub, Y2, %Y1% If X2 > 0 { KeyX = RIGHT } If X2 < 0 { KeyX = Left } If Y2 > 0 { KeyY = DOWN } If Y2 < 0 { KeyY = UP }
EnvMult, X2, %X2% EnvMult, Y2, %Y2% If X2 > %Y2% { Key = %KeyX% } If Y2 > %X2% { Key = %KeyY% } GOsub, SendKey }
割り込んで悪いが、数レスに分かれるものは スクリプト投稿スレ or 流行らせるアップローダ でやってくれ。
Sendkey: { Send, {%Key%} Return } +Esc:: { MsgBox, 終了します ExitApp } ーーーーーーーーーーーーーーーーー うわ、長すぎてウザス…住人さんスマン。 アップローダーにすれば良かった。インデントはすまんがエディタでおながい シフト+ESCで終わるようにしてるけど、お好きなように
別にいいよこれくらいなら
ローカル変数を作るには関数にするしか方法はないんですか?
>>76 にあるスレの
>>612 です。
>>76-80 のスクリプトを書いてもらった
者です。こっちの方がいいかな、と思って移動してきました。
動かしてみた結果、あまりにも自分の求めたものにどんぴしゃで、
笑いすら込み上げたのですが、肝心の使いたいソフトでは、カーソル
を認識してくれませんでした。メニューバー操作時は有効なのに、いざ
本編を動かすと、認識しません。
以前、ソフトウェアキーボードを試した時にも、ソフトによって認識したり
しなかったりしたので、キーを押した、という扱いにも複数種類あるのか
なあ、と思っています。
もし、何かご存知なことがあれば、教えて下さい。
スレ違いならすみません。
押下キーをUP、DOWNじゃなく、コントロールコードにすればいいのかな。
自分でももう少し調べてみます。
CtrlとCAPSの入れ替えは出来るようになったの?
>>85 日本語xp上だと構造上無理なんじゃなかったっけ。
>>84 書いた中の人だけどこちらでもゲームでは機能しなかったよ
ヴューワーでしか試してなかったんでね。進展あったら教えてね。
わりとすっと書けたし、動かしてみたらなんか不思議な感覚で面白かった。
>>86 そうなんだ・・・
2バイト文字も通らないし、英語版Windows以外の動作自体
想定してないみたいだね
>>87 スクリーン絶対座標にしないとウィンドウの左上にはみ出したときにエラーが出るっぽい。
ついでにちょっと斜め移動のOn,Offが設定できるようにしてみた。
;斜め移動無し:0 斜め移動有り:1
SetEnv, mode, 1
SendMode, Play
CoordMode, Mouse, Screen
Loop{
MouseGetPos, X1, Y1
Sleep, 50
MouseGetPos, X2, Y2
dX := X2 - X1
dY := Y2 - Y1
If (dX|dY == 0)
Continue
IfGreater, dX, 0, SetEnv, KeyX, {RIGHT}
IfLess, dX, 0, SetEnv, KeyX, {LEFT}
IfGreater, dY, 0, SetEnv, KeyY, {DOWN}
IfLess, dY, 0, SetEnv, KeyY, {UP}
If mode{
Send, %KeyX%%KeyY%
SetEnv, KeyX,
SetEnv, KeyY,
}
Else{
If (Abs(dX) > Abs(dY))
Send, %KeyX%
Else, Send, %KeyY%
}
}
+Esc::ExitApp
>>76 のやり方だと Send で連打してることになるから、
押しっぱなしとは違うと思うよ。
関係ないけど同じSendの使い方でも
キーに当てるかマウスにあてるかで動作が違いますね。
F1:: Send,{Right Down}
F1 Up:: Send,{Right Up}
LButton:: Send,{Right Down}
LButton Up:: Send,{Right Up}
こうすると、F1 の場合押しっぱなしでリピートするけど
LButton の場合リピートしてくれない。
>>90 おお、ずっとオシャレだw
手馴れた人が書くと違うね
93 :
90 :2006/09/18(月) 02:44:06 ID:jEr+hvQW0
>>92 1レスに押さえるためにIfGreaterとかSetEnvみたいなものも使ってるけど、
普通に If (dX > 0)とかの方が見やすいしミスも少ないと思う。
あまりこういう書き方は(個人的には)おすすめできない。
AutoHotkeyの言語仕様って何かモデルがあるんですか? そんなに言語詳しいわけじゃないけど、 なんか、かなりいきあたりばったりな作りの感じがするのですが。
>>95 VBに後からC系の書き方をくっつけた感じ?
96 :
95 :2006/09/19(火) 03:47:13 ID:Sq81Z9rs0
さるゲームで、多垢してる時のウィンドウ切り替え用に このソフトの利用を考えています。 まだちーっとも使い方が分かってませんが 多重起動しているアプリだけで ウィンドウ切り替えをじゅんぐり繰り返す事は可能でしょうか? 手順としては、タイトルに含まれる文字列からIDを絞り込んで そのIDのウィンドウをアクティブにする、って感じかな? あ、いや、例文で出来そうな気がしてきました。 もっと勉強します。失礼。
独り言ならチラシの裏に書け
すいません、アホな事をお聞きしますが ahk_idって何でしょう? ウィンドウ指定する時の呪文みたいな物でしょうか?
AutoHotkey単体でクリップボード内の文字列をURLエンコードすることって 無理でしょうか? 検索サイトのURLと合わせてブラウザのアドレスバーに投げたいんだけど やりかたがよくわかりません。URLエンコードする コマンドラインツールがあると簡単なのですが見つかりません
Shift_JISのみだけど urlEncode(str) { fmtInt := A_FormatInteger SetFormat, Integer, H Loop, parse, str { code := Asc(A_LoopField) if (code == 0x20) { result := result . "+" } else if ((code >= 0x30 && code <= 0x39) || (code == 0x5F) || (code >= 0x41 && code <= 0x5A) || (code >= 0x61 && code <= 0x7A)) { result := result . A_LoopField } else { StringTrimLeft, code, code, 2 result := result . "%" . code } } SetFormat, %fmtInt% return result }
105 :
97 :2006/09/25(月) 05:17:48 ID:uv96A2AO0
>>100 サンクス
行き詰ったので質問します。
A=1
#Persistent
#WinActivateForce
SetTimer, keywait, 100,
return
keywait:
GetKeyState, x, JoyX
if x > 90
{
WinGet, box, list,XXX , , ;XXXはゲームの名前です
StringTrimRight, this_id, box%A%, 0
WinActivate, ahk_id %this_id%
MsgBox, 4, , BOX=%box%`nbox%A%`n%this_id%
IfMsgBox, NO, ExitApp
EnvAdd,A,1
}
if A > %box%
A=1
return
これで、一応それっぽい動作はしてくれるのですが
一回キーを押しただけでは、次のウィンドウに進んでくれなくて
困っています。
box%A%で指定したはずのウィンドウと
this_idの中身にズレが発生するのが
何故なのかわかりません。
アドバイス願います。
これじゃいかんの? 一番下を最前面にすりゃ自動でぐるぐる回ると思うが。 #Tab:: nextWindow() return nextWindow() { WinGetClass, className, A WinActivateBottom, ahk_class %className% }
Gui, Addコマンドでコントロールを配置するとき、マウスによるウィンドウの リサイズに追従してコントロールの大きさも変化させるようにするオプションってある? GuiSizeラベル使うしかないかな。
>>106 お答えありがとうございます。
すいません、素人なんで良く分からないのですが
エラーが出て止まります。
3行目で
Error: This Line does not contain a recognized action.
と、出ます。
>>105 ですが、どうやらウィンドウハンドルが
BOXの数字と、対応して固定って訳じゃないから発生するみたいですね。
メインウィンドウから、変数とその内容の一覧が見られると気が付いて
発見しました。
違った方法を考えないとダメみたいですね。
SetTitleMatchMode,2 ; 1=前方一致 2=中間一致 3=完全一致 a:: WinActivateBottom, XXX ;XXXはゲームの名前(中間一致) return aキーで切替え
>>108 エラーの理由は全角スペース
削っても他にバグが有るから動かないけど
111 :
105 :2006/09/26(火) 07:29:14 ID:Mi5834uB0
>>109 出来ました・・・orz
こんな短いプログラムで出来るなんてー
ありがとうございました。m(__)m
>>110 見落としておりました(汗
確かにスペースが全角ですね
気が付かなかったです・・・orz
皆様、色々とアドバイスを頂き、ありがとうございました。
AutoHotKey、中々便利なので
もうちょっと弄らせて頂きます。
まさか、半年近く悩んだウィンドウ切り替えが
こんな簡単な記述だけで出来るなんて凄いですー。
113 :
110 :2006/09/26(火) 07:39:15 ID:3nPQeRUr0
スマソ勘違い
>削っても他にバグが有るから動かないけど
ゲームをアクティブにしておけば動く仕組みだった
>>106 ゴメソ
気軽に「こんなソフトありませんか?」 45
http://pc7.2ch.net/test/read.cgi/software/1158751580/330 へ
#SingleInstance off
Gui, Add, Edit, x0 y0 w280 h120 Multi +Left vBox
Gui, +AlwaysOnTop +ToolWindow +ReSize
Gui, Show, x20 y160 w280 h116, Memo
return
+Enter::
GuiControlGet, Box
StringGetPos, num, Box, `n
StringLeft, title, Box, %num%
FileCreateDir, %A_YYYY%\%A_MM%\%A_DD%
FileAppend, %Box%, %A_YYYY%\%A_MM%\%A_DD%\%title%.txt
GuiControl,,Box
return
GuiSize:
GuiControl, Move, Box, w%A_GuiWidth% h%A_GuiHeight%
return
GuiClose:
ExitApp
>>115 日本語入力がままならないのは致命的だと思うんですが、なんとかなるの?
半角英数字なら問題ないけどね。
エディタのマクロでやる方が素直かと
118 :
名無しさん@お腹いっぱい。 :2006/09/27(水) 12:48:53 ID:/CyDEpvk0
>>115 そっちのスレに書くか
"どういうスクリプトか"の説明とともに書き込むかしてもらえる?
autohotkeyにチャレンジ中なのですが JoyパッドのボタンにF5を押す動作を登録しようとしたところ Joy1::F5 だと F5ってコマンドはねぇとおこられてしまいます なにかまちがっるのでしょうか?
Send, {f5} というか日本語からして間違ってる
あrがとう。
>>115 今出張から戻りますた。
涙で目の前がみえn(ry
作ってくれて、ありがとう
imeがonで、文字列を変換中かどうかで hotkeyを変えたいと思うんですが、可能ですか?
窓使いの憂鬱ならそういうことできるね。
よくわからんが憂鬱プラグイン流用方法がなまずんとこになかったっけ
RCtrl & Down::send, {LWIN} ってしてもWinキーが押されないのですが、どうすればいいのでしょうか?
>>127 RCtrl & Down::send, {LWINDOWN}{LWINUP}
だったらどう?
試しに RCtrl & Down::send, {LWIN Down} これだけやったら常にwinキー押下状態になった。
win2kの方 WinGet, translvl, Transparent, A とかって値取れますか? 半透明ウィンドウ上でも空になってしまうのですが・・
>>131 Win2K(sp4)です
WinSet, Trans, 100, A
WinGet, aaa, Transparent, A
これでaaaはカラでした
指定ソフトがフォーカスが無くなったら終了させたいのですが、どなたか 参考になるスクリプトを知っている方はいませんでしょうか。 いちから組むにはあまりにも無知過ぎましてorz
LOOP { IfWinNotActive, *** { WinClose, *** ExitApp } }
135 :
名無しさん@お腹いっぱい。 :2006/10/06(金) 18:55:46 ID:5OyeaAeR0
WinWaitNotActive使えばループ不要
レスありがとうございます。
>>134 仮にQuickMemoでやってみたのですが、下記スクリプトをAutoHotkey.iniに加えただけでは
駄目なのでしょうか?
QuickMemoが非アクティブ時に下記スクリプトをaaa.ahkで保存して実行すれば終了してくれました。
LOOP
{
IfWinNotActive,ahk_class QuickMemoClass
{
WinClose,ahk_class QuickMemoClass
ExitApp
}
}
>>135 流行らせるページにいってこれから勉強してきます。
>>132 やっぱりそうですか、xp専用みたいですね
どうもありがとう。
139 :
名無しさん@お腹いっぱい。 :2006/10/10(火) 03:29:45 ID:Qsvpq3oj0
下記は他のアプリケーションを使用中でも、 スレイプニルで選択文字列をクリップボード経由で検索するスクリプトを書いたのですがうまくいきません。 ctrl + shift + c これはクリップボードの文字列をグーグルで検索するショートカットです。 3の時がだめです。 ;1スレイプニルアクティブ #IfWinActive ahk_class SleipnirMainWindow Send,{SHIFTDOWN}{CtrlDown} f Send,{SHIFTUP}{CtrlUP} ;2スレイプニルは起動しているが非アクティブ #IfWinExist ahk_class SleipnirMainWindow Send,^c WinWaitActive, ahk_class SleipnirMainWindow, , 2 Send,{SHIFTDOWN}{CtrlDown} c Send,{SHIFTUP}{CtrlUP} ;3スレイプニルが起動していないときは、起動して検索、 #IfWinNotExist ahk_class SleipnirMainWindow Send,^c Run C:\Program Files\Fenrir & Co\Sleipnir\bin\Sleipnir.exe WinWaitActive, ahk_class SleipnirMainWindow, ,5 Send,{SHIFTDOWN}{CtrlDown} c Send,{SHIFTUP}{CtrlUP} return
clipboard = Send, ^c ClipWait Run www.google.co.jp/search?hl=ja&q=%clipboard% return sleipnirを標準にして上のじゃダメなの?
141 :
名無しさん@お腹いっぱい。 :2006/10/10(火) 07:40:37 ID:NQHK5GMa0
とりあえずWinWaitActiveのあとにスリープ3秒くらい入れてみ
>>140 完璧です。
我が家の家訓とし、流儀の秘奥として、
未来永劫、万世一系にかたりついでいきます。
そんなシンプルなコードでよかったとは気づきませんでした。
勉強になりました。
>>141 ありがとう。
アクティブなアプリをただ再起動するだけの機能が欲しいんですが、 AutoHotkeyでどうかけば実現できるかわかりません・・・ 1.アクティブなexeのパスを取得 2.終了させる 3.ちょっと時間を置いてRun でいいんでしょうか
いいんじゃないの? あえて言えば > 3.ちょっと時間を置いてRun を、3.ループを使って一定間隔で終了確認し、終了したらRun にした方が良いかも。とりあえずそれで書いてみれば? 但し、AHK以外でもそうだけど、外部から終了させると 設定が保存されないものとかもあるからね。
WinClose使えば普通に終わるはず 逆にrun使うときのWorkingDirに注意
ありゃ、逆にって言ったら
>>144 を否定してるみたいだな
そういうつもりはないから気にさわったらごめん
ElecomのUSBにPSコントローラつなぐアダプタで
PSコントローラ使う設定ファイル(自分用カスタマイズ)。
AnalogボタンOnで とりあえず左スティックでマウスカーソル。方向キーで矢印。
ちなみに
1:x 2:a 3:b 4:y 5:L2 6:R2 7:L1 8:R1 9:start 10:select 11:L3 12:L3
ttp://www.uploda.org/uporg549636.zip.html 〜〜〜
自作です
他スレにこれはっつけた後で使ってみて気がついたのですが
二つ同時に起動してても
これのDefault.ahkのほうがなぜか異常に反応が遅いのです
どの変がやばそうかご指摘いただけないでしょうか?
a.ahk b.ahk c.ahk という3つのスクリプトが常駐状態で動いているとして 例えば a.ahk に設定したホットキーで b.ahk を終了させられますか?
150 :
147 :2006/10/16(月) 17:05:41 ID:OK7RcLE70
>>149 何かオシャレな方法があるかもしれないけど
B.AHKの多重起動を許可しておいて
A.AHKのホットキーに
**::
RUN, ***AUTOHOTKEY.EXE B.AHK EXIT
とか書いておき、B.AHKの側で
IF 1 = EXIT
EXITAPP
ってのはどう?
>>150 別に反応鈍いって事無い感じだけどなぁ
プレステの変換アダプタ持ってないので、うちで使ったのは
プレステのデュアルショックもどきのパッド。AN2PADSってやつ。
>>151 それ楽で良いですね。
あとは、スクリプト起動したらProcessコマンドつかって自分自身のプロセスIDを取得して
プロセスIDのリストをiniファイルに書き出して参照するぐらいしか思いつかない。
Section名をProcessIDとかにして、スクリプト名をキー名にしてPIDを格納。
153 :
147 :2006/10/16(月) 19:41:47 ID:OK7RcLE70
>>152 そすか・・・
なんか調子よいときはさくさく動くけど
10分ぐらいつかってると 反応がなくなって使い物にならなくなるときがあるのです
(それなのにもう一個のほうはさくさくカーソル動く、と。)
なんかまずいことでもしてるのかな・・・?とか思ったのですが。
154 :
名無しさん@お腹いっぱい。 :2006/10/17(火) 00:53:31 ID:xCJhoPcz0
このソフト、複数のジョイスティックを個別に識別してボタン登録できるの? あと、アクティブなウインドウの ウインドウクラスとか実行ファイル名とかで動作変えたりできるん?
156 :
名無しさん@お腹いっぱい。 :2006/10/17(火) 00:57:38 ID:xCJhoPcz0
おー。そうですか。じゃあがんばって使い方覚えようかな
>>153 分かった、たまに押しっぱなしになるみたい。同時起動は多分関係ないよ。
ホットキーのサブルーチンとタイマーサブルーチンの処理が重なったときに、
タイミングによっては押下されているのにフラグがリセットされてる状態になってるぽい。
OnLButton:
if(LBon==true)
return
J%LBkey% = D
Send, {LButton down}
LBon = %true%
return
って感じで押下処理してるサブルーチン全部修正すれば多分おk。
158 :
147 :2006/10/17(火) 15:40:59 ID:CramVeui0
>>157 THX
あとで見返してためしてみるです。
ありがとうございましたです。
>>158 ちと修正。
>>157 だと連続で押したときにタイマーの間隔に縛られるので、
連続で押されたら、すぐに解除するようにした方が良いかも。
OnLButton:
if(LBon==true){
Send, {LButton up}
LBon = %false%
}
J%LBkey% = D
Send, {LButton down}
LBon = %true%
return
のほうがレスポンスよくなると思う。ただ、これだとタイミングによってはUp動作が2重に発生するかもしれないけど、
そんなに問題はないかなーと思う。
160 :
名無しさん@お腹いっぱい。 :2006/10/17(火) 19:47:56 ID:rED2E8iE0
2つのキーを同時に押したことにするのはどうやるんですか キーとキーの間にSetKeyDelay, -1入れてもまったく同時に押してくれない
右コントロールキーに、Ctrl+w と ↓(下矢印) を割り当てています。 RCtrl::Send, ^w{Down} Ctrlキー+左クリックする時は、上記設定を無効にしたいのですが、できますのでしょうか? マウスでの個別選択時に困りますので。
>同時 片方を down したままもう一つをdownすればいいんじゃないの。
163 :
名無しさん@お腹いっぱい。 :2006/10/17(火) 20:40:47 ID:rED2E8iE0
>>162 それやったんだけど、最初の片方をダウンした時点で
最初の片方が先に入力されてるからだめだった
難しいかな
何がしたいんだ アプリケーションが受け取るメッセージもイベント一つずつだから、全く同時なんて有り得ないだろ
165 :
161 :2006/10/18(水) 11:18:28 ID:mLDryStd0
以下文追加でできました。 ~RCtrl & ~LButton::
166 :
147 :2006/10/18(水) 15:35:47 ID:FqPggZt00
>>159 それつかってみました。
今のところ大丈夫っぽいです。さくさく動くようになりましたです。
あんがとです。
C-sで「本来のC-sの挙動」(ファイル保存)とCVSへのコミットをしたい場合、 どうすれば出来ますか? 「本来のC-sの挙動」を呼び出そうとしても無限ループになってしまうのですが。 以下、検証用の失敗例。 ^s:: { ToolTip, Multiline`nTooltip, 100, 150 SetTimer, RemoveToolTip, 1000 Sleep 2000 Send,^s } return
むりやり ^s:: { Hotkey, ^s, Off ToolTip, Multiline`nTooltip, 100, 150 SetTimer, RemoveToolTip, 1000 Sleep 2000 Send,^s Hotkey, ^s, On } return
169 :
167 :2006/10/18(水) 18:23:08 ID:37BEnU+X0
>>168 おかげで動きました。
Hotkeyというがあったんですね。
ありがとうございました。
170 :
161 :2006/10/18(水) 20:51:23 ID:DGuY0nAP0
>>164 仕事で使ってる糞アプリがそうなってる
無理かな
じゃあ手で実際に入力する時には ミリ秒もずれずに完璧に同時に押してるわけ?
漏れも気になる。どんな作業やねん
>>170 これでどう? (aをやや長め押し)
a::
Send,{b down}{c down}
KeyWait,%A_ThisHotkey%,U
Send,{b up}{c up}
Return
WinGetで実行ファイル名の取得が出来るけど、フルパスの取得って出来ますか?
GetModuleFileNameEx(NT系)とか、CreateToolhelp32Snapshot(9x系)使わないといけないとなると
かなり頭痛い。
>>170 ホットキーのリマップじゃなくて
SetTimer関数の中でGetKeyStateつかって判別するようにすればいんじゃないかな?
同時押しの誤差もTimerの間隔で調整できるし、
同時押しと判別したときはctrl単体押しの判別をしないようにすればいい。
Alt+Tabとは違い、 キーを押すごとにウィンドウが順次切り替わるようなホットキーを考えています。 (リストがでないで直に切り替わる) Send,#{Tab}{Right}{Enter}でいけると思ったんですが、 #Tabでフォーカスがいくウィンドウが、アクティブウィンドウではなくて いまいちよくわからん動作をします。
176 :
175 :2006/10/18(水) 23:46:16 ID:wztnDzdE0
>いまいちよくわからん動作をします。 必ず左から2番目にフォーカスが移るようです。
Alt+Escでは
178 :
175 :2006/10/18(水) 23:51:16 ID:wztnDzdE0
スポポポポポポーン!!! 。 。 。 。 。 。 ゚ 。 。゚。゜。 ゚。 。 / // / / ( Д ) Д)Д)) スパパパパパパーン!!!!!! + ,, * + +※ + ∴ * ※ * * * +※ ゙* ※ * + + ※ ∴ * + * ( Д ) Д)Д))
182 :
160、170のレスも161じゃなしに160でした :2006/10/19(木) 18:17:36 ID:whSwIdXh0
>>171 どうなってるかは知らないけど、手動だと余裕でいける。完璧に同時なのかな
>>172 エロ系なので勘弁してください><
>>173 出来た、ありがとう
それにSetKeyDelay, -1足したら短く押しただけでもいった
a::
Send,{b down}
SetKeyDelay, -1
Send,{c down}
KeyWait,%A_ThisHotkey%,U
Send,{b up}
SetKeyDelay, -1
Send,{c up}
Return
183 :
161 :2006/10/19(木) 21:21:28 ID:CthH3HMc0
何かご用でしょうか?
184 :
173 :2006/10/20(金) 01:08:02 ID:7qG5cSND0
>>182 SetKeyDelayは他の部分にも影響するから初期値に戻しといた方が良いよ。
a::
SetKeyDelay, -1
Send,{b down}{c down}
KeyWait,%A_ThisHotkey%,U
Send,{b up}{c up}
SetKeyDelay, 10 ;初期値
Return
ん?SetKeyDelayは、ホットキー押すたびに初期値に戻るんじゃなかったっけ?
186 :
173 :2006/10/20(金) 02:43:54 ID:7qG5cSND0
>>185 知らなかった。ありがとう。
>>182 ごめん。 SetKeyDelay, 10 ;初期値 の行はいらない。
普通に手でキーを押して離すまで 数10ms かかると思うから、SetKeyDelayじたいいらない気がするが…
手動でやって「完璧に同時」は無理。 だからエミュレート動作も大概はタイミングはアバウトでどうとでもなる。 そういえば流行らせるBBSで質問してた、「絶対に完全同期じゃないと」って 言ってたヤツはどうなったのか。そしてヤツは何がやりたかったのか…
Ctl+スペースを押したら、 Ctl+Shift+{Left}でカーソル左横の文字をコピーし、 tcpの適当なポートに、コピーした文字を書き込み 読込んだ文字をカーソル箇所に貼り付けることってできますか?
メモ帳で編集中のファイルのフルパスを知ることは可能でしょうか?
>>184-187 ありがとう
確かにSetKeyDelay, -1はいらないかもしれないw
192 :
189 :2006/10/20(金) 19:04:32 ID:CUJvJUk/0
>>190 情報ありがとうございます。
その2つのツールはプログラムの実行時に与えられた引数を得るもののようですね。
それだと、起動時にファイルパスを与えていない時には情報が得られないです。
「名前を付けて保存」や「開く」をした時にもファイルのパスを知る方法は無いでしょうか?
>>192 clipboard=%1%
run,%1%
exitapp
このスクリプトをコンパイルして、ファイルをドロップすると、フルパスがクリップボードに格納されてファイルが開く。
このEXEにTEXTを関連づけすると希望の動作になるのかな?
194 :
189 :2006/10/20(金) 19:32:26 ID:CUJvJUk/0
>>193 ありがとうございます。
でもその方法ですと、起動時に与えられたフルパスは得られますが、
編集中に「名前を付けて保存」や「開く」をした場合には
編集中のファイルが変わってしまい、新しいフルパスが得られないです。
フルパスをキャプションに表示できるエディタなら大概何とかなるけどね どうしてもメモ帳じゃなきゃあかんの?
196 :
189 :2006/10/20(金) 20:03:20 ID:CUJvJUk/0
>>195 キャプション=タイトルバーですよね?
元々その方法を考えていましたが、どうせなら汎用性のあるものを作りたいと思いまして。
でもやっぱりこの方法が楽ですかね。
メモ帳にこだわるつもりは特にありません。
そこまで行くとダイアログを監視して そこからフォルダーパスと ファイル名を抜き出してストックしておくという感じかなあ んん、でもフォルダーの名前はダイアログでも得られないかな… フルパス表示のエディタに乗換えるってのはダメ?
198 :
189 :2006/10/20(金) 20:47:03 ID:CUJvJUk/0
>>197 おそらく、ダイアログからフォルダーパスが取得できないです。
やっぱりフルパスが表示されるエディタのみを対象とするのが一番ですか。
199 :
173 :2006/10/20(金) 23:20:47 ID:7qG5cSND0
>>187 >>191 単純に Send のみで上手くいかないアプリは、WM_KEYDOWN , UP を拾ってるんじゃなくて、
アプリがループ内で GetKeyState あたりでキーの押し下げ状態を調べている可能性が高い。
Send のみだと一瞬で押し離しを終了してしまうので、ループのタイミングにぶつからず取りこぼしてしまう。
同時押しが必要なわけじゃなく、Down 〜 Up 間の時間の長さが重要。
そういう意味では、
KeyWait,%A_ThisHotkey%,U の代わりに、
Sleep,50 ぐらいを入れた方が適切かもしれない。
>>198 これはどう? (オプションでフルパス表示に出来る)
ttp://www.vector.co.jp/soft/win95/personal/se223080.html 見た目も使用感もメモ帳そっくり。
>>196 menuHackerの作者ですが、
色々考えたことがあるけど汎用性を求めると無りっぽ。
有力な方法としてはApiHookでOpenFileやReadFileあたりを監視するという手が有りそうな感じですが、
ReadFileなどで開かれるファイルは、エディターで編集するファイルとは限らず、設定ファイルなどの場合もあり得る。
また、複数のファイルを同時に開くタブ型エディタなどの存在もある。
パスを得られたとしてもなにをもって「開いたファイル」と決定すればいいのかが分かりません。
結局タイトルバーから取得という方法が無難な感じです。
誤:OpenFile 正:CreateFile
>>188 これおもろそうだな。
マルチな入力補填できそう。
ただネットワークはhttpしか対応していない模様・・・
URLDownloadToFile
>>203 どうやら俺もまったくわかっていないようだ・・・どうやんの?
205 :
189 :2006/10/22(日) 01:43:50 ID:70OqqiOt0
>>199 ありがとうございます。メモ帳みたいな使い勝手で良い感じですね。
>>200 作者さんでしたか! なるほど、参考になります。
確かに完全な汎用性を求めると無理そうですね。
複数ファイルを開いている場合などは特に。
206 :
名無しさん@お腹いっぱい。 :2006/10/22(日) 03:31:38 ID:3ZnhZDajP
%ClipBoard% の日本語が文字化けしません? 何か対処法はありますか?
208 :
名無しさん@お腹いっぱい。 :2006/10/22(日) 13:49:23 ID:3ZnhZDajP
>>207 行きました。野糞のフィギュアがありましたが??
だからなんだよ
>>203 おねがいします。
ネットワークに書き込んで読込むのを教えてください!
板違い。1つも調べる気がないならあきらめろ。
つーか元々AutoIt2から派生したソフトじゃなかったっけ?>AHK ヘルプやチュートリアルにもAutoItユーザー向けに書かれてるページがあったような。 AHK2EXEなんて思いっきり AutoIt のロゴ入ってるし
215 :
名無しさん@お腹いっぱい。 :2006/10/29(日) 22:57:33 ID:Nz5CEo3hP
::hoge::形式の補完入力結果に{}を含めるにはどうしたらいいですか? `{とエスケープしてもうまくいきません。
すごいよこれ ノートパソコンのメディアキー対応プレイヤーを使用しないから ほかに何か使い道が無いか探ってた。 今後ともよろしく。
>>215 ::hoge::{{}foobar{}}
218 :
215 :2006/10/30(月) 03:32:47 ID:tXSrRQgTP
219 :
名無しさん@お腹いっぱい。 :2006/10/30(月) 15:28:15 ID:UuRAj7yw0
>>219 メディアキーは大抵のプレイヤーソフトに有効のはず
でも確かにDVD視聴くらいにしかあまり使わんわな。
付属ソフトとか入れなくても、メディアキーに好きな機能つけられるのは魅力だよな。 しかもアプリごとに機能かえたり出来るしな。
222 :
名無しさん@お腹いっぱい。 :2006/10/31(火) 10:46:33 ID:eVwzlkhQ0
AutoHotkeyを使い gdi++経由で、kiki(ブラウザ)を起動させたいのですが、 パスのをどのように指定すればよいのでしょう。
バッチファイルで引数にプログラム名書けばいいだけじゃないの。
Autohotkey.exeにスクリプトの引数を送って実行する事ってできませんか? 例えば "C:\AutoHotKey.exe" "WinShow, ahk_class ConsoleWindowClass" みたいに .ahkファイル作ってもいいんですが、小さなスクリプト何種類も作るのは億劫なので こうゆう使い方が出来るんだったらもっと便利なんですが…
こんなのを「argcommand.ahk」とかで作成 #NoTrayIcon %1% ExitApp こんな風に実行で、 Autohotkey.exe argcommand.ahk "WinShow, ahk_class ConsoleWindowClass" できるかな?
文字列をAHKコマンドで実行とかって無いと思ったが、、 よく使う手は一時スクリプトファイルを作るやり方かな バッチ: @echo off echo %1 %2 %3 %4 %5 %6 %7 %8 %9 > tmp.ahk %AHK_HOME%\ahk.exe tmp.ahk del tmp.ahk AHK: #NoTrayIcon FileAppend, %1% %2% %3% %4% %5% %6% %7% %8% %9%, tmp.ahk Run, tmp.ahk FileDelete, tmp.ahk ExitApp
>>225 ありがとうございました。
バッチリ起動できました。
>>226-227 Autohotkey.iniに直に %1%とか書いて取出したらいいんちゃうか?
命令文自体を引数で取得したいのか。 自分の場合、引数じゃなくてiniから取ろうとしたんだが cmd := %1% ifEqual cmd,Send, Send, %2% Else ifEqual cmd,Gosub, Gosub,%2% Else ifEqual cmd,Run, Run,%2%,%3%,%4% … ていうのを昔やろうとして面倒くさくて止めた記憶がある。
2つばかりいい? パソコン起動時にスクリプトを実行できる状態にすることと、 特定のキー操作をマウスのボタン操作に割り当てることって可能ですか?
>>232 1つ目:スタートアップに入れる。これはAHKとか関係ないWindowsの機能。
2つ目:LButton:: Send, 〜などで可。
>>233 言い方が悪くて誤解させましたことをわびます。
2つ目はキーボード操作をマウスのクリックボタン(サイドボタンなど)に割り当てられるかということです。
マウスドライバの相性が悪くてサイドボタンが使えない状態なので。
>>235 試してみました。
マウス環境はロジクールなのですが、
サイドボタンが反応しないアプリが多々あるので
サイドボタンにショートカットを割り当て、それをキーフックしました。
すると割り当てのキーをAlt+Ctrl+Shift+何らかのキーにしたせいか
それぞれのキーが残った状態でサイドボタンを起動した状態になってしまいました。
ほかの手段を探ってみたいと思います。
マウ筋のが簡単かもね
正規表現きた?
Nov 4, 2006 Version 1.0.45 adds support for regular expressions
#IfWinActiveの解説にある > 通常、「a & b」のようなコンビネーションキーを指定していると、 > プレフィクスキー(先に書かれた方のキー)の本来の機能は無効になる。 > しかし、そのキーをプレフィクスとして使用するコンビネーションキーが > 全て条件により無効になっているときは、そのキー本来の動作が行われる。 がどういう状況かいまいちわかりません。
241 :
233 :2006/11/07(火) 02:29:21 ID:bTKmlVUa0
>>237 マウ筋じゃサイドボタンすら拾えないのよ・・・・・
どうもあくまでロジのサイドボタンのドライバは
(普通の)サイドボタンと認識するのはMS謹製のみの対応のようで。
仕方ないのでAlt+左右を登録で代用した。
一部テキストエディタでAltが反応してしまうけど、がまんすっか。
すれ違いスマソ。
#IfWinActive, foo a&b::x a::y みたいにしてると foo において a::y は無効になるけど、 #IfWinActive, bar a::x のように別の #IfWinActive で記述してある a は有効になるって ことだと思うよ。
暇だから適当にお題出して、ワンレススクリプト書こうぜ
じゃあミドルボタンダブルクリックで俺が就職できるってのを頼む
Loop { MsgBox, ハロワ!ハロワ!ハロワ! }
やりたいことがあってini書いてみたんです やりたいこと ブラウザで文字列を選択 Contrl+Shift+Aを押すと 構造化エディタ(sted)の新しいセクションにその文字列を貼り付け ただしそれを常にsted-memo.txt でやりたい で書いてみたのが ^+a ;Contrl+Shift+Aキーに割り当て bk=%ClipboardAll% ;クリップボードの内容をバックアップ Clipboard= ;クリップボードをクリア Send,^c ;Ctrl+Cキーを送信 ClipW ;クリップボードにテキストが格納されるまで待機 Process,Exist,G:\program\Sted\sted.exe ;stedが起動しているかどうかを調べる If ErrorLevel<>0 ;起動していた場合(ErrorLevel変数にプロセスIDが格納される) WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする else ;起動していなかった場合 Run,G:\works\sted-memo.txt ; ;memoを開く、stedで関連づけ前提 Send,^F10 ;新しいセクションを追加する、F10 Send,^v ;クリップボードの内容を貼り付ける、Ctrl+V Clipboard=%bk% ;バックアップした内容を書き戻し return どうすればうまくいきますか?
>どうすればうまくいきますか? まずはどこまで上手くいってるのかステップごとに追って調べたら? とりあえず気になったとこ Send,^F10 → Send,{F10}
それだけじゃわかんないお><
あ、ゴメン、先客が入った
待機はclipwじゃなくてclipwaitな
ProcessのName指定はフルパスじゃなくてファイル名じゃないかしら
小分けにして動くかどうか確認するのはデバッグの基本だよ。
>>247 いきなりコピペでガンガン書いても出来るわけがない
MsgBoxで変数の確認とかしながら少しずつ作っていこうよ
256 :
255 :2006/11/10(金) 19:40:43 ID:0LyFkbR00
あ、受信パスはAHKです。すいません。
257 :
247 :2006/11/11(土) 00:55:24 ID:HtBOJaRv0
>>254 流行らせるページとか見ても難しくて( ´兪)
ここが参考になるとか、まずはこういうことからやってみるといいよとか
何かヒントはありませんか?
やりたいことがあるんだから
>>247 をやってみればいいんじゃないの。
あとプログラムの経験がどれだけあるか知らないが
いきなり
>>247 みたいに全部書いて
なんか知らんが動きませんとかいうのはよくない。
書き方が不安なら、確実に動くものに少しずつ付け足していって
失敗した所の書き方を改めて調べればいい。
そもそも hotkey の当て方が間違ってる。
^+a::
msgbox,hoge
return
こんな風に書く。
おまいには 248-254 あたりレスが見えんのか? アドバイスとヒントだらけだろうが
260は >257へのレス
さては笠松さん使ったことないな 自分が何をしたいのかを考えて表示されたページをよくみれ
>>262 小さく「ダウンロード」の文字があるのでさがしなさい
265 :
262 :2006/11/11(土) 16:20:44 ID:3Q4M0okT0
>>263-264 ああ!レスをふまえてしばらく眺めてたら分かった!!
おかげさまで無事落とせました。どうもありがとっす。
ここは使ったことなかった・・・
あと
>>255 さん、ヘルプナイスです。
266 :
247 :2006/11/11(土) 16:47:29 ID:HtBOJaRv0
たびたびすみません ^+a:: Send,^c ClipWait Run,G:\works\sted-memo.txt return ^+b:: Send,{F10} Send,^v Send,^s Send,!fx return これで二回の操作に分ければ、 やりたいことができました。 これをどうにかつなげたいんですが。 ^+a:: msgbox,hoge Send,^c ClipWait Run,G:\works\sted-memo.txt WinWait,ahk_class appwnd --ここまで動く-- Send,{F10} Send,^v Send,^s Send,!fx return F10が押されないorz
そのプログラムをアクティブにするとか 数秒待つとかしてみたら?
FileAppendじゃいかんのかねぇ
WinWaitActive,ahk_class appwnd IfWinNotActive,ahk_class appwnd WinActivate,ahk_class appwnd Send,{F10
ネットランナー 2006年11月号を見てたら、「Autohotkeyを流行らせるページ」管理人氏が ネットランナーの年間フリーウェア大賞の選考委員を務めていたのにはワラタ。 しかも、そのプロフィールにもさらにワラタ。
カーソルで小さな円を描くと、右回しで下、左回しで上にスクロールする。三点を通る円の中心で判定してる。 limit=50 ;大きくすると判定が緩くなる settimer,scroll,50 ;小さくすると反応が良くなる return scroll: last:=(x2-ox2)*(y2-y1) ;前回の回転方向。正なら右、負なら左 x1:=x2 y1:=y2 ox1:=ox2 oy1:=oy2 c:=a d:=b mousegetpos,x2,y2 a:=-(x2-x1)/(y2-y1) ;垂直二等分線の傾き b:=(y1+y2-a*(x1+x2))/2 ox2:=(d-b)/(a-c) ;外接円の中心座標 oy2:=a*ox2+b ;前回の中心座標と今回の中心座標の距離 dis:=Sqrt((ox2-ox1)*(ox2-ox1)+(oy2-oy1)*(oy2-oy1)) if (dis<>0 && dis<limit) { if ((x2-ox2)*(Y2-Y1)>0 && last>0) send,{wheeldown} if ((x2-ox2)*(Y2-Y1)<0 && last<0) send,{wheelup} } return esc::exitapp
よくわからんがアニメに造形が深いのは氏のページ見て理解した。
>>266 WinWaitはウィンドウのアクティブ化を待つコマンドではないよ。
ウィンドウが存在するようになるのを待っているだけ。
だからウィンドウが最前面に来る前にF10が押されているんだろう。
「--ここまで動く--」の次に長めのsleepを入れて試してみる。
それで動くならウィンドウが最前面に来る前にF10が押されてしまっている。
>>267 の言うとおり、ちゃんとウィンドウがアクティブになるのを待つような
スクリプトになっていないのが原因。
WinWaitActiveでウインドウがアクティブになるのをちゃんと待つか、
必要ならWinActivateを使って意識的にアクティブ化する。
アクティブ化に失敗した時のエラー処理も入れておくとさらによい。
275 :
名無しさん@お腹いっぱい。 :2006/11/12(日) 23:48:00 ID:HMJoK/3s0
>>272 これおもしろいな
ホイールに使うと誤爆が多くて駄目だけど
2回転したらアクティブなアプリを切り替えるとかに使うと便利そう
>>274 Sleep, 1000を挟んだら動きました。
でも
>>269 だと
なぜかうまくいきませんでした。
あとは
Run,G:\works\sted-memo.txt
ではなくて
Run,G:\program\Sted\sted.exe
にしてG:\works\sted-memo.txtを開くには
どうすればいいですか?
もうほんと教えて君で申し訳ない↓
277 :
274 :2006/11/13(月) 00:57:50 ID:kVmBIxWW0
>>276 > でも
>>269 だと
> なぜかうまくいきませんでした。
人が書いたモノをコピペするんじゃなくてちゃんとリファレンスを読んで
WinWaitActiveやWinActivateの使い方を理解したほうがいいよ。
>>274 で書いたようにちゃんとウィンドウがアクティブになるのを待つような
スクリプトにすれば動くはず。
>>269 が悪いわけじゃない。
> Run,G:\works\sted-memo.txt
> ではなくて
> Run,G:\program\Sted\sted.exe
> にしてG:\works\sted-memo.txtを開くには
> どうすればいいですか?
そのソフトがコマンドラインからファイル名を指定して実行するときは
どうやればいいか自分で調べてください。それと同じ書き方をすれば
できるはずです。
救いようがない。
人間がやるオペレーションをそのままコマンドに出来る
ってのがAHKのいいところではあるんだけど
実行した結果、手オペでやったのと同じ、
ってスクリプトを生成するって方が楽なときって結構ある。
>>247 のやりたい事って「貼り付け」じゃなくてファイルへの
追記なんだから FileAppend使えばすぐ終わりそう。
セクションはタブか半角スペースを最初につけるだけでいいらしいし。
いま窓使いの憂鬱使ってるんだけど、両方使うと不具合出ますかね?まじで
機能を実装してるレイヤが違うから、 ちゃんとわかってる人が使うなら何の問題もない。 と言う話が繭スレで出てるからそっちも読んでこい。
そいつはすげぇや。俺もコレ使うよ。ありがとうという気持ち。まじで
>>282 ああ、捕捉しておくと、KB->繭->AHK->アプリと言う順で処理されるから、
そこのところ考えて使ってね。
>>279 ええと構造化エディタは
半角スペースだけの行が入ると次のページ
タブだけの行が入るとそこからが子ページ
ってなってて
^+a::
Send,^c
ClipWait
FileAppend,
%Clipboard%, *G:\works\sted-memo.txt
return
ってやるとエラーになる
htmlでいう<br>みたいなのってないですか?
改行のテキストを入れたい。
すれ汚しスマソ
^+a:: Send,^c ClipWait FileAppend, %A_Tab%`r`n%Clipboard%, G:\works\sted-memo.txt return スペースなら%A_Space%で。
286 :
247 :2006/11/15(水) 12:21:23 ID:xBRhszmT0
できたぁ(´・ω;)。゜.゜ レスくださったすべての皆さんありがとう。 これからも精進します。
セミコロンとかコロンとか"\"をホットキーで割り当てるときとかってどうするんですか? たとえばシフトとセミコロンをDownに割り当てたいときです
なんでリファレンス読まないの?
>>288 リファレンスってヘルプ?
探したけど見つからなかったんです 。
何処に書いてます?
>>290 あー!
ありがとう。
付属のヘルプにはそういうの書いてなかったな。
Note: The names of the letter and number keys are the same as that single letter or digit. For example: b is the "b" key and 5 is the "5" key.
おれはキーの配置変更は繭、それ以外はAHKでやるように使い分けてる。
正確になんていうか知らないんだけど、システムリソース(メモリー)の使用率って取得できるんですか? windows 98です。
各値の意味はMSDNの構造体メンバ名から 適当に推察しただけなんで間違ってるかも…
思えばしずちゃんの芸風ってメンバ名のぱくりだな
流行らせるページのMyScriptsにすでにある
AutoHotkeyの文法って既存のプログラム(スクリプト)言語だとどれに似てる? CでもBASICでも無いっぽいし
Cだろ
>>294 ありがとう御座います。
試してみます。
起動するとタスクに表示される「H」というアイコンを表示させないようにするにはどうすれば・・・
AHKファイルの先頭に #NoTrayIcon を追記しましょう
305 :
287 :2006/11/22(水) 20:15:29 ID:6Cf6H9nn0
>>287 なんですけどセミコロンは出来たのですがコロンができない。
下の何処がわるいのでしょうか?
`::: send, {up}
↑
(バクチク?)(コロン)(コロン)(コロン)
ねえ、これ例えばa::sっていうahk起動させてるときに タスクトレイに入ってるアイコン右クリックからPause script選んでも 全然一時停止にならない Pause Scriptってa::sの機能を一時停止して、普通にa押したらaになるってことだよね?
> Pause Scriptってa::sの機能を一時停止して、普通にa押したらaになるってことだよね? いいえ。 Pause Scriptの名の通り、現在処理中(ループ中とかsleepなどで待機中とか)のスクリプトを 一時停止するだけで、スクリプトの実行を受け付けなくなるなるわけじゃない。 先に言っておくが、「じゃあ、一時的に無効化するにはどうすればいいの」とか すぐに聞き返してこないでね。まずは自分で調べよう。
>>307 えっ、「じゃあ、一時的に無効化するにはどうすればいいの」が聞きたかったのですが。。。
仕方ない調べてくるか
λ........
分かったお( ^ω^) a::s ^!s::Suspend return で出来たお、ありがとお
よくわからんが右クリでsuspend scriptするだけじゃ駄目なの?
修正 suspend script -> Suspend Hotkeys
312 :
309 :2006/11/23(木) 01:18:22 ID:oQaWgZ400
>>310-311 おお、なんてこったい/(^o^)\
Pause Scriptにばっかり目いってそんなのあるって気付かなかったよ
なぜ人が自立するのを阻害するのか…
一応自分で考えて結論出した後でのアドバイスだからいいんでね?
315 :
307 :2006/11/23(木) 02:17:09 ID:E5B7gUJp0
余計な事するんじゃないよ。
踊らされたねw
318 :
名無しさん@お腹いっぱい。 :2006/11/25(土) 15:41:40 ID:21DEIaGg0
豆腐うめえええええええええええええええええええええええええええええええええええええええええええええ
capslockからプログラムを起動できないのでしょうか。 capslock:: Run,C:\Documents and Settings\〜\fenrir064\fenrir.exe,C:\Documents and Settings\〜\fenrir064 これだとうまく機能しないのですが起動するキーをF1とか他のキーにするとうまくいきます。
特殊なキーだからね ウチでも出来ないよ
うちは「vkF0sc03A」でいけるけど
アクティブをWinHideで消した後、 消したウィンドウがアクティブになってしまっているのが結構不便。 DetectHiddenWindows,off WinHide,A WinGet,lst,List,,,abcdefg ;存在していないであろうタイトル Loop,%lst% { whnd:=lst%A_Index% WinGetClass,cls,ahk_id %whnd% if(cls!="Shell_TrayWnd") ;タスクバー { WinActivate,ahk_id %whnd% Break } } return 一応これで消したウィンドウの1つ後ろがアクティブになりますが、 もっと簡単な方法ありません?
英数をCtrlにShift+英数をCapsLockにできますか?
マウ筋とAHKを併用してます
RWheelUpなどをAHKに割り当てるとマウ筋にイベントが渡らなくなるんですが
良い方法ありますか?
~RWheelUp や ~WheelUp & RButton だと後でコンテキストメニューが出るので
keywait使ってaltで消したりなど試しましたが希望の動作にはなりません。
なんどか挑戦して挫折を繰り返してるので気になってるだけなんですけどね
Loopを使った引数渡しで送られた引数をスペースで区切って加えていき
アプリケーションに渡して起動という動作をしたいのですが、
%%A_index%%みたいに二重に変数の中身を取り出すは出来ませんでした。
if a_index = 1 のように条件を指定し一つずつ作らないとダメでしょうか?
>>322 WinHideはほとんど使わないんで試してないんですが、
消した後にSend,!{tab}では一瞬タスク切り替え画面が出るからだめかな?
325 :
322 :2006/11/27(月) 22:12:36 ID:JBWLm+ks0
>>324 >消した後にSend,!{tab}では一瞬タスク切り替え画面が出るからだめかな?
なるほど。その手がありましたか。
Send,!{Esc}だと切り替え画面も出ずに期待通りの動作になりました。
ありがとうございます。
>>319 ,
>>323 >>86 要はCapsキーが押し下げられたことは認識できても、離されたことは認識できないから変なことになる。
こればっかりはOS側が対処してくれないと、どうしようもないのかも知れない。
328 :
324 :2006/11/27(月) 22:59:53 ID:tJp2EjNw0
>>322 !{ESC}で表示無しは忘れてました
活用させて貰います
ありがとう御座います
>>324 外出でしたか、すみませんでした
落ちてるみたいなんでこれから見れる方法探してみます
ありがとう御座いました
225 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2005/11/26(土) 21:01:35 ID:TeG9pCZU0
>>224 引数を「"」で囲めばだいたい解決すると思いますが
Loop, %0%
{
Part := %A_Index%
Unite = %Unite%%Part%%A_Space%
}
MsgBox, "%Unite%"
どうしようもない場面では
「0」に引数の数が入るのでこんなのでどうにかしてます。
234 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2005/11/28(月) 20:15:46 ID:S9ZDzThA0 コマンドライン引数の取得の仕方がわかったので書いておきます。 GetArgs() { args := DllCall("GetCommandLine", str) StringGetPos, pos, args, %A_ScriptName% StringLen, length, A_ScriptName count := pos + length + 1 StringTrimLeft, args, args, count return args } args := GetArgs() MsgBox, %args%
331 :
324 :2006/11/28(火) 00:12:05 ID:24sml1zm0
maSTHrVK0さん ありがとう御座います 少し前に見つけてDllCallのほうを試すのに熱中してました。 すみません お気遣いが嬉しかったです 感謝します
英語版のwindowsならCapsLockとCtrl入れかえられるという話を聞いたことがある。
過去ログでさんざん既出だお Windows日本語版の問題
マウスの不調でLButtonがダブルクリックになるのを回避したいのですが、 ~LButton::return LButton up:: BlockInput, on sleep,80 BlockInput, off return これだと装飾キー+クリックしたときに装飾キーが押しっぱなし状態になる のでBlockInputを使わないアイディアをよろしくを願いします。 マウス買えはなしの方向で
マウス盗め
そういや去年の今ごろ 使えてマウス をなんとか使えるようにするため AHKでボタン入替えスクリプトとか四苦八苦して作ってたな。 そして今年は ごろ寝リターンズ がどうにも気になってる自分
Loop内で配列を使いたいとき、 str := data%A_Index% このやり方はわかりました。しかし、 str%A_Index% := A_Loopfield これは動作しません。 このように左辺の配列に、代入をしたい場合はどうすればいいんでしょう。
できるけど? ただ単にA_Loopfieldに何も入ってないだけじゃない?
適当な区切り文字を入れて StringSplitを使うとか
341 :
334 :2006/11/30(木) 20:10:53 ID:MAy+Su1j0
こんな感じで解決しました。 LButton:: Send,{LButton Down} KeyWait,LButton Send,{LButton Up} KeyWait,LButton,D T0.06 If ErrorLevel=0 msgbox,16,,買い換えて!,1 return
>>339-340 A_loopfieldが空でした…
お騒がせしました、できました
先日、久々にAHKのバージョンあげたら、仕様変わって動かないスクリプトが出てきて四苦八苦です
前はif (a=hoge | b=hoge)で動いていた命令も、
if (a="hoge" || b="hoge")って書かないと動かなくなってたり
誰か1.0.46の新機能をまとめてくださいませんか? expression系が結構わからなくて・・・
>>343 Added function SubStr(), which retrieves the specified number of characters at the specified position in a string.
Added assignment operators //=, .=, |=, &=, ^=, >>=, and <<=, which can be used anywhere in expressions. For example, Var .= "abc" appends the string "abc" to Var's current contents.
Added full support in expressions for the operators ++, --, +=, -=, *=, and /= (formerly, they could be used only as the leftmost operator on a line).
All assignment operators (especially ++ and --) behave in a C-like way when their result is used by some other operator.
Added the ternary operator (?:), which is a shorthand replacement for the if-else statement. For example, var := x>y ? 2 : 3 assigns the value 2 if x is greater than y; otherwise it assigns 3.
Added support for comma-separated expressions, which allow a single line to contain multiple assignments, function calls, and other expressions. [thanks PhiLho & Titan]
Improved variable declarations to support initialization on the same line. Note: A static variable's initialization occurs only once, before the script begins executing.
Improved line continuation to support all expression operators. For example, a line that starts with "?" or "+" is automatically merged with the line above it.
Improved performance of operators "." and ".=" to be as fast as the percent-sign method of appending a string.
Improved expressions to allow more types of consecutive unary operators such as !!Var. [thanks Laszlo]
Changed: A variable named simply "?" is no longer valid in expressions due to the new ternary operator.
>>344 そういうことではないと思うけどね。
公式HPに初めて行っみたけど
流行らせるページだけ見て試行錯誤してた自分にとって結構衝撃。
「Splitting a Long Line into a Series of Shorter Ones」とか始めて知ったことが多い。
英語苦手だけど気合入れて読むとしますか
「Autohotkey」でブログ観察してると ロシア語なんかも結構引っかかってくるね。
AHKに搭載されてる正規表現で、「hoge数字」を「数字hoge」に置換しようと考えています ですが、以下を実行してもうまくいきません Str = hoge1234.txt MatchPattern = hoge(\d+) ReplacePattern = \1hoge NewSTR := RegExReplace(Str,MatchPattern,ReplacePattern) NewStrの結果は「\1hoge.txt」と返ってきます (\d+)の呼び出しは「\数字」ではいけないんでしょうか
>>347 ちゃんと書いてあるじゃん。
検索での参照は \数字
置換での参照は $数字
だって。
>>348 申し訳ありません、見落としてました
無事解決しました
いままでAutoHotkey104409使っててさっきAutoHotkey104600に変えたんだけど、 これってバージョンアップするのフォルダごと上書きでOKですか? なんか上書き前にバックアップ取っとくものありますか? どっちもzip解凍版使ってます
上書きでいいけど、バージョンアップで書式が変わっているとスクリプトが動かなくなるってだけ
バックグラウンドのIE6のウィンドウに{HOME}キーを送るだけなのですが IfWinExist, ahk_class IEFrame { ControlSend,,{HOME} (もしくは^{HOME}) Return } と書いて動きません。どうにかキーを送る方法はないでしょうか?
>>351 ああ、そうですか、昔のスクリプトが動かなくなる可能性があるんですね
これってAutoHotkey104409とAutoHotkey104600の2つを
C:\Program Filesに置いた場合、〜.ahkを右クリックから
”プログラムから開く”→”AutoHotKeyで開く”をやった場合どっちで開くんですか?
zip解凍版のため関連付けとか一切やってません
選択した方に決まってるでしょ
>>352 試してないけど、
ControlSend,ahk_class IEFrame,{HOME}
じゃない?
>>356 レスサンクスです〜
ダメでした・・
>>352 のやり方でもなぜかIEだけ動かないんですよねorz
ControlSendは動かないもの多いよ SendMessageとか使ったほうが良くないか
ahk_class IEFrameってウィンドウタイトルで コントロールに送信するんやから ちゃんとコントロール指定せなあかんとおもふ ControlSend, Internet Explorer_Server1, {HOME}, ahk_class IEFrame とかじゃね
#IfWinActiveでProcessNameごとにホットキーを割り当てるにはどうしたら良いですか? タイトルは空欄だったり正規表現でも追えないほどの可変だったり、クラスは汎用的な名前で他のソフトとダブったりで、 ProcessNameくらいしか確実に判別する手段がないってソフトがいくつかあるので。 現在はWinGetでアクティブウィンドウのProcessNameを取得して、それで条件分岐する方法を取っていますが #IfWinActiveに比べてコードが煩雑になる上に処理が僅かにもたつく感じがするので、出来れば使いたくないです。 というわけで既に代用法は用意されているので、#IfWinActiveでの解決方法を知ってる方が居ましたらご教示ください。
ID
362 :
360 :2006/12/07(木) 12:56:00 ID:15Au9fK60
>>361 自分へのレスでしょうか?
ahk_idとかahk_pidのことなら、起動毎に変化するこれらではProcessNameでの条件分岐には使えません。
スクリプトを起動した時点で既に起動しているものに対してなら、最初にそれらのハンドルやプロセスIDを取って
それを条件にすることも可能ですが、スクリプト起動後に新たに起動したものまで対応させるとなると
結局は条件分岐の条件(対象ウィンドウグループ)を別な場所で用意する代用的な方法になってしまいます。
そういった代用法ではなく、直接的にProcessNameで振り分けられる方法が欲しいのです。
IDというのがahk_idやahk_pidの事ではないとか、ahk_idやahk_pidで直接ProcessNameを条件に出来るというなら
もう少し詳しく教えてください。そうでなければ引き続き別な回答をお待ちします。
「ProcessNameじゃなきゃ上手くいかないけど他に方法があるなら言ってみろ」ってか。 360がケンカ売ってるように読めるのは自分だけ? 処理がもたつくのが嫌っつってるけど、ProcessNameの取得方法に 本当にムダがないのかどうかはソース晒してみないとわからんのとちがうのか
(`・ω・´)ウラレタ ケンカハ オレガ カウ!! サア カカッテキナサイ!!
喧嘩の叩き売りと聞いて飛んで来ました
366 :
360 :2006/12/07(木) 15:07:29 ID:r/HMqf5u0
> 「ProcessNameじゃなきゃ上手くいかないけど他に方法があるなら言ってみろ」
確かにケンカ売ってるように読めます。363さんが書いたその口調なら。
> 処理がもたつくのが嫌っつってるけど、ProcessNameの取得方法に
> 本当にムダがないのかどうかはソース晒してみないとわからんのとちがうのか
key::
WinGet, procname, ProcessName, A
if (procname = "hoge.exe")
;処理内容
else if (procname = "huga.exe")
;処理内容
else if
:
return
「;処理内容」の部分は
#IfWinActive, hoge
key:: ;処理内容
#IfWinActive, huga
:
と共通。実際には{ }でブロックして複数行の処理を書いてる場合もありますけど
処理内容を全く同じにして、WinGet→ProcessName=???と#IfWinActive, ???で違いが出ます。
ほんの僅かな差ですが、キー操作というのは元々クイックなものなので、
そのわずかな差、何かに引っかかってるような操作感が気になります。
とにかくProcessNameかそれ相当のもの(汎用的に実行ファイル毎の識別が出来て、起動ごとに変化しないもの)を
#IfWinActiveに指定する方法を知っている人が居たら教えて欲しいというだけです。
>>364-365 買いたい人ばかりで売りたい人が居ないみたいです。
折角来たのだから、とりあえずお茶でも飲んでまったりしてください。 つ 旦~
367 :
名無しさん@お腹いっぱい。 :2006/12/07(木) 18:17:19 ID:H8eiWnv30
口調だけじゃなく何となく言葉にトゲがあるって意味だよ
俺はたいして気にならないけど
>>363 の言いたいことも分かる
スプリクト以前に起動したものになら対処できるなら
新たなプロセスが立ち上がるのをloopで常に監視すれば?
368 :
353 :2006/12/07(木) 20:40:23 ID:OKj5FZEr0
>>354-355 .ahkを右クリックから”プログラムから開く”→”AutoHotKeyで開く”をやったんだけどさ、
なぜか開かない。・゚・(ノД`)・゚・。
AutoHotKey104600フォルダの中のAutoHotkey.exeにD&Dすれば起動してくれる
これはなんででしょうか
EXEのパスが古いままなんだろ
104600の方に関連付けてやれば?
371 :
353 :2006/12/07(木) 21:57:28 ID:OKj5FZEr0
>>369 いや、自分で参照からフォルダ遡って現在の.exeを選んでるけど出来ないんです
>>370 やっぱそれしかないのかなあ
て、関連付けって普通にマイコンピューター→ツール→フォルダオプション
からやるんですよね?
今まで関連付けしてなかったんですが
EXEファイルの方間違えて落としてて解凍してないとか
てーか、さっきからAutoHotkeyってレベルじゃねーぞ
だな
AHKってIE・Firefoxで任意のリンクをクリックする事はできる? 座標指定じゃなくて、テキストを指定して です
>>375 1. OCR と連動
2. COM を使う
AutoHotkeyでOpenJaneのメニューを非アクティブのまま操作する方法は無いでしょうか? Post/SendMessageやControlSendやWinMenuSelectItemでやってみたのですが、どれも駄目でした。 PostMessageやSendMessageは、窓コン等で調べてもwParamの値がわからなくて駄目でした。 ControlSendだとメニューは選択されてるっぽいのですが、それ以上は何も出来ず、 WinMenuSelectItemで指定しても駄目でした。 他のソフトを操作するのは出来てるのですが、Janeだけは失敗してしまいます。 どうかお知恵を拝借できないでしょうか?
最終的にしたいことは何?
>>378 開いているタブ全部の、印を付けているスレをすべて開きたいんです、非アクティブのままで。
うろ覚えですがマウ筋でwParamを取得できた気がします 値が間違ってたり、ソフトの更新のたびに調べ直さないといけない気もしますが。。 アクティブなタスクを変数に格納した後に WinActivateかControlFocusでJaneかメニューにフォーカス当てて sendでショートカットキーを送ったのちに変数のアプリにフォーカスを戻す すみませんがこんなのしか思いつきません 私はViewを最大化して使ってるので 非アクティブにこだわる意義がいまいちわかりません。 どんなメリットあります?
JaneはDelphi製だからメッセージとかは不定で指定付加なんじゃなかっけ?
フォルダをごみ箱に入れるのって無理? ファイルはFileRecycleでできるみたいだけど。
フォルダ名指定したらいいんでねーの?
>>380 >うろ覚えですがマウ筋でwParamを取得できた気がします
もしよろしければ取得方法をお教え願えないでしょうか?
>どんなメリットあります?
他の作業をしながら、というのが大きいです。
アクティブにしてSendを使うようにすると、
自動操作中は他の事が出来なくなってしまうので。
>>381 >JaneはDelphi製だからメッセージとかは不定で指定付加なんじゃなかっけ?
ということは無理っぽいですか?>非アクティブで操作
開いているタブ全部は無理だけど 今アクティブなタブなら ウィンドウタイトルからフォルダ名を取得して ログフォルダからIDXファイルをLOOPし「印」をつけたスレッドだったら IDX内にあるURLとファイル名をくっつけて正しいURLを作成し Run, ***JANE2CH.EXE -h -b {URL} でじゃんじゃん開けば非アクティヴで開けそう タブにあるテキストが取得できれば同様にこれを繰り返せばいいと思うけど AUSPYでは取得できないね
>>384 んー。私の勘違いかもしれないのを先にことわっておきます
マウ筋のコマンド登録で『ボタンを押す』を選んで望みの動作を実行するだけです。
厳密に言えばwParam=ボタンコードではないんでしょうけど
PostMessageに取得したボタンコード入れたら動いたので
窓コンで取得できなかった時などにマウ筋で調べるようにしてます。
もちろんこの方法で取得できない場合もありますので誤解無きよう
381さんの言うように指定不可なのかもしれませんし
タブを閉じるや更新などを上記の方法でしていた記憶があるんですが、
Janeの種類によるのかもしれませんね
まあ、これ以上はスレ違いの気がするのでこの辺で
ツリーのコントロールを操作するコマンドってありませんよね? GUIコマンドで作ったツリーの操作はできるようですが。 公式にツリー対応予定とかって書いてありますか?
>>386 マウ筋スレでそんな裏技は是非語ってくれ。彡サッ
>>385 次の板を選択するとき以外は、非アクティブなままで、なんとか出来そうです。
>>386 ボタンがあるコマンドなら何とかなるっぽいですね。
お二方とも、御返答ありがとうございました。
aキー押したら0.1秒だけaキーを押して離したって動作を 再現するにはどうすればいいんですか?
a:: Send,{a down} sleep 100 Send,{a up} return
なまずさんところのダメ文字関数、非常に重宝しているのですが 「FileMove」や「FileMoveDir」はないみたいで困っています。 何か手段はないでしょうか?
試してないが、MBS_MultiByteToWideCharとか、 MBS_WideCharToMultiByteを使ったら、出来ないか?
394 :
392 :2006/12/16(土) 23:06:26 ID:YaeauG5I0
安心しろ 俺なんかさっぱり分からない。
そもそも駄目文字のまま食わせてもfilemove自体はちゃんと動作するだろ ディレクトリ名を分割する文字列処理だけを関数でやればいい
>>394 いや、応用も何も mbstring.ahk をテキストエディタ等で開いて、
2899行目辺りと2934行目辺りを見れば簡単に分かると思うよ。
>>396 の言うように動作に支障がないのなら使う必要はないと思うけど。
>>397 394じゃないけど、今まで苦労していたFilemoveのダメ文字対応あっさりできました
感謝
タスクトレイに特定ソフトが常駐していれば、終了するスクリプトがうまく動きません。 流行らせるページのリファレンスは一生懸命読んだのですが、問題解決できません。 アドバイスお願いします。 Process, Exist,Kami.exe if ErrorLevel <> 0 Process, Close,ErrorLevel
>>399 プロセスを殺すだけなら3行目のErrorLevelを%で囲むといいよ
ただしタスクトレイにいるソフトの場合は最初に
DetectHiddenWindows,Onを書くべきなはず
プロセス名でやってるんなら要らないでしょ
そうだね。自分でも今気づいた
でもこれではタスクトレイのアイコンは残ってしまうね
>>399 PostMessageでいいんじゃね?
タスクトレイのアイコンをクリックして
終了というメニューがあるのなら、大抵の場合はそれで出来る
昨日最新版落としたと思ったらまたアップデートorz
>>400 ありがとう。できた。
下のようなスクリプトなのだが、一番上のコメントアウトしている te.exe
を終了しようとするとエクスプローラーが落ちる。
「コンピューターを保護するため……終了します」
こんなメッセージが出る。
te.exe というのはtasktreyexpand という指定したタスクトレイアイコンを非表示にするソフト。
これを ahk で終了させられないでしょうか。
;Process, Exist,te.exe
;if %ErrorLevel% <> 0
;Process, Close,%ErrorLevel%
Process, Exist,Station.exe
if %ErrorLevel% <> 0
Process, Close,%ErrorLevel%
Process, Exist,Kami.exe
if %ErrorLevel% <> 0
Process, Close,%ErrorLevel%
Process, Exist,CLCL.exe
if %ErrorLevel% <> 0
Process, Close,%ErrorLevel%
Process, Exist,CLaunch.exe
if %ErrorLevel% <> 0
Process, Close,%ErrorLevel%
>>406 DetectHiddenWindows,On
IfWinExist,TrayExpand
{
WinClose,TrayExpand
exit
}
こういう書き方でいけない理由は?(これを使う場合te.exeの
オプションで終了時の確認メッセージを出さないようにしておく)
普通にソフトを終了したいだけならProcess,Closeを使わない方が
いいんじゃないかな
あと
> プロセスを殺すだけなら「3行目の」ErrorLevelを
と言われているのにも注意すべきと思った
>>407 ありがとうございます。
おかげさまで理想的なスクリプトに仕上がりました。
タスクトレイの見えないウィンドウを操作する方法に気づきませんでした。
見えてないのにウィンドウだなんて気づけません。
AU3 Spyをつかって調べればよかったんですね……
DetectHiddenWindows,On
IfWinExist,KAMI_STATION
{
WinClose,KAMI_STATION
}
DetectHiddenWindows,On
IfWinExist,TrayExpand
{
WinClose,TrayExpand
exit
}
上記のように消すのと、Process, Close で消す違いは何でしょうか?
Process, Closeで消すとデータが破損するなど何か良くないことが起こるのでしょうか?
そのくらいは思い至りませんか?
付属のIntelliSenseが上手く動きません。 I_Editorとahk_dirを変更したんですが、他にも何か必要でしょうか?
WindowsXP
>>408 >上記のように消すのと、Process, Close で消す違いは何でしょうか?
WinCloseは文字通りウィンドウを閉じている。×ボタンを
クリックして閉じているのと同じ。
Process,Closeはウィンドウを閉じるのではなく
実行中のプログラムを強制的に殺している。
タスクマネージャから「プロセスの終了」を選んでいるのと同じ。
普通にソフトを閉じたいだけならできる限り前者を使うでしょ、普通
Shiftキーを押している間だけ、マウスの移動速度が下げられるようには出来ないでしょうか?
レジの書き換えで出来るかも出来ないかも HKEY_CURRENT_USER\Control Panel\Mouse
415 :
名無しさん@お腹いっぱい。 :2006/12/20(水) 17:44:20 ID:gd63rySr0
Live鯖落ちてね?
超高速レスサンクス! 試してみます!!!1111
417 :
413 :2006/12/20(水) 18:47:15 ID:SrY1EQeZ0
>>414 残念ながらレジストリで設定するやり方が解りませんでした・・・。
DOSのフリーソフトと組み合わせ実現出来ました。
ttp://pcgenki.com/soft2/MouSpd.htm Loop
{
Sleep, 50
GetKeyState, state, Shift, P
if state = D
{
Run C:\MouSpd\MouSpd.exe 5
Loop
{
Sleep, 50
GetKeyState, state, Shift, P
if state = U
{
Run C:\MouSpd\MouSpd.exe 10
break
}
}
}
}
return
常にShiftを監視するループが回り放しになっちゃうのが気持ち悪いです。
もっと上手に作る方法はありませんでしょうか?
418 :
390 :2006/12/20(水) 18:57:19 ID:2yhhqIV00
>>391 すごく遅くなって申し訳ない
ありがとうございました
タスクトレイに表示されるアイコンの一時停止中のアイコンと右クリックで出てくるメニューを変えるにはどうすればいいですか?
>>417 レジストリいじってみたけど、即時反映されないな
AHKでかくとこんな感じか
~LShift::
RegWrite,REG_SZ,HKEY_CURRENT_USER,Control Panel\Mouse,MouseSpeed, 2
return
~LShift up::
RegWrite,REG_SZ,HKEY_CURRENT_USER,Control Panel\Mouse,MouseSpeed, 0
return
>>417 ループをなくすとこんなかんじかね。
書いてて気がついたんだけど、Shiftで指定すると押し上げでイベント発生、LShiftだと押し下げでイベントが始まる。
~LShift::
Run C:\MouSpd\MouSpd.exe 5
Keywait,LShift,U
Run C:\MouSpd\MouSpd.exe 10
Return
>>419 両方とも流行らせるページに書いてある。
自分で調べる気がない奴はこういうツール使わない方が良い。
DOSソフト走らせるなら Run, C:\MouSpd\MouSpd.exe 10, , Hide ってやるとプロンプト出さずに済むよ
425 :
413 :2006/12/20(水) 21:01:05 ID:SrY1EQeZ0
>>420 >>421 レス有り難う御座います。
自分でも最初ループじゃなくて keywait を使って試したんですが、
「LShiftだと押し下げでイベントが始まる。 」
これが上手く動かなくて、望むような動きが出来ませんでした。
どう設定しても
「Shiftで指定すると押し上げでイベント発生」
この動きになってなってしまいます。
AutoHotKeyのバージョンが違うのでしょうか・・・
うちは1.0.46.00を利用しています。
426 :
413 :2006/12/20(水) 21:03:39 ID:SrY1EQeZ0
>>424 DOSソフトって書いてしまったんですが、画面を表示しないWinのソフトでした。
情報有り難う御座います。
427 :
413 :2006/12/20(水) 21:09:02 ID:SrY1EQeZ0
>>425 自己レスです。
「LShiftだと押し下げでイベントが始まる。 」
すみませんちゃんど動作しました。
他のショートカットとの組み合わせが悪さをしていたようです。
ご迷惑おかけしました。 m(__)m
貴重な情報有り難う御座います!
>>422 スイマセンありました。
もう一つ質問なんですがEnvGetを使って環境変数から現在時刻を取得したいんですが
EnvGet,clock,time
EnvGet,clock,%time%
どちらもclockが空で帰ってきます。
URLDownloadToFileでUAを指定する方法はありますか?
IEのプロクシ設定を使うみたいだから オミトロンでどうにかできそう
>>431 AHK側ではできないっぽいですね。ありがとうございました。
Win+U にキー割り当てできないのかな。 AutoHotkeyを流行らせるページ見た限りだと Win+L と Win+Uは出来ないと書いてあるけど Win+L には割り当てできた。Win+U に BackSpaceを割り当てたい・・・
434 :
名無しさん@お腹いっぱい。 :2006/12/24(日) 10:30:40 ID:ZC/WqHSG0
自分は情報囲い込みで人からは情報を得たいですか 効率いい作戦ですね
↓の様な感じで"menu"を使ってポップアップメニューを表示させてるのですが、 メニュー内の項目を10回クリックすると何故かメニューが出なくなってしまいます。 これを回避する方法はないのでしょうか? MouseGetPos, Mouse_X , Mouse_Y, Menu, hoge, Add , item1 Menu, hoge, Show return item1: Menu, hoge, Show ,%Mouse_X% ,%Mouse_Y% return
Menu, Delete を入れてみるとか
>>436 すみません、どこに入れればいいのでしょうか?
3行目のMenu, hoge, Showの後に入れたのですが効果はありませんでした。
DeleteAllでも変わらずです。
7行目のMenu, hoge, Show ,%Mouse_X% ,%Mouse_Y%の後だと10回繰り返した後に、
Menu does not exist.とエラーが出ました。
HogeがShowされてるところにさらにShowを重ねてるのがダメなのかな MouseGetPos, Mouse_X , Mouse_Y, Menu, hoge, Add , item1 Menu, hoge, Show MsgBox, B return item1: { Menu, hoge, Show ,%Mouse_X% ,%Mouse_Y% MsgBox, A return } こんな風にして挙動をみてみたけど これだとItem1が入れ子になっちゃって畳み掛けるように実行されてる ロジックを見直した方がいいんじゃないかな
いろいろ試行錯誤して↓みたいな感じで回数制限?を回避することが出来ました。 お手数おかけしました。 MouseGetPos, Mouse_X , Mouse_Y, Menu, hoge, Add , item1 GoSub, Show return item1: Menu, %A_ThisMenu%, ToggleCheck, %A_ThisMenuItem% aaa= 1 return Show: Menu, hoge, Show ,%Mouse_X% ,%Mouse_Y% if aaa = 1 { aaa= 0 GoSub, Show } return
最小化された Jane をウィンドウアクティブにするにはどうしたらいい? #c:: ahk_class = TMainWnd WinActivate, ahk_class %ahk_class% return これだと「最小化されてない時」はウィンドウアクティブになるけど・・・
普通に実行してアクティブにするんじゃダメなん?
ダメでした・・・
>>440 PostMessage, 0x112, 0xF120,,, A
Aの部分はウィンドウタイトル
これじゃ駄目?
Janeをはじめ、最小化・最大化がうまくいかないソフトいくつかあるんだよな おれも解決策知りたい
Delphi製のアプリは隠れメインウインドウがあるから ahk_class TApplication に操作かけないとうまくいかなかったりする Janeはしらない
#q:: WinGetClass, ahk_class, A ; あふとJane以外 if (ahk_class = "TAfxForm") { } else if (ahk_class = "TMainWnd") { PostMessage, 0x112, 0xF020,,,Jane } else { WinMinimize, ahk_class %ahk_class% } return ; Jane #c:: ahk_class = TMainWnd WinActivate, ahk_class %ahk_class% PostMessage, 0x112, 0xF120,,,Jane return
うう。興奮して間違えてかきこんじゃった ; Jane最小化 #q:: PostMessage, 0x112, 0xF020,,,Jane return ; Janeアクティブ #c:: ahk_class = TMainWnd WinActivate, ahk_class %ahk_class% PostMessage, 0x112, 0xF120,,,Jane return これでうまくいきました。ありがとうございました。
#Persistent CoordMode, Mouse, Screen SetTimer, mouse_ititori, 1000, Gui, 1:Add, text, , (´・ω・`) Gui, 1:Show, , サブ表示欄 Gui, 2:Add, Edit, W500 R30, Gui, 2:Show, x0 y50, サブ表示欄 Return mouse_ititori: MouseGetPos, mouse_yoko, mouse_tate, , if mouse_yoko < 5 GUI, 2:Show, , if mouse_yoko > 520 GUI, 2:Hide Return GuiClose: ExitApp マウスカーソルを右へ動かしてエデット欄を消してからカーソルを左端へもっていくと、 消したエデット欄が再び現れるという感じのスプリクトを書いてみたけど、エデット欄が現れるたびに 少しづつ短くなってしまうんじゃがどうしたもんかのう
短くならないけどなぁ
ウィンドウの下端が、ウィンドウを閉じて開くごとに上がる…と言い直そう
うちだとサイズも位置も変わらんなぁ
自分も変化なし
#IfWinActive ;条件無し ~WheelDown:: 処理1 #IfWinActive ahk_class IEFrame ;IE ~WheelDown:: 処理2 とした場合、IEがアクティブなら条件無し(処理1)の方は実行されませんが これを両方とも実行するようにできないでしょうか?
スミマセン書き忘れました ~WheelDown:: { 処理1 } IfWinActive ahk_class IEFrame ;IE { 処理2 } とするしかないんでしょうか
~WheelDown:: IfWinactive ahk_class IEFrame 処理2 処理1 return ではダメかい?
普通に #IfWinActive ahk_class IEFrame ;IE の方にも
処理2の前に処理1を入れてやれば良いだけじゃん。
処理1ってののコード量が多いならサブルーチン化してやりゃいいし。
それに
>>455 でも別に問題ないでしょ。
いったいなんでこんな質問してるのか不思議だ。
>>456-457 すみません
#IfWinActive+ホットキーの方がスクリプトすっきりするんですが
ホットキーがダブると面倒なので
ホットキー::ごとにまとめた方が管理しやすいそうですね
スレ汚し失礼しましたです
自分の普段の常駐スクリプトでは何十も #IfWinActive 使ってるから 自分ならそういう場合サブルーチンとか関数つくるよ。
If コマンドと if ()での式の比較って似てるようで違うんですね。 TEST=x if TEST="x" msgbox,a if (TEST="x") msgbox,b if TEST=x msgbox,c if (TEST=x) msgbox,d if TEST=%TEST% msgbox,e if (TEST=%TEST%) msgbox,f こういうようにカッコや""でくくるとまったく反応がばらばらになるのに気付かず、 数時間はまりました。(この場合 b,c,e しか反応しない) さらに TEST="x" とか TEST=1, TEST=0 でも結果が異なるので かなり混乱しました。
>>460 ifに限らず、( ) の中は% %でくくる必要なし。
逆に変数ではなく文字列そのまま渡したい場合は" "でくくらないとダメ。
関数のときも( )の扱いは同様なので注意されたし。
AHKを使って2chに書き込みってできますかね?
>>462 たぶん出来る。
ただ、こういうのは荒らしや厨の手に渡ると大変なんで
自分で調べて自分で作ってこっそり使ってくれ。
質問したり、作ったものをうpしたりは無しの方向で。
因みにjsやvbsの方が楽だと思うよ。
少なくともjsやvbsなら確実に書き込み出来るから。
POSTメソッドとかあったっけ? 多分荒し対策の画面挟んで バリュー取得しつつ二回POSTしないといけないから無理でしょ
適当なソフトを自動化させたりDLLcallでなんとかなりそうだな。 でも、そんなめんどい事をするくらいなら、素直に他のを使ったほうがいいよな。
Gui,Add,Editで作ったエディットボックスに日本語を入力しても 1文字目以外はEnterで確定しないかぎり画面に表示されません。 過去ログでも話題になっていましたが、結局何が原因か結論は出ていませんでした。 Gui,Add,Edit Gui,Show という一番シンプルな形にしてもなってしまうので スクリプトの書き方ではないと思います。 ahk:1.0.46.05 OS:XP SP2 IME:MS Natural Input 2003
今更ながらこのソフト便利だな FPSやりながら、気分で音楽変えたりするのに使ってる
468 :
463 :2007/01/08(月) 00:30:00 ID:Tkm1KIGV0
>>464 残念、ハズレ。
スレ違いなので、具体的なやり方とかはここで聞かないでね。
さようなら。
言ってることは間違ってないが なんで煽り口調でスレ荒らそうとしてんだこのバカは ちょっと切のいい時間に書き込めたからって調子のんなよ
おまえもなー
>>466 単純にIMEとか2バイト文字を入力する国を考慮してないからだと思う
非対応というかなんというか
>>470 俺は別に荒れようが荒らしツールが作られようが気にしねーもん
472 :
466 :2007/01/08(月) 01:52:26 ID:RhD5Y+UyO
いえ、過去ログではそうならない人となる人とで分かれていましたので・・・ 何か原因があると思います。
>>472 >そうならない人となる人
IMEかOSの差じゃないのか?
過去ログを適当に検索した限りでは、
どうもXPとIME 2002だと不具合が発生するみたいだし。
InputBoxを使うか作者にメールでもするしかないような気がする。
474 :
466 :2007/01/08(月) 12:01:30 ID:RhD5Y+UyO
>InputBoxを使うか作者にメールでもするしかないような気がする。 つまりですね、私がしたいことは 1.多くの人に動作環境を書いていただく 2.原因が判明する 3.OSやIMEのせいなら買い換える ということです。
2k SP4 IME 2000で異常は無し
>>474 集計してやる気を見せるとかしたら、乗ってくる人も多いだろうけど、ね。
XP skk で問題なし。natural input が問題じゃないの。
古いアプリケーションでホイール回転を使えるようにする「どこでもホイール」 みたいな動作をAHKで再現する事はできますか?
479 :
名無しさん@お腹いっぱい。 :2007/01/09(火) 17:23:26 ID:WeeN76zx0
出来るし
>>2 の一番上のリンク先にもあるけど
この機能は結局既存のアプリ使ったほうが便利だと思う
AHKからactiveXを呼び出す方法ってない?
内線236番
>>479 有難うございます!流行らせるページのホイールリダイレクトですね。
試した所、確かに非アクティブのコントロールにホイール回転を送る事はできましたが
古いアプリケーションでホイール回転を有効にする事はできませんでした
どこでもホイールは相性が悪いソフトもあるので、AHKで試してみたいんです。
互換モード?のホイール回転を送るにはどうしたらいいんでしょうか?
アクティブにしてもホイールが効かないくらい古いソフトってことなら そのアプリではホイール回転でカーソルキー送るようにすればいいんじゃないの。
>>484 WM_MOUSEWHELLの代わりに WM_VSCROLL or WM_HSCROLLを使えばおk
IE起動して、リターンキーやF5おしつづけてろバカ
>>468
488 :
466 :2007/01/11(木) 18:53:27 ID:eOiHwaaS0
XP × MS-IME 2003 × MS-IME 2002 ○ skkime 2k ○MS-IME 2000 ○Atok16 (SPによる違いは今のことろないので省略) こんな感じですか。 私の環境ではskkにすればOKだったんですが、これになれると他のPCが怖いんですよね。 MS-IME 2007が気になるところ。
natural input じゃなくて standard にするとどうなの?
490 :
466 :2007/01/12(金) 01:43:44 ID:2cSr8w9s0
>>489 私の環境ではどちらも同じく動いてくれませんでした。
IMEがONになっている時に Enterが押されたのが文字変換中なのかそうでないか見分けることってできませんか? 1行EditボックスでEnterをホットキーに割り当てたいです。 文字変換中は文字確定、そうでないときには任意の動作。 つまり「Enter(文字確定)」→「Enter(任意の動作)」。 IMEのON/OFFは過去ログでわかりましたが、 それだけでやろうとすると「Enter(文字確定)」→「IME OFF」→「Enter(任意の動作)」 という風に一手間かかってしまいます。 無理ならばEnter以外に割り当てます。 どなたかお知恵をお貸しください。
AHKではどうか知らないがmayuではできる。
GUIのオプションのgではだめなん?
>>466 XP SP2のATOK16で正常に動作するみたい
>>493 editのgは「入力内容が変更されるごとにサブルーチンが実行」
じゃあ、GUI のSubmitかな というか、えんてrを押した時の動作は Editの中身を打ち込んでそれを元に変化する動作ってことでいいんだよね?
>>495 なにか勘違いしてるな。
AHKのGUIのことなら
Gui,Add,Button,Default,LabelName
を追加してLabelName:に任意の動作を書けばいい。
ボタンコントロールが邪魔なら「w0 h0」とか「Hidden」とかで隠せばいいだけ。
そうでなくて、
>>491 が言っているのは既存の1行エディットボックスのことだろう。
ああ、そうか、すまん
スクリューパイルドライバーのスクリプト教えてください
#Hotstring EndChars 79-()[]{}':;"/\,.?!`n `t Clipboard=フンッ!! ::63214:: Send,^v Return ::41236:: Send,^v Return
スクリューって一回転じゃなかったっけ?
3/4回転でおk
7/8だぞ
>>501 が正解のようだね
> スクリューパイルドライバー
> コマンドは「レバー1回転 + パンチボタン」とされているが、
> 実際には上下左右の各方向に1回以上入力することが
> 条件となっているため270度の回転で出すことができる。
何の話だよw
AutoHotkeySC.binのソースコードは公開されてないのでしょうか? また、上記について調べて見つけたのですが、AutoItとAutoHotkeyの関係って何ですか?
Ctrl+Ctrl(二度押し) をホットキーにしていすることはできませんか?
流行らせるページにサンプルあるでしょ
>>508 やってみましたがよくわからんのです。
^::
Input,InputChar,C I L1 T1,{Esc},{Ctrl}
if ErrorLevel=Match
{
if InputChar={Ctrl}
Run,C:\bin\shorter\shorter.exe
}
return
情報を小出しにして質問する子には教えてあげません! 流行嫁
簡単なパスワードマネージャを作ろうと思ってます イメージとしてはブラウザの検索バーみたいにテキスト入力とドロップダウンが 一緒になってるのがいいんですが、どうも無理みたいなので横に並べて下のようにしてます Gui, Show, x%xpos% y%ypos% h34 w338, Password Gui, Add, Edit, vKeyword1 x16 y4 w150 h21 Gui, Add, DropDownList, vKeyword2 x166 y4 w120 h400 gDropDown, %psw% Gui, Add, Button, x288 y4 w40 h21 Default, Enter GuiControl, Focus, Keyword1 Return それで、このドロップダウンで選択した文字列はすぐに 横のテキスト入力覧に反映させたいのですが、これってどうやればできますでしょうか? gでサブルーチンに飛ばしいろいろやってみたのですが、なかなかうまくいきませんでしたorz
DropDown: GuiControlGet, Keyword2 GuiControl, Text, Keyword1, %Keyword2% return
あるウィンドウが操作可能かどうかの ステータスを取得することはできないでしょうか? ブラウザなどのウィンドウが操作可能になったことを確認してから、 キーを送りたいのです。
操作可能って何だ? ウィンドウがアクティブまたは存在(起動)しているということか? WinActiveでおk? 別にアクティブウィンドウ以外にもキーは送れるけどね
ウェブページが完全に表示されて、 キー操作を送りたいのです。 webページ表示 → パスワード入力 サーバのコミ具合によって、ページが読み込まれ操作可能になるまでの 時間にかなりばらつきがあるので。
>>515 ステータスバーの文字列を監視して、「ページが表示されました」になったら送るとか。
>>515 流行らせるページのシステムモニタ用関数群のネットワークモニターを使ってみては?
ただ動くかどうかはわからないけど(CPU使用率とパフォーマンスカウンターはまったく動かなかった)
520 :
名無しさん@お腹いっぱい。 :2007/01/20(土) 01:39:46 ID:ydk2PSAC0
>>519 >>516 ありがとうございます。うまくいきました。
もはや2chはビルゲイツを超えた天才プログラマーの集団であると確信しました。
ブラウザで表示マチのときは、教えてもらった方法が有効でした。
では、起動が重いソフトの立ち上がりを待ってから、操作するにはどうするのが
AHKの定石なのでしょうか。
例えば、画像処理ソフトを起動し、自動でクリップボードの画像を読み込むときとか。
WinGetActiveTitle winwait や wingettitle その他いろいろ、
待つのにつかえそうな関数があるのですが……
Sleep, 10000
MouseGetPos, MouseX, MouseY PixelGetColor, color, %MouseX%, %MouseY%, RGB StringReplace, color, color, 0x, # clipboard = %color% #RRGGBB (16進)で画面上の色を取得できるけど、これを RR-GG-BB (10進)に変換するにはどうしたらいいのかな。
できたよー!!!ありがとう 何かしら演算しないとダメだったのね。0を足して変換できた。
soundplay でファイルをひらくときって、どのタイプのファイルならすぐ音がなってリソースもくわない、とかのちがいってあるんですか? 速く音がなってリソース食わないのってなにですか? できれば順番に並べてもらえるとありがたいです。
最後の一言が余計という見本だな。
>>526 >すぐ音がなってリソースもくわない
ファイルのサイズが小さい方が早意志リソースも食わないと思われる。
しかし、無圧縮音楽は圧縮音楽より早いしリソースも食わないかと思われる
あとは自分で調べろ
流行らせるBBS、管理人の雑記スレで質問してるヤツがいるな。 あそこ、ちゃんと質問スレあるのに。
質問スレ動いてないよ…
漏れはJANEで一応3日に一度くらいは見てる
以前質問したけど、答え帰ってこなかったよ…
質問内容が難しいか、逆によっぽど厨だったかなんじゃね? Viewでお気に入りに入れて見てるはいるけど、自分がわかる範囲でしか答えられない品
>>528 ありがとう。
サイズだけでファイルタイプ自体は関係ないということでおkですか?
何でやねんw
対策を教えていただきたいのですが、 XButton2 & WheelUp::PgUp AutoHotkey.iniに上記を記述し読み込ませようとすると、以下のようにエラーになります。 Line Text: PgUp Error This line dose not contain a recognized action. ためしにXButton2をShiftにしたり、0にしたりしてみても同じでした。 XButton2 & WheelUp::MsgBox や WheelUp::PgUp の記述はうまく動きます。 最初のやつは、なにがいけないのでしょうか。
XButton2 & WheelUp::send,{PgUp}
>>537 うまくいきました。ありがとうございます。
2chブラウザでリンクをクリックしたら、標準のブラウザ(スレイプニル)にフォーカスが移ります。 2chブラウザで ctrl+shift を押しながらリンクをクリックすれば、 バックグラウンドでリンクが開くようにできないでしょうか?
で、自分で努力はしないのか?
出来るかどうか確認してるのか 誰かにそうゆうスクリプトを作ってもらいたがっているのか 判断しかねるな
>>539 ここ
>>540-541 みたいな変なひとしかこないよww
おまえいちいちそんなこと書きこみにきてんのかよってやつばかりw
んで、普通にひらいて2chブラウザをすぐアクティブにするんじゃだめなの?
>>539 俺JANE使ってるリンククリックしてもバックでひらくな。
あと、プニルの「クリップボードを監視する」をオンにしてリンクをコピーするんじゃだめなのか?
偉そうな割りにしょぼい内容だな
#IfWinactiveでJaneがアクティブのときのみ有効に設定した上で、 ~+LeftButton:: WinSet,Topmost,ON,A ;アクティブウィンドを常に最前面表示に Sleep,2000 WinSet,Topmost,OFF,A return でどうだろう。Sleepは適当にお好みで。
URLが渡された場合アクティブにしない とかそういう設定ってSleipnirではできないんだっけ? とりあえずDonutRAPTではできる。
Sleipnirでも出来るね、ちゃんと設定にあるよ まあ、内容からすると常に背面で開くのを望んでるんじゃなくて 修飾キーでそのつど選びたいってことかもしれんが
Sleipnirの方を常に非アクティブになるように設定しておいて、 アクティブにしたいときだけAHKにやらせればいいんじゃないの?
Sleipnirに渡すのをAHK経由にしてGetKeyStateで分岐すりゃいい
>>545 レスありがとうございます。
試してみたのですがうまく機能しません。
iniファイルをリロードしようと試みると、
LeftButtonキーがキーボードにないから有効にできない
とエラーがでたので、一部書き換えました。
その後、リロードはできたのですが、ギコでもジェーンでもうまく機能しません。
#IfWinactive ahk_class GIKO
~+LButton::
WinSet,Topmost,ON,A ;アクティブウィンドを常に最前面表示に
Sleep,2000
WinSet,Topmost,OFF,A
return
#IfWinactive の使い方に疑問があるのですが、
'1
#IfWinactive ahk_class GIKO
~+LButton::
'2
~+LButton::
#IfWinactive ahk_class GIKO
1と2はどう違うのでしょうか。
自分でリファレンス読んで使ってみれば差が分かると思うんだが。 たぶん2の書き方は普通使わないと思う。 あとCtlr+左クリックなら、~+LButtonじゃなくて~^LButton
あ、Shift+Ctrl+左クリックか。~+^LButtonで。
>>550 LeftButtonじゃなくてLButtonだったな、すまん。
自分でやってみた。
#IfWinactive JaneDoe
~!LButton::
WinSet,Topmost,ON,A
Sleep,2000
WinSet,Topmost,OFF,A
return
#Ifwinactive
Shift+左クリックはJaneだと少し挙動が変なのでAlt+左クリックにしたが、これで問題なく動いた。
JaneView(061208) + Sleipnir(2.49)
あと、iniの最後なら必要ないが、「#IfWinactive hoge」をつかうなら、Returnのあとに「#Ifwinactive」いれとけ。
#IfWinActive ってプリプロセスされて 最終的にホットキー内の IfWinActive 分岐に変換されるの?
違う。条件付きホットキーとして登録される。
ウィンドウをもたないアプリを終了させるにはどうすればいいんですか?
DetectHiddenWindows On を宣言しといて WinCLose, ahk_class *** でもどうにかなるかも
2つの式を1行で書く場合、=だけなら下のようにできますが If(Name="Taro" or Name="太郎") { MsgBox,He is Taro. } containsだとうまく動きません If(Name contains "Taro" or Name contains "太郎") { MsgBox,He is Taro. } 解決策はあるのでしょうか?
If Name contains Taro,太郎 ですね。有難うございました ちなみに If Name contains 太郎 If Myoji contains 鈴木 を1行で書く事もできるんでしょうか?
残念ながら出来ません
有難うございました!スッキリしますた
もうちょっとましな言語仕様で書き直す動きはないんですか? 既存のスクリプト言語を組み込みとして使うとか。
>>562 これじゃだめですか?
if InStr(Name, "太郎") and InStr(Myoji, "鈴木") {
MsgBox,He is Taro.
}
InStrやRegExMatch使えば1行で書けるのは解ってる上で If var contains valuesで書けるかどうかって話なんじゃないの? If,〜, Command って書き方は出来ても If,〜, If,〜, Command って書き方は出来ないみたいだね
>>566 例えばどのように?
君からしたら何が足りないと思う?
サスペンドした時に特定のホットキーはサスペンドしないようにしたいんですけど、どうすればいいんですか? suspend, permit がそれっぽいんですが使い方がいまいち分かりません。 下のようにしてみたのですがうまくいきません。 どうすばいいのでしょう? ーーーーー a::Send b b:: suspend, permit send c return c::Send d
sendのあとにコンマをつけない理由は?
>>572 sendのあとはコンマつけなくてもつけても大丈夫ですよ。
ヘルプはコンマなしになってます。
ーーーー
Send Keys
SendRaw Keys
SendInput Keys
SendPlay Keys
SendEvent Keys
Onは実行した?
575 :
571 :2007/01/27(土) 12:29:31 ID:5gzwj8Ur0
あ、できました(汗 すいません。
この汗っかきデブ
VistaいれたPCでAutohotkeyからmasterボリューム変えようとしたら Autohotkey自体の音量が変わった アプリケーションごとに音量を変えるvistaの思わぬ弊害だった
たまにアクティブになった直後だと操作が利かないソフトがあるけど (たとえばfenrirとかでtxtファイル等を開くと一瞬何もキーボード操作できなくなったりするアレです。) 操作ができるようになった後に処理を実行してくれるようにするにはどう書けばいいですかね?
マウスの移動させるようにプログラムしてマウスの位置が変わったら処理を実行するとか ClassNNを監視してフォーカスをどっかに移動する操作を繰り返してフォーカスが変わったら処理を実行するとかは?
Key history and script info で表示される Type が a の時だけ動作するホットキーの指定方法がよく分からない 修飾シンボルには無いようだし、A_ThisHotKey にはフラグが付かないし、何処見落としてるのか教えてください
無変換キーをCtrlに割り当てるにはどうすればよいのでしょうか? やったこと1 vk1D::Ctrl ^p::Send,{Up} ↓ 最初の1文字だけが有効 実例:<Up>pp やったこと2 *vk1D::send,{Ctrl down} *vk1D up::send,{Ctrl up} ^p::Send,{Up} コントロールが押しっぱなしになってしまう 実例:<Ctrl+Up><Ctrl+Up><Ctrl+Up> やったこと3 *vk1D::send,{Ctrl down} *vk1D up::send,{Ctrl up} ^p::Send,{Ctrl up}{Up}{Ctrl down} 実例:<Up><Up><Up> 問題点 Ctrlが入りっぱなしになる場合がある。 Ctrl-Pを押しっぱなしにしていると、たまに「p」が入力される Capsキーのように無変換キーはCtrlキーに出来ないキーなのでしょうか? 使い方の難しいソフトであり、何でも聞くというのは良くないとはわかりますが、 ヒントもしくは、参考になるURLでもいいので教えていただけないでしょうか? OSはWindowsXP SP2です.
組み合わせが少ないなら、全部組み合わせで指定しちゃえば良いんじゃね。 組み合わせが多いなら、このソフト関係なくレジストリでキーリマップ。
>>582 sendinput
senndplay
あたりもためしてみては?
スクロールバーを右クリックで出てくる「ここにスクロール」を、メニューを出さず(Rbuttonは送らず)に実現するコマンドってありますか? 右クリ→下→Enter を送ることで実現できるのはわかるのですが、右クリックのメニューを出さない方法があれば知りたいのです。 SendMessageとかで実現できるのでしょうか
>>586 難しそうだけど、やってみます。
ありがとう
ウィンドウのサイズ変えるのってどうするんですか? ↓じゃなにも起こらないんですけど。 winset, region, w100 h100, A
WinMoveウィンドウの位置やサイズを変更する
WinSize(x, y)
間違えた Winsize(x, y){ WinGetPos, , , xx, yy, A x := xx + x y := yy + y WinMove, A, , , , x, y }
レスありがとう。 ところで winset, region, w100 h100, A って何をするのですか?
593 :
名無しさん@お腹いっぱい。 :2007/02/10(土) 01:43:14 ID:C66lkWss0
>>592 ウインドウのスタイルっぽいものをいじるのかな
メモ帳かなんか普通のアプリで試してみ
あと昨日ニュー速にいた?
Shift+:(コロン)にHotKeyを定義するには、どう書けば良いのでしょう? コロン単独で :::Send,{' Down} : Up::Send,{' Up} は期待した通りに動くけど、 +:::Send,{" Down} +: Up::Send,{" Up} だと Error: This line does not contain a recognized action. って言われます。
>>595 たぶん
+`::: ほにゃらら
でいけるぞ。
もしくは
*:: ほにゃらら
報告よろ。
>>596 +`:::Send,{" Down}
だと
Error: This line does not contain a recognized action.
になりました。
*::
Shift あり と なし を区別したいのですが、うまくうごくのでしょうか?
見た目は動くみたいなので副作用が無ければ良さそうですが…
>>596 良く考えたら、行頭の*はShift+:の意味で、Wildcardの*とは違いますね。
*::で期待した動作になりました。
ありがとうございました。
やっぱりエスケープできないんだな。 コロンをコロンのままホットキーにするにはどうすればいいかってのは自分も知りたい。
#SingleInstance Hotkey,:,hoge Hotkey,+:,hage Hotkey,!:,hige Hotkey,^:,fuge return hoge: msgbox,hoge return hage: msgbox,hage return hige: msgbox,hige return fuge: msgbox,fuge return
RegExマッチョとかリプレースとかって 正規表現内に変数入れられないのか(´・ω・`)?
スレッドストッパーになった俺(´・ω・`)
AHKではよくあること
そういやいつのまにか新バージョンも出てたしな
605 :
597 :2007/02/17(土) 18:22:56 ID:W2iOx/bK0
>>599 コロン単独のホットキーは ::: (コロン3個)で出来ました。
:::Send,{' Down}
: Up::Send,{' Up}
で動いてます。
PixelSearch とかで指定したり、結果として戻ってきたりする座標は AutoIt Spy が表示してる値でいいの? これだとタイトルの幅とかウィンドウボーダーの値が入ってて、 他の環境に移動したら動かなくなるような気がするんだが。
つCoordMode
>>607 CoordMode じゃ意味ないだろ。
流行らせるページのうpろだが荒らされてるんだが何があったんだ?
なんだろな・・?管理人さんも馬鹿じゃないから対策するだろうけど・・
永久に晒しとけばいいんじゃない?
エクスプローラで選択しているファイルのパスをクリップボードにコピーしたいのですが、 よい方法ありませんか? #c:: send,^c clipboard = %clipboard% return ではうまくいきません。
clipboard := %clipboard% じゃまいか?
614 :
612 :2007/02/24(土) 22:49:55 ID:jZTCZ8UW0
>>613 clipboard := %clipboard%
にするとエラーが出るのですが。。
>>612 これでどうですか?
#c::
clipboard =
send,^c
ClipWait,5
if !ErrorLevel {
clipboard = %clipboard%
}
return
616 :
612 :2007/02/24(土) 23:38:35 ID:jZTCZ8UW0
>>615 ありがとうございます。
私の環境ではうまくいきませんでした。
一つ前に選択して#cしたファイルのパスが格納されてしまいます。
ためしに一度ファイルを手動でコピーしてから、何も選択していない状態でスクリプトを実行したら、
そのファイルのパスが格納されました。
クリップボード内のファイルを、パスに変換するタイミングがうまくいっていないような。。
AHKでやることにこだわらないなら、コンテクストメニューに esClipでも登録しといたらどうだろうか
>>616 >>ためしに一度ファイルを手動でコピーしてから、何も選択していない状態でスクリプトを実行したら、
>>そのファイルのパスが格納されました。
最初に、"clipboard =" でクリップボードをクリアしているので、それはないはずなんですが・・・
それと、"if !ErrorLevel {" で、コピーが成功したときのみ "clipboard = %clipboard%" を実行するように
なっているので、無選択状態でスクリプトを実行しても意味がありません。
"clipboard =" で、クリップボードがクリアされていないようですね。原因はわかりません。
バカな質問で申し訳ないけど、これってUWSCとどう違うの?
620 :
612 :2007/02/25(日) 22:13:30 ID:g6HqtF8m0
>>618 解説ありがとうございます。
やはりクリップボードのクリアに失敗しているように感じます。
もう一度見直してみます。
>>617 最近のhoekeyに選択しているファイルを引数として実行する機能がありまして、
どうやらそれは、内部で一度Ctrl+Cを送ってクリップボード経由でパスを取得しているようなのです。
AHKでも同じ事が出来たらいいなとおもいまして。
>>619 UWSCと違って必ずしもフックを導入するのでは無いところとか
>>620 clipboard =
Send, ^c
ClipWait, 2
if ErrorLevel <> 0
{
;MsgBox, The attempt to copy text onto the clipboard failed.
return
}
MsgBox,%clipboard%
ウチのXP環境ではこれでちゃんとクリップボードにパスが格納されますよ。
関係ないけど個人的にやりたいことがあって
>>612 のレスがヒントになって出来たw感謝です。
vimとかemacs用の色付けのファイルが AutoHotKeyフォルダに入ってたの知らなかったよ。
つかクリップボードの人は「私の環境では動きませんでした。」とか報告はするのに その環境を書かないのは何故なんだろう。
なにをいまさら
組み込み変数やCの#defineのように、任意の定数をスクリプトの 先頭部分で定義しておくにはどうすれば良いのでしょうか?
今日から使い始めた新参者です。 いきなり質問で申し訳ないのですが、勉強がてら作り始めたFirefoxのアクティブなタブから タイトルとURLを取得して、WWWCの「HTTPアイテムの追加」に貼り付けるスクリプトを とりあえず完成させたのですが、URLの取得方法に不満がありまして… 現状はFirefoxをアクティブにしてsendでalt+d(ロケーションバーアクティブ)、ctrl+cでやってまして、 これをなんとかバックグランドで処理する方法はないでしょうか? ロケーションバーのクラスがわかれば可能だと思ってAU3_Spy.exeやDOMinspectorで 調べてみたんですが、わかりませんでした
FIreFoxからタイトルとURLは得られんだっけ? 漏れは昔、WWWCのDATに直接書き込むっていう方法をとってたよ
WinGetでid(っていうのかな?)とってControlSendでいいんじゃないの?
Frefox は OS のウィンドウシステムに頼らずに内部で独自実装してるからわからんだろ。 裏で取得するなら mozrepl 辺りを使えばいいんじゃないか?
>>630 「ブラウザから情報を取得」が効かないんです…。
DATに直接書き込みだとオプションも一度に登録できるし、
アイテムを同時に複数登録することも可能ですね。
次の課題にしてみます
>>631 ControlSendを使ってクリップボードを介して裏で処理ができました。
ControlSendは試していたんですが、試していた時は動かなかったんです
今わかったんですが、その時おかしかったのはSetKeyDelayを
設定してなかったのが原因だったようです。(SetKeyDelay ,1でちゃんと動いた)
試行錯誤していたせいで問題の切り分けができていませんでした。
取りあえず作りはじめたのが失敗でしたね。反省します!
>>632 AU3_Spyで他のブラウザのアドレスバーをチェックするとエディットのクラスが
見つかるんですが、Firefoxだと駄目だったのはそういう理由なんですね。
mozreplは…奥が深そう、というかかなり無茶もできそうですね。ちょっと調べてみます
問題の切り分けもできずに質問して大変失礼しました。
そして、みなさん回答ありがとうございました。
…でも、作った後でFirefoxからIEを起動させる拡張を使って、IEから情報を取得しても
それほど手間でもなかったなぁと気付いたのはここだけの話orz
OPERAも昔はWinTextでURLが取れたけど 今は取れないのでアドレスバーからコピーという感じになってるなあ 今思いついたがオミトロンさんで タイトルバーにURLも表示されるようにしちゃえばいいかなとか思った
じぇんじぇん使い方わかんねえwwwww これ使ってるのってプログラムとか齧ったことある人ばっか?
プログラムのプの字も分からない俺でも使えてるから試行錯誤してやってみ
ListViewの指定項目(できれば項目名で)を選択することってできないでしょうか? リストボックスなんかで使うControl,Chooseではダメでした。 WinAPIやSendMessageから探してもよくわかりませんでした・・・ どなたかお力をお貸しください。
>>635 プログラマと言えども、一番最初は何も知らない初心者
サンプルも多いし、丁寧な解説サイトもあるし
>>2 辺りから巡ってポチポチ遊んで行くのが良いかと
>>635 用意されてる機能を使う、って感じじゃあないからね。
とりあえず何かしらやりたいことがないと始まらない。
自分は「EXCELでF1キーを無効にしたい」とか「無変換キーでランチャを起動したい」とか、そんなとこから入っていったかな。
641 :
637 :2007/03/13(火) 19:02:17 ID:R3DFDCSO0
2chの書き込みを専用ブラウザのdat風に書き換えたいんだが何かがおかしい。
クリップボードにテキストをエディタから手動でコピーすれば以下で完璧に動くが
(今はコメントアウトしてある)FileReadから読んでの変換だと駄目。
漏れだけか?
#EscapeChar '
;FileRead, ClipBoard, temp.txt
;ClipBoard := RegExReplace(ClipBoard, "s)^.+?\<dl class=.+?\>'r?'n(.+?)\</dl\>.+$", "$1", sute, -1) ;.htmファイルから書き込みのみを取り出す
StringReplace, ClipBoard, ClipBoard, #, ***sharp***, All
StringReplace, ClipBoard, ClipBoard, &, ***and***, All
ClipBoard := RegExReplace(ClipBoard, "\<dt\>(\d{1,3}) :\<a href=.+?mailto:(.+?)\>\<b\>(.+?)\</b\>\<\/a\>:(次行とつなげる)
(20\d{2}\/\d{2}\/\d{2}\(.+?\) \d{2}\:\d{2}\:\d{2}) ID\:(.+?)\<dd\> (.+)", "$1#$3#$2#$4#$5#$6", sute, -1)
ClipBoard := RegExReplace(ClipBoard, "\<dt\>(\d{1,3}) :\<font color=green\>\<b\>(.+?)\</b\>\<\/font\>:(次行とつなげる)
(20\d{2}\/\d{2}\/\d{2}\(.+?\) \d{2}\:\d{2}\:\d{2}) ID\:(.+?)\<dd\> (.+)", "$1#$2##$3#$4#$5", sute, -1)
ClipBoard := RegExReplace(ClipBoard, "m)(\W)t?tp://|(\W)htp://", "$1$2 <br> @@@
http:// ", sute, -1)
ClipBoard := RegExReplace(ClipBoard, "\<a href\=.+?\>(.+?)\<\/a\>", "$1", sute, -1)
StringReplace, ClipBoard, ClipBoard, "#, #, All
StringReplace, ClipBoard, ClipBoard, font color=green, , All
StringReplace, ClipBoard, ClipBoard, %A_Space%<br>%A_Space%, &, All
StringReplace, ClipBoard, ClipBoard, %A_Space%%A_Space%<br><br>'r'n, 'n, All
2chの.htmの一例 <dt>607 :<a href="mailto:sage"><b>名無しさん@お腹いっぱい。</b></a>:2007/02/19(月) 17:40:32 ID:8HzmtcDX0<dd> つCoordMode <br><br> <dt>609 :<a href="mailto:sage"><b>名無しさん@お腹いっぱい。</b></a>:2007/02/21(水) 23:05:33 ID:QDwNDGwk0<dd> 流行らせるページのうpろだが荒らされてるんだが何があったんだ? <br><br> <dt>610 :<a href="mailto:sage"><b>名無しさん@お腹いっぱい。</b></a>:2007/02/24(土) 03:22:19 ID:ilR3EAmF0<dd> なんだろな・・?管理人さんも馬鹿じゃないから対策するだろうけど・・ <br><br> <dt>611 :<a href="mailto:sage"><b>名無しさん@お腹いっぱい。</b></a>:2007/02/24(土) 04:26:56 ID:l986rRU50<dd> 永久に晒しとけばいいんじゃない? <br><br> <dt>613 :<a href="mailto:sage"><b>名無しさん@お腹いっぱい。</b></a>:2007/02/24(土) 21:37:47 ID:WwRlvUSK0<dd> clipboard := %clipboard% <br> じゃまいか? <br><br> <dt>619 :<a href="mailto:sage"><b>名無しさん@お腹いっぱい。</b></a>:2007/02/25(日) 18:07:06 ID:mv8pafga0<dd> バカな質問で申し訳ないけど、これってUWSCとどう違うの? <br><br>
んな複雑なのを書かなくてもhtmltodatってソフトがあるから それを使うか、それの正規表現をほぼそのまま移植すれば望みの動作になると思う。
すべてでClipBoard使わなくても 適当な変数で処理してから書き戻した方がよくね
646 :
名無しさん@お腹いっぱい。 :2007/03/14(水) 12:05:46 ID:aKYLz/eU0
[[A0624-aacQ9gWS-UT]] <<涼宮ハルヒ@涼宮ハルヒの憂鬱>> 彼女だけに投票。 他のアニメは知らないし知ろうとも思わないので投票も一つだけ。 はっきりいって彼女は二次元キャラの中でも トップクラスに「リアル」なキャラだと思う。 (設定自体は非現実的だが) 彼女の性格、行動の動機にリアリティがあったからこそ、 見てる人に共感を持たれてこの作品はここまで売れたんだと思う。 たぶん、これを超える萌え系アニメは生まれない。 俺は普段アニメ見ないけど、ハルヒには萌えた。
>>644 したいのはHtmlのDat化じゃなくて、スレのまとめサイト作成の支援。
およそ1800行のスクリプトで作ったGUIは半分2ch専用ブラウザと化している
>>645 ClipBoardを使わず別の変数を使っても効果なし、1行ごとに変数の名前を変えても同じくダメだった。
> およそ1800行のスクリプトで作ったGUIは半分2ch専用ブラウザと化している
本当に作ってるならうpして
ttp://lukewarm.s101.xrea.com/up/ 本当は作ってないなら、無視するなり適当な言い訳して逃げるなりお好きなように
というか、こういうのはWSH使った方がいいじゃん。AHKとWSHの完璧な連携は無理だけど
実行、終了待ち、終了コード取得、情報のファイル渡し、くらいは出来るから
充分に実用レベルでの連携は可能
今日はご機嫌ナナメみたいです。
それは仕方ないな
>>647 おいおい、んな1800行も書いてるのなら
FileReadで読み込めないとかいう頓珍漢なこと言わんだろw
俺が適当に書いたのはコメント入れて50行強で目的の動作を果たせてるぞw
MSGBOXで変数を都度表示させまくって どこで躓いてるか見ればいいと主
Loop使えよ
やってみる
Loop, Readでうまく行ったよ ありがとう
CapsLock:: Send,test return 上のが日本語キーボードだと動かないんだけど、なんでですかね。
日本語環境だとLock系キーの動作は不定 OS側がキーUp/Down情報が正しく返してこないので対処のしようがない。 OSのローカライズ段階で発生してる問題なので、窓使いの憂鬱のようにドライバレベルで弄らないとダメだが 英語圏では問題ないらしいので今後のサポートもあまり期待できない。 この質問次スレではテンプレ入れたほうが良くない?完全にFAQと化してるし
>>658 thx.
漏れは英語 kb しか使わないんで気づかなかったが、
自分で作ったソフト知り合いに渡したら動かないって言われて焦ったよ。
次スレ立てる機会があったら FAQ にいれておきます。
vk1Dsc07B & i::Send,{UP} vk1Dsc07B & m::Send,{DOWN} vk1Dsc07B & j::Send,{LEFT} vk1Dsc07B & k::Send,{RIGHT} vk1Dsc07B::Send,{vk1Dsc07B} と、いった感じで「無変換+I、M、J、K」でダイヤモンドカーソルを利用しています。 ここで、「無変換長押し→無効」や、 「(Shift|Ctrl)+無変換+I」→「(Shift|Ctrl)+↑」といった動作にさせる方法はあるでしょうか。 教えていただけると嬉しいです。
661 :
名無しさん@お腹いっぱい。 :2007/03/18(日) 23:28:31 ID:kShrP0tv0
複数のスクリプトをひとつのスクリプトファイルにすることってできないの?
常駐型のスクリプトでウェブで拾ったのは 自分でいじって一つにまとめてるよ。 サブルーチン多用する作りなので グローバル変数が多くなりがちで困る。
>>660 KeyWait
if文
GetKeyState
>>663 ありがとう。
リファレンスとにらみっこしているけれど、全然わかんねえわ。
もう少し粘ってみる。
1:: Loop, 10 { Sleep, 1000 Send, 1 } みたいなループ回しているときに、2 を押したらループを止めたいんだけど、 グローバルな変数で状態を保持するしかないのかなぁ? 簡単にやる方法があったら教えてください。
HotKey, On は?
>>660 変換キーで似たようなことを、というかkey extentionってソフトを
AHKで再現しようとして挫折した覚えがある。
結局今はレジストリで変換キーを右Windowsキーに入れ替えて、
+^>#i::Send,+^{Up} とか修飾キー含めて全部書いてる。
そうまでして移植しようとした理由は今では思い出せない。
正直key extention使っちゃえば?無変換でも使えるし。
>>667 KeyExtension は使ったけれど、無変換キーが完全に死んでしまうのでやめました。
今は窓の中の憂鬱で希望通りに動かしてはいるのだけれど、やっぱり AHK で再現させたくて。
AHK の方が応用が利きそうだし、というか、自己満足なんだけれど。
>>660 vk1Dsc07B & I::Send, {Blind}{Up}
はどうですか?
>>669 ありがとうございます。
「(Shift|Ctrl)+無変換+I」→「(Shift|Ctrl)+↑」という望んだ挙動になりました。
あとは、「無変換単打→無変換」「無変換長押し→無効」の二つが成り立つことです。
それも教えていただけると嬉しいです。<(_ _)>
ToolTipのフォント(サイズや色も)変更する事はできますか?
特定のキーが押された時に、スクリプトを停止するようにするにはどうしたらいい?
コンセント抜く人に待機してもらっておけば良い。
>>674 |:::::::::::::::
∧_∧::::::::::::
(´・ω・`) :::::::: なに言ってんだよ、ぶち殺すぞ
◎ー) / \:::::::::
| | (⌒) (⌒二 )::::::::::::
~~~ /⌒ヽ( ̄、 ヽ___
/ Lヽ \ノ___
゙ー―――(__)---
ぶち殺せ
なんだてめえ ぶち殺してみろや 俺のオヤジは日本でも五本の指がないヤクザだ
日本語でおk でお前はつおいの?
指がなくてもバルカン仕込んでるだろうから油断するなよ
ウィンドウの指定なんだけど 全く同じウィンドウが複数個ある その中の2個目を指定したいんだけど出来る?
Window Textから指定したいウィンドウの特徴が取得できるなら可能だけど
「2個目」がどういう条件化は分からんけど PIDを取得して選り分けていけばいいんじゃないの
割り込み優先度って1が高くて20が低い?
>>683 たぶんそう。
Ahk2Exe ってコマンドラインから使えないのかな?
毎回ファイル選択したりするのメドイ。
ポチエスでAHKに関連付けてEXE化したりしてるよ
>>685 thx.
これで心置きなく Makefile 作れるよ。
C-x k => Ctrl+w C-x C-s => Ctrl+d を設定しようとしているのですが、どうもうまくいきません。 Transform, CtrlS, Chr, 19 ^x:: Input, InputChar, B C I M L1, ^g, k, %CtrlS% if ErrorLevel = Match { if InputChar = k Send, ^w if InputChar = %CtrlS% Send, ^d } return
689 :
688 :2007/03/25(日) 08:17:02 ID:nuD9KSBL0
書き忘れです。 C-x k は動作します。
ToolTipで押下キーの情報表示するようにしてみれば?
691 :
688 :2007/03/25(日) 19:24:52 ID:Ge5G+aI30
ありがとうございます。 Transformより上の行にキー変更をいろいろ書いていたのが原因でした。 お騒がせしました。
Menu の ToggleCheck でチェックの有無を切り替えられるようにしたんですが、 どうすればチェックの状態を取得できるんでしょうか? チェックがある場合だけ特定のホットキーを有効にしたいんですがやり方がわかりません
>>692 ToggleCheckを行うのとHotkeyのOnOff切り替えを一緒にやりゃ良いんじゃね?
それ自分も昔はまった。Menuから状態を取得するのはムリポみたいだったので 結局変数で独自にEnabled状態を覚えておいて、Menu操作されたらフラグを反転 & Menu再描画 ってやってるよ。正直マヌケっぽい気もするが
今日使い始めたばかりで、今一つずつスクリプトを動作確認しているミジンコ中のミジンコです。 レベルが低い質問で本当に恐縮なのですが一点だけ質問させて下さい。 やりたいことは単純で、スクリプト実行中に任意のタイミングでマウスを使わずにスクリプトを強制停止させたいのです。 ですがPause script などのショートカットがhelpなどで探しても見あたらなかった為、 恐らくホットキーで設定すればよいのだろう…と自己解釈しました。 そこで、webの例文にありました #x::ExitApp などをスクリプトの先頭に挿入してみたのですが、 ホットキーは有効になった物の今度はホットキーの設定以降のスクリプト本文が実行されなくなってしまいました。 恐らく根本的な所から理解ができておらず、勘違いしているのだと思います。 極力自力でやろうとは思っていますので、何かヒントを教えて貰えないでしょうか?
とりあえず#x::ExitAppを消してから文末に return #x::ExitApp をつけるといいよ あと叩かれたくないのは分かるけど あんまり丁寧にかかれすぎると読むのがめんどい
奇遇だ俺も昨日はじめたばっかりで 同じことで悩んだ 俺はラベル作ったら解決した なんでかはわからない
読むのがめんどいんなら読まなきゃいいんじゃない?
読んでもいいし、それに文句つけてもいいし、さらにそれに文句つけてもいいけど、だから何?
まあとりあえず700
スクリプト先頭は AutoExecute領域だからじゃね? あと強制終了ではなく、一時的に止めたいだけなら Suspend や Pauseコマンド使うのも手
702 :
695 :2007/03/27(火) 02:11:19 ID:szHVksQ20
具体的なレスいくつもありがとうございます。 実際に書かれてみた物を全て試してみて、自分の説明が至らなかった事に気が付きました。 上に自分が書いた”任意のタイミング”と言うのは、マウス動作も含めた延々ループする スクリプトを実行中に、単純に何かのキー入力で再生を停止させたいだけだったりします。 例えば+p::pause か何かを挿入すると、確かにshift+Pでアイコンが停止して赤くはなるようにはなったのですが 同時にキー入力関係なく+p::pause挿入箇所でスクリプトが止まってしまうのです…。 念のため+p::pause, on で止めて、+o::pause, off などで再開させてもアイコンが緑に戻るだけで動作せず。 shift+P入力しない限りは動作し続けるようにしたいのですが… 恥を忍んで再び書き込んでみます。 あと、まさかと思ったので一応Win2k SP4 とWin XP Sp2の環境で試してみてます。
#Persistent SetTimer,ラベル1,間隔,優先度 Hotkey,+P,ラベル2,P優先度 ラベル1: マウス関連 ラベル2: +P:: Pause Return
Pauseはタイマーを止めるコマンドだよ。 ホットキーを止めたいならSuspend 時間がかかる処理や永久ループから抜けたいとかの場合は >696でスクリプト自体を中断するしかない
自分、マイコンアセンブラで飯食ってた人間だが、ぜんぜんわからんw マシン語でダンプデータをウニャウニャするのはバージョンアップとかリコンパイルとかで アドレス参照先変わっちゃって面倒なことになったりせんのかな〜。 ヘタレなんで速度犠牲になっても汎用性のあるコード体系のほうが楽でいいわ、と日和ってしまう
Extra に入ってる ahk-mode がまともに動かないのは漏れだけ? indent-region は無限ループで止まってるし、 Send, {hoge} って書こうとしても、 Send, { hoge } みたいに勝手にインデントされてしまう。
>>709 アドレスは実行時に埋め込んでいるらしい
AHKってみんな何に使ってるの? ゲームのキーカスタマイズしか使ったことがない。 凝ったことしようと思うと他のスクリプトやDelになっちゃうし。
windowsキー+カーソルキーでアクティブ窓の移動。タスクバー上置きだから作ってみた。 定期的にCPU使用率を調べて、5%以下ならeMemを実行(メモリ解放) EXCELでF1キーを殺す あとはランチャやファイラの起動くらいか。 俺のスキルじゃそんなもんだ。
> windowsキー+カーソルキーでアクティブ窓の移動。 これ気になる。よかったらコード教えて
基本的に定型作業の自動化とかだなあ ゲームのキーカスタマイズってどんなことするの?
>>714 713じゃないけどWinmoveで動かすだけだよ
F1キーキラーも合わせて、昔流行らせるBBSの投稿スレかアプロダあたりに上げたような
717 :
713 :2007/04/01(日) 21:09:16 ID:rHTmyaWjP
#Left:: WinGetPos,x,,,,A WinMove,A,,x-10 Return #Right:: WinGetPos,x,,,,A WinMove,A,,x+10 Return #Up:: WinGetPos,,y,,,A WinMove,A,,,y-10 Return #Down:: WinGetPos,,y,,,A WinGetPos,,,,h,ahk_class Shell_TrayWnd h:=h-4 if (A_ScreenHeight/2>h && y<h)WinMove,A,,,h else WinMove,A,,,y+10 Return タスクバー上置きなので、windowsキー+↓で助けてってバー(だっけ?)っぽい動きをしてます。 タテ置きや下置きでも誤動作はしないはず。
任意の座標下のコントロールを取得したいのですが MouseMove,x,y MouseGetPos,%x%,%y%,control みたいにマウスを移動させないで、ダイレクトに取得する事はできますでしょうか?
すみません_| ̄|○勘違いしてました MouseMove,x,y MouseGetPos,,,,control ですね・・・
>>718-719 ですが
もしマウスを移動させないでコントロールを取得する方法があれば
お教えください<(_ _)> 流行らせるページも見たつもりですが見つけられませんでした
>>722 WinGet, ***, ControlList,
でコントロールの一覧を取得して
ControlGetPos
でそれらの座標をチェックしたらどうかいな
>>721 setpointより細かくカスタマイズできて良さそうだね
setpointは入れてる?
入れてるよ。uberoptionsも入れて 左右中除いた全部のボタンにファンクションキー(F17-F24くらい)当てて あとはAHKでやってる。
>>722 つか、なんでわざわざマウス動かすの?
xyの座標値が予めわかってるんなら、ControlGetPosで取ればいいじゃん。
デフォルトだとControlの座標はアクティブWindowからの相対座標になるから毎回変動することもないし
ごめんなんか勘違いしてた。 ControlGetPosは座標でコントロールを取得じゃなくて逆のコマンドだった。 Dllcall使ったほうが早くね?↓とりあえず自スクリプト漁ったら出てきたので貼っとくわ。 ;座標値のコントロールのハンドル取得 hwhd := DllCall("WindowFromPoint", Int,x, Int,y, UInt)
>>726-727 >>723 どうも有難うございます!
DllCallの方法でうまく行きました。凄いです
未熟者とはいえこんな方法があるとは思いもよりませんでした
SendでShiftを押しながら入力する文字(たとえば !"#$%&'()= 等を)を入力しようとすると、 低い確率でShiftを押してないときの文字になることがあります。 入力間隔を変えたりしても直らず困っています。 同様の症状の方はおられないでしょうか?
>>729 send の代わりに sendinput を使ってみたら?
すいません、どなたかAutoHotKeyを流行らせるページの My Scriptsにあるタスクトレイに最小化をマウスじゃなくて キーを使って最小化するように改造していただけないでしょうか?
;133行以下を書き換える。(~MButton upラベルの所ね。)もしくは、スクリプトの最後に追加。 ;Win+Spaceキーでマウスカーソルの位置に関係なくアクティブなウィンドウをトレイに入れる。 #Space up:: MinimizeToTray(WinActive("A")) return
おお!ありがとうございます。出来ました。
("A") 悲しい顔だ
春なのに
SandS を AHK で行いたいのですが、 スペース単打→スペース スペース+何か→Shif+何か スペース長押し→無効 の三段階の設定にしたいです。 スペース長押し→無効の方法が分からないので、教えていただけると嬉しいです。
SPACE:: { KeyWait, SPACE, T1 If Errorlevel = 1 Return こんなのは?
>>727 hwhd1 := DllCall("WindowFromPoint", Int,x, Int,y, UInt)
のようにしてコントロールのウィンドウハンドルを取得すると、「332358」という値が返ってきて
MouseGetPos,,,,hwhd2,2
で取得すると、「0x51246」という値が返ってきます。
おそらくデータ形式が違うだけだと思うんですが、どのようにすれば同じ形式にできるんでしょうか?
ノートパソコンで窓使いの憂鬱からの乗換えを検討しています。 変換キーとjを押した時1を出力したい(この後kluioで234456と出力したいのですが)場合、 vk1Csc079 & j::Numpad1 でも vk1Csc079 & vk4Asc241::Numpad1 でもできません。 こういうときはどういう記述をすればいいのでしょうか。ご指導お願います。
743 :
713 :2007/04/12(木) 22:32:41 ID:3VuvYEuXP
つsend
744 :
742 :2007/04/13(金) 04:19:02 ID:xhVgVd5a0
>>743 vk1Csc079 & vk4Asc241::send, 1
で出来ました。ありがとうございました。
たまにキーを押した後、押し下げた状態になったまま解放されなくなります。 ホットキーに設定したキーではなく、アルファベットキーやCtrlキー単体でも発生します。 何か思い当たる原因はありますでしょうか? WinXP SP2、AHKは最新版です。 スクリプトは、 猫歩きさんのMigemoIsearchをそのまま使用と、Win+Spaceにfenirの起動を割り当てているだけです。
>>745 オレもそれはある。
ただし、いろいろな設定をごちゃごちゃやってるせいだろうとあきらめている。
再現しない場合が多く、何が原因かわからない。
漏れの環境では 右CTRLキーでホットキーを利用すると 右CTRLの押下が残るという変な現象があった それは右CTRLを左CTRLで置き換えることによって回避したよ 何かおかしいなあと思ったんで↓こんなので調べた #NoTrayIcon #SingleInstance, Force Loop { GetKeyState, CTRL, CTRL GetKeyState, RCTRL, RCTRL GetKeyState, LCTRL, LCTRL ToolTip, Ctrl`t%CTRL%`r`nRCtrl`t%Rctrl%`r`nLctrl`t%Lctrl% } +ESC:: { ExitApp }
変数に改行を入れるのってどうすればいいん?
>>749 thx.
output2 := output2 . `n
って書いてエラーがでてたんだけど、
"" で囲まないとダメなんですね。
つ output2 .="`n"
>>751 C 使ってた頃からその記法は嫌いなんだ。
753 :
745 :2007/04/15(日) 11:35:15 ID:a60LVBYL0
>>746 >>747 ありがとう。同じような現象が起きるとわかって少し安心しました。
ちょっと試してみます。
俺はCtrlとWinが良く押しっぱなしになるので、ふだん使わないメディアキーにリロードを割り振ってる ^Launch_Media:: #Launch_Media:: ^#Launch_Media:: reload return
Numlock をおしたら、半角の = を入力したいのですが、AHK で可能でしょうか?
>>756 方法を教えてもらえないでしょうか。
Xp sp2 で下記のスクリプトだとうまくいきません。
なぜか-が出力されます。
NumLock::+-
↓だと=が出力されるのに……
a::+-
いろいろためしたがどうしても=を入力できない。 NumLock::send,= ↑これも-になる。
シフトキーを押せばいいんじゃないのかナー わからないけどきっとそう
あー、ごめん。 NumLock::= でふつうに出来たから 出来るものだと思ったけど 101/102英語キーボードを使ってるせいかもしれん
Numlock::Send, {SHIFTDOWN}-{SHIFTUP} 手堅くいこうぜ
= でキター(゚∀゚)ーー キー設定変更ソフトでnumlockいじってたから、AHKの変更が作用してなかった。 レジストリいじるタイプのキー設定変更ソフトなので再起動しないと、いけなかった。 日本語キーボード、XP sp2で、下記の二つともnumlockで=の入力できた。 Numlock::Send, {SHIFTDOWN}-{SHIFTUP} NumLock::= numlockを=に変更するのマジでおすすめ。
765 :
名無しさん@お腹いっぱい。 :2007/04/20(金) 11:57:51 ID:abWQLIRx0
ダイヤモンドカーソルみたいに、C-iで上という風にしています。 Menuコマンドでメニューを表示中はこのリマップが効かないのですが、 解決する方法ってあるでしょうか。
2つAHKを常駐させる以外にない
フォルダのサイズを取得するにはどうすればいいでしょうか? FileGetSizeでは取得できませんでした。
Loopして合計すればいいのでは?
769 :
767 :2007/04/20(金) 21:42:43 ID:1A5vVu/20
x++ test%x% = %aaa%%bbb% という処理を不特定回数繰り返してtest1〜testnの内容を一気に表示したいのですがどうすればいいのでしょうか。
聞きたいのは表示部分のコード内容ってことでおk? 不特定回数の繰り返しは回転条件がわからんことには答えようがない ;test1〜testnの内容を一気に表示 dsp := "" Loop %x% { dsp .= "test" . A_Index . "=" . test%A_Index% . "`n" } msgbox,%dsp%
>>771 ありがとうございました!助かりました!
>>773 Firefoxとかはueのような物を使わないと無理っぽい。
IE系ブラウザなら普通にできた気がするけど。
なんでAHKスレで?
>>775 複数ソフト(2chブラウザ、メールソフト、エディタ…)で共通の操作で、
効率的で柔軟な検索をするためです。
本来の使い方ではないのかもしれませんが、私はPC外のソースへのアクセスにfenrir
のインスタントコマンドを良く使ってます。(結果はブラウザで表示)
ActiveXでJavaScriptのスクリプトコンポーネントを呼び出してエスケープさせたら?
>>775 誤爆でした。すいません。
fenrirスレとおもってました。
wwww
fenrirスレ向きの話題だよな
Windowsの仕様くさいですがTrayTipの文字数制限を解除する方法はありませんか?
フルスクリーンのゲームのウィンドウクラス調べる方法ってないですか?
ホットキーでwingetclassとか呼び出して くリボに入れればいいんでは
タスクバーのウィンドウを格納してある領域でホイールをまわすと、 アクティブウィンドウがタスクバーの並び順に変更していくしていくスクリプトを書こうとしたけど 断念・・・orz WinGetでは実現不可能だしな・・・。
おっ酢!尾ら初心者 このそふといえれたけとさっぱりつかいからわからね ちなみにこの分はぶらいんとたっちであyってるぜ だれかおpこそじゅとのつかいかたをぁmたんなのものをたおむね
>>787 ちょいと面倒だが、
WIngetを常時ループしといて
新規ウィンドウが現れたらそれをケツニ追加するように
変数組んで
その順番で切り替えていくとか
>>788 ネタにしてはつまらないからスルー。
マジにしてはふざけていて不愉快だからスルー。
791 :
名無しさん@お腹いっぱい。 :2007/04/29(日) 19:52:20 ID:vCQRAw5o0
スルーの意味を知らないやつがいるな
792 :
名無しさん@お腹いっぱい。 :2007/04/29(日) 19:53:08 ID:vCQRAw5o0
俺は不言実行の男だぜ?(笑)
いまどきブラインドタッチ何て言ってるのは黎明期から進歩してないジジィだけだろ
はいスルー。
Alt押しっぱなしでTAB2回がいいんじゃない?
それでもタスクバーに並んだ順番にはならないよね
797は話を理解できてないんだろうね ただの煽りなのかな
スレッドAをループさせています スレッドBを開始させた時に、スレッドAのループを停止させたい どうしたらいいですか?
Loop, { if Loop_teisi = 1 Break Else { (させたい処理) } } Return スレッドBを始めるときに変数Loop_teisiに1を入れれば止まると思うが
なんか違うか もっと具体的な情報がそろわないと分からんな
改めて こんな感じ? スレッドBをはじめる時にLoop_teisiを1にすると このルーチンは作動しないんだが Loop_shori: ;ループするサブルーチン if Loop_teisi = 1 ;ループ禁止の変数がON(1)なら Return Else if Loop_teisi = 0 ;ループ禁止の変数がOff(0)なら Loop, { (させたい処理) } Return
スレッドっつーとSetTimerで周期的に回してるんか? それともLoop文でずっと張りついてるんか? まさかとは思うが、AとBは別のスクリプトでそれぞれ独立して常駐してるってことじゃないよな? どうにも漠然としててよくわからんので、まずはソース貼ってみたらどうか。
WinAPIの GetWindow や GetNextWindow のようなことをしたいのですが、 (あるコントロールの一つ前(GW_HWNDPREV)のコントロール名かハンドルが知りたい) AHKではどう書けるでしょうか。
>WinAPIの DllCall で WinAPI 呼んでやればいいんじゃね?
>>806 hnd2 := DllCall("GetWindow", UInt, hnd1, UInt, 3, UInt)
みたいな感じでできました。ありがとうございます。
また質問なんですけど、
F1::
F2::
ほにゃらら
return
みたいな書き方をして、「ほにゃらら」の部分で F1とF2のどちらが押されたかを
判断する方法ってありますでしょうか。
A_ThisHotkey はどうだろ?
>>808 おおおお、確認しました。
なんか関数があるかと思ってそっち方面ばっかり探してました。
どうもありがとう!
キーボードと違ってマウスを押しっぱなしでも、
>>91 にある通りキーリピートによる繰り返し入力が使えないんだけど
upとdownが交互に切り替わる状態を作って、マウスクリックでも擬似的に連打を再現できませんか?
マウスの拡張ボタンに左右クリックを割り当てています
XButton1:: LButton
XButton2:: RButton
キーに割り当てりゃいいじゃんとか野暮なことは言わないでorz
>upとdownが交互に切り替わる状態を MouseClick もしくは Click、Sendでも Up/Down指定できたと思う >キーリピートによる繰り返し入力 XButton1:: と XButton1 UP:: で処理分けて Loopで回すかSetTimer使え リピート間隔は自分で適当に決めればいい
何て言うのかわかりませんが、画面の右下に常時起動してるソフトのアイコンが並んでいるところがあるじゃないですか。 たしかなんとかトレイ、っていったような。 あそこで、右クリックしたときに表示されるメニューを出すにはどうすればいいんでしょうか?
いやAHK自身のことを言っているんじゃないか? だとしたらMenuでおkだけど。 それともタスクバーのメニューなのか?
>>787 Win+Tab→Enter
みたいなのはダメポ?
そんな簡単な話じゃない?
>>813 わからんちんのとっちめちん・・・
下の Tray_GetInfo(A_Index,hwnd,uid,msg)のhwndとuidって指定しないと逝けないんですよね?
どれのhwndとuidを取得すればいいの?
ーーーーー
#NoTrayIcon
name=AutoHotkey.exe
action=0x203
cnt:=Tray_GetCount()
DetectHiddenWindows,On
Loop,%cnt%{
Tray_GetInfo(A_Index,hwnd,uid,msg)
WinGet,pn,ProcessName,ahk_id %hwnd%
if(pn=name){
PostMessage,%msg%,%uid%,%action%,,ahk_id %hwnd%
}
}
DetectHiddenWindows,Off
Ctrl+無変換+JでSend,{Left} とかってできんの?
>>817 GetKeyStateとか使えばできるっしょ。
個人的な感想を言えば、無変換+J=Left、Ctrl+無変換+J=Ctrl+Leftの方が使いやすそうだけど。
819 :
名無しさん@お腹いっぱい。 :2007/05/30(水) 20:47:19 ID:cyc+Zxfs0
環境は、WinXP-Pro SP2、Autohotkey1,46,05です。 で、以下を実現したいと思っています。 -------------------------------------------------------------- ファイルを1つ選択し、AHKでなんらかのショートカットキーを押すと、 ファイル名のうち、「hogehoge.txt」や「hogehoge.html」の「hogehoge」の部分だけが選択される。 (前提:フォルダオプションですべての拡張子を表示させている) -------------------------------------------------------------- こういったことは可能でしょうか? 以前にどこかで見かけた気がするのですが・・・ 以上、よろしくお願い申し上げます。
お忍びリネームとかでええやん?
自作。うざかったらゴメン。 ~F2:: ifWinNotActive ahk_class CabinetWClass ifWinNotActive ahk_class Progman Return OldClip=%ClipboardAll% Send, ^c Sleep, 100 splitpath, Clipboard, , , Extension Clipboard=%OldClip% StringLen, n, Extension if (n==0) Return n:=n+1 Send, +{left %n%} Return
かなり力技やねw 既存のソフトも似たような理屈なのかな?
タスクトレイアイコンを既存の緑色のHのものから変えたいんですけどどうやればいいですか? test.ahkを走らせるときにautohotkey.iniのアイコンと同じだと区別がつかないので変更したいんです。
>>823 流行らせるページ→リファレンス→Menu
>>823 的確なレスありがとうございました。
Menuの中でいじれたんですね。
Numpad1::Shift とシンプルなスクリプトで申し訳ないのですがどうも想定した動作をしてくれません 1秒ほど押すとなぜかShiftがロックされてしまいます なにかいい回避方法などありますでしょうか?
それぞれにup downを組み合わせるとか
>>827 Numpad1::Send,{Shift Down}
Numpad1 Up::
Send,{Shift Up}
Return
こんな感じのも試してみましたがダメでした
テンキー以外をリマップさせたときは
>>826 でもちゃんと動いていて
ロックされてしまうのはテンキーだけみたいです
ハード的もしくはソフト的にダメなのかな orz
Numpad1::SendPlay,{Shift Down} Numpad1 Up:: SendPlay,{Shift Up} Return なんとかこれで不完全ながら一応望む挙動になりました スレ汚しスマン
うちも昔、テンキーに割り当てたときに同じような症状が出て困った
>>830 うちは大丈夫みたい
USBの外付けテンキーだけど
833 :
名無しさん@お腹いっぱい。 :2007/06/05(火) 04:15:38 ID:5BloAhfk0
「変換」キー+「i」の入力で「カーソル上」を押したことにするのってこれであってる? vk1Csc079i::Up なんかうまく動かないんだよね…。 Vistaマシン買ったはいいものの窓使いの憂鬱が動かなくて困ってます。
vk1Csc079 & I::Send,{Up}
835 :
833 :2007/06/05(火) 09:16:37 ID:5BloAhfk0
>>844 おおー!
ありがとう!動きました!
やっとまともに触れる…。
あ、でもこれShiftやCtrlとの同時押しは別途定義しないといけないのか。
よーし。がんばるお!(`・ω・´)
>>835 sc079 & I:: Send, {Blind}{Up}
とにかく流行らせるページのリファレンスを読む&過去スレ検索の徹底よろ
837 :
23 :2007/06/05(火) 12:49:59 ID:5BloAhfk0
おお!!できた!!! ありがとう!! これでやっと普通にVistaが使えます。 AutoHotKey、今までよくわかんなくてスルーしてたけど、 いろいろ何でもできそうなことを知ったのでちょっと使ってみます。 ありがとう!
スクリプトを すでに実行していればReloadさせて 実行していなければRun, mg.ahkで実行するようには どう書けばいいのでしょうか?
される側のスクリプトに #SingleInstance force でもおいといたら
>>839 ありがとう!こんなのもあったんですか。凄いっす
引数の連結は出来たんだけど、変数に引数を入れるときに ""が勝手に外れちゃうのはどうにかなる? "-opt:hoge hoge"みたく外側の""は後から付加してやれば良いけど -opt:"hoge hoge"みたいなときに-opt:hoge hogeになっちゃって…。 どうしようもなくて-opt:\"hoge hoge\"みたく\"でエスケープして 渡すようにしたけど、これだとどうも融通が効かないというか。
>841の4行目訂正すまそ。 >-opt:"hoge hoge"みたいなときに-opt:hoge hogeになっちゃって…。 -opt:"hoge hoge"みたいなときにも"-opt:hoge hoge"になっちゃって…。
#IfWinActive で、先頭に半角スペースのあるウィンドウタイトルは、どうやって指定したらいいでしょうか?
>>843 前方一致で
#IfWinActive, %A_Space%
かな。試してないけど
>>841 もしLoopでやってるなら
まず半角スペースがあるかどうか調べて
あれば"で囲んで連結するとか
845 :
843 :2007/06/08(金) 07:02:44 ID:1NUphug40
>>844 教えていただいたようにしてみると、%をエスケープしろとエラーが
出たのでエスケープしたのですが、それでもうまくいきませんでした。
ahk_class など他の方法でなんとかしてみます。
どうもありがとうございました。
「' 」
Explorerに対してAlt+D, Ctrl+Cして カレントディレクトリのパスを取得して メニューを表示して各種コマンドを起動するなんて サンプルソースないですかね。 cmd.c /k cd /d "%cd%"とか contextmenu.exe "%cd%"とかその他いろいろしたいんですが。
848 :
でけた :2007/06/08(金) 18:32:26 ID:+wNDnIAG0
menu_contextmenu: MouseMove,4,4 MouseClick,Right return menu_commandprompt: run,%comspec% /k cd /d "%clipboard%" return menu_show: Send,!D^C menu, explorermenu, add,コンテキストメニュー(&C), menu_contextmenu menu, explorermenu, add,コマンドプロンプト(&P), menu_commandprompt menu, explorermenu, show return #IfWinActive, ahk_class CabinetWClass F9:: Gosub,menu_show #IfWinActive, ahk_class ExploreWClass F9:: Gosub,menu_show
>>847-848 Alt+D Ctrl+C以外にもControlGetTextとかWinGetTitleという手も
あと、メニューを表示している間は同じスクリプトファイル内のホットキーとかが効かなくなるから
場合によっては常駐スクリプトとは別のファイルにした方が良い場面もあるかも知れない
いろいろコマンドは覚えたが したいことが思いつかなくなったので 最近スクリプトがかけない
代えのきかない糞ツールを使って何とか生産性上げなきゃならん身としては これがないと腕が腐るし目が氏ぬし飢える。もはや無いと生きられんw
852 :
でけた :2007/06/08(金) 20:18:01 ID:+wNDnIAG0
>ControlGetTextとかWinGetTitleという手も なるほど。もう一個作ってミ田 ; アドレスバーに短縮アドレスを入力して^Gで移動する go: Send,{^Del} ; カーソルより右を削除。home|C:\Windowsとかでも展開させるため ControlGetText, alias, Edit1 iniread,alias,explorer.ini,alias,%alias%,?NOTFOUND? if(alias="?NOTFOUND?"){ Send,{ESC} return } ControlSetText, Edit1, %alias% Send,{Enter}{Tab} return #IfWinActive, ahk_class CabinetWClass ^G:: Gosub,go #IfWinActive, ahk_class ExploreWClass ^G:: Gosub,go explorer.ini [alias] home=c:\home win=c:\windows sys32=c:\windows\system32 bin=c:\home\bin prog=c:\program files ahk=c:\home\bin\autohotkey
クリップボード内などのシフトJIS文字列をUTF-8やEUC-JPに変換するスクリプトって 現存します? ちょっとした.dll書いたんだけどそういうスクリプトあったらあんま意味ないかなと思って。
簡単にコンピューターのロックしたいのですけど 思うように行かないので・・・おねがいします。 マウスの中央のボタンが押されたらログイン画面にもどるようにしたい いまのところ マウスにScrollLockを割り付けて AutoHotKeyでScrollLockがおされたらWIN+Lがおされるようにしてるのですが ログイン画面に戻ってログインしなおしたときにWINキーが残ったような動作をします。 ScrollLock::#l
BlockInputじゃダメ?
>>853 perlとかの既存の外部スクリプトと連携できたりしたら
いろいろ可能性が広がりそうだね。
? 好きなキーに割り当てればいいじゃん
Lock系のキーはahkでは鬼門
状況はよくわからんが、まずは他のキーに割り当てて正常動作するか試してみたら?
>>858 これもよくわからんがショートカットを作ってそれをクリックするような動作を想定してるのかな
runコマンドで直接叩けばOKだと思うけど
内容が「コンピュータのロック」では混同されそうだな、もいちど補足 >Lock系のキーはahkでは鬼門 #l に問題があるのではなく、ScrollLockへの割り当てが引っかかってるんじゃないかってこと とりあえずファンクションとか#aとか別のキーでの割り当てで試してみるといいよ
レスありがとうございます。 ファンクションでの割り当てをしてみたのですが、やはりだめでした。 ranの方はいろいろ試してみます。
ranじゃなくてrunだ・・・OTL
runの方はスマートではありませんができました。 %windir%\System32\rundll32.exe user32.dll,LockWorkStation をバッチファイルの中に書いて autohotkeyの方でそのバッチファイルを起動させるようにしました。
>>853 のプラグイン、公開したんですが宣伝しても良いでしょうか?
クリップボードの中身を ・2chエンコード(タブ、スペースを に変換) ・Pukiwikiエンコード(頭にスペースを挿入) ・Googleで検索 ・アルファベットのみなら英和で検索、漢字交じりなら和英、国語で検索 するプラグインキボンヌ
追伸 2chとPukiwikiはちょっと意味が分からなかったんだけど、 GoogleはShift+Ctrl+G、辞書はShift+Ctrl+Dでいけます。
UEと何が違うん?
>>869 ue.exeの存在を知らなかったです。
>>777 は参照できないし。
設定ファイルがいらないからDllCallだけで呼び出せる点は違うかな。
エンコード関連の関数もDllCallで呼び出せるようにしてみる。
Excelで Ctrl-TABするとブックを切り替えられますが、 あんな感じで、同一ウインドウクラスとかで 次々とウインドウを切り替えるようなものってありませんか?
>>873 WinGet, Var, list使ったらいいんじゃない?
俺も勉強中だから、勉強ついでに書いてみようか?
外食するからそのあとになるけど
ごめん。遠回りなこと考えてた俺 ウィンドウグループ使ったほうがはやいみたいだ
ウインドウグループ!そういうのもあるのか。
>>875 どうもありがとうございます。
なるほど、GroupActivateを使うとできました。
アプリケーションの数だけGroupActivateを書かないといけないのが面倒ですが、
とりあえずやりたいと思ってたアプリケーションでは無事動作したので満足です。
帰ってきた あああああ・・・ ほんとごめん、ゴメン。。。 単純にWinActivateBottomでやるのと同じで・・・余計な手間みたいな・・・ ゴメン
>>878 #IfWinActive ahk_group G_APPWINSW
^Tab::
WinGetClass,class,A
WinActivateBottom,ahk_class %class%
return
これでグループにアプリケーション追加するだけで済みますた。
どうもありがとうございます。
ツールチップを消すのに Esc:: ToolTip Send %A_ThisHotkey% return て書いたら、アプリケーションに 'Esc' という3文字が送られちゃうんですが そんなもんですか…。 {Esc}:: とは書けないしなぁ。
Send, {%A_ThisHotkey%}
書き方としてはこれですな。ああすごくスッキリした。 お騒がせしました。 ~Esc:: ToolTip return
パーセントエンコーディングされた文字列(%83%65%83%58みたいな)を含むテキストファイルを FileReadで読み込もうとすると、%で囲まれた部分を変数として展開してから渡してしまう様子。 当然そんな変数(上の例なら%83%とか)は無いので、null文字になる。 結果↓のように代入して扱おうとすると、null文字以降にアクセスできず、使えない… FileRead, foo, bar.txt #DerefCharで変数名を囲む文字を変更しても駄目。 リファレンスを見ると、FileReadの項目に、 >変数の内容文字列としてアクセスできるのは最初のnull文字以前の部分だけだが、 >DllCallなどを使用することで全ての内容にアクセスすることができる。 とあるけど、StringReplaceやFileAppend等に応用する方法がさっぱり分からないっす。 変数にnull文字を含まなくさせる方法等の解決策プリーズ!
886 :
884 :2007/06/18(月) 03:32:56 ID:eBzdZrOL0
単にGooのエンコードがShift-JIsじゃないことが問題だと思うんだけど
888 :
879 :2007/06/20(水) 08:58:59 ID:picXYm+T0
同一アプリのウィンドウ切り替え(
>>879 )ができるようになって
重宝してるんですけど、切り替えたときにタスクバーが
オレンジになることがあって気になります。
XPの仕様なんだろうとは思うんですが、
きちんと最前面に出てきてくれているのでオレンジに
ならなくていいんですけどね…。
なんか解消する方法とかありますか?
オレンジ?
タクスバーのアイコンがオレンジに点滅する 更新があった通知だけで、ウィンドウは切り替わらない
>>888 ダサイやり方でスマン…
#IfWinActive ahk_group G_APPWINSW
^Tab::
WinGetClass,class,A
WinActivateBottom,ahk_class %class%
Send, {Ctrl}
return
それってTweakXP(だっけ?)で抑制できなかったけ? 抑制しても元に戻ったりして苦戦した憶えがあるが…。
TweakUIか。
894 :
884 :2007/06/21(木) 14:19:57 ID:rb4bENUj0
>>885-887 紆余曲折の結果、
>>885 の紹介先にあった関数で文字列をエンコードしてから
URLDownloadToFileに渡すことで、ファイル内の該当文字列も問題の無いものになりました。
ご協力ありがとうございました。
1.0.47 が来てたみたいだけど、 ・特定ディレクトリ内のファイルに定義された関数を #Include なしに呼び出せる関数ライブラリ機能の追加 ・返値を関数ポインタとして API に渡せる RegisterCallback() の追加 ・Extract/InsertInteger() の代わりに使えて高速な NumGet(), NumPut() の追加 あたりかなり嬉しい強化だと思われ。
画面最上部でホイールスクロールするとタスク切り替えになるスクリプトキボノゥ
>>896 スクロールするごとにタスク切り替わると気持ち悪くならない?
Operaみたいに右クリック&スクロールで選択して離すと切り替わるみたいな方式が良さそう
GUI使うの面倒だからつくらないけど
run, C:\WINDOWS\system32\wscript.exe ***.js %Post% こんなんじゃだめなん?
>>899 なるほど・・・。ありがとうございます!
このソフトってレジストリ使うの?使わないの? ググってみたら言ってることがばらばらで・・・
>>901 インストーラー版なら当然使う。
zip版なら解凍するだけ。
.ahkファイルを関連づけするならどちらでもレジストリを使う。
利便性を考えるならインストーラー版を勧めるけど、USBフラッシュメモリなどに入れて、
出先で使うことも可能。
>>902 なるほど・・・。ありがとうございます!
出先でスクリプト改変しないならexeに変換してもいいかもね。
使い方がわからなかったんじゃね?
今日初めて使い始めました。windowのアクティブ化が簡単でビックリ。 keybatでさんざん苦労していたのが嘘みたいです。 ところで、AccessではF1で印刷、ExcelではF1で検索みたいに使いたいんですが、hotkeyをソフト内で制限する方法が分からないので、御教授を・・・ それと、1つのファイルでhotkeyを複数定義出来るのでしょうか?10種類のショートカットを登録すると10個のスクリプトを起動しないといけないなんてことは無いと思うので。。 厨房で済みません。
908 :
907 :2007/06/28(木) 20:07:02 ID:7PkXym0v0
やっべー、ソフト内での割り当てはIfWinActiveで出来ますね。 済みませんでした。
連投済みません。 +a::b で「b」でなく「B」になってしまいます。ちなみに^a::bにしても^bと同じ効果が発動します。 何がいけないのでしょうか?CapsLock押してないし、他のスクリプトは立ち上がってないし。。。わからん。
リマップは常に{blind}になるから Sendコマンドを割り当てれば修飾キーの動作までカスタム出来る
>>910 ありがとうございます。
流行らせるページを見直したら
>>以下の例では、Shiftを押しながらAを押したときは、「B」が入力される。
>>
>>+a::b
て書いてありました。おっちょこちょいで済みません。
+h::send {left} でvi風に動きました! ありがとうございました。 それにしても楽しいソフトですね。
ファイル名の先頭に文字列を追加したいときに手動でF2→Homeで先頭にカーソルが来ます。 これを ○::send,{F2} {home} で行うとなぜか、ファイル名が消えて空白の先頭にカーソルが点滅します。 手動のF2→Homeと同じことを行うにはどうしたらいいのでしょうか?
試しに F1::Send,{F2}{Home} こうやってみたけど問題なくできてるよ。 どうしてもできないようなら間にsleep入れるとか キーボードのインプット一時ブロックしてみるとかは?
915 :
913 :2007/06/29(金) 02:16:57 ID:my+xe6kB0
>>914 あれ?今試したら、出来ました。
さっきまでいくらやってもダメだったのに・・・
不思議です・・・
こういうことって、よくあるのですか?まるで生き物みたいですね。
>>915 お前もどうやら生きてはいる様だが脳死だな
>>914 いま、原因が分かりました!
{F2}と{Home}の間に半角スペースが空いているときはファイル名が消えました。連続していると大丈夫でした。
お騒がせいたしました。ありがとう御座いました。
それにしても、なんで、半角スペースがあるだけでこういうことになるのでしょうか?
そりゃ半角スペースが挿入されるからだ。 Send,ab cd を試してみなよ。
F2押した直後は全体が選択されているからな
初々しいのう
(物理的に)同じキーのSHIFT有り無しで入力される文字を入れ替える方法ある?
言ってることがよくわからんのだが \キーを、普通に押すと\ シフト押下時は| |が出るのではなくて、違う文字がでるようにしたいってこと?
もしそうだったらの場合だけど、、 Shift + \キーで@が出るようにするとしたら +\::Send,@
左右のShiftの区別は出来る
ttp://lukewarm.s101.xrea.com/commands/DetectHiddenWindows.html > 非表示のウィンドウ上のコントロールを「ahk_id」を使用し
> て操作する場合、ここでの設定に関わらず操作が可能。
と書かれているんですが、以下のコードが失敗します。
これはこういう仕様なの?
SetTitleMatchMode 2
DetectHiddenWindows On
ReceivingScript := WinExist("wintest.ahk ahk_class AutoHotkey")
DetectHiddenWindows Off
SendMessage, 0x400, 0, 0,, ahk_id %ReceivingScript%
DetectHiddenWindows, On
よくわからんがSendMessageの前にOffにしてるからでないかい。
いや、説明によると隠れているウィンドウを ahk_id で操作する場合、 DetectHiddenWindows の設定に関わらずに操作できるんじゃないの?
コントロールです
つか WinExist()できちんとID取れてるかは確認したのか? > "wintest.ahk ahk_class AutoHotkey" こういうタイトルとClass併用の記述ってOKなんだっけか?
>>930 > つか WinExist()できちんとID取れてるかは確認したのか?
問題にしたいのは、隠れているウィンドウが
DetectHiddenWindows off
で操作できるかどうか、です。
まぁ
>>929 の言う通り隠れたウィンドウ上のコントロールは操作できるけど、
隠れてるウィンドウは操作できないって事かねぇ。
…。 問題を切り分ける上で、確認したい事項以外の不安要素は除くべきだと思うのだが。 DetectHiddenWindows on の状態でやってみたか?それで操作できたのか? そこんとこ書いてないから確認の意味でレスしたんだけど。
>>931 >
>>930 > > つか WinExist()できちんとID取れてるかは確認したのか?
> 問題にしたいのは、隠れているウィンドウが
> DetectHiddenWindows off
> で操作できるかどうか、です。
なにこの頭の悪いレス。
>>925 で自分で書いている通りの動作はできてるんでしょ?
> > 非表示のウィンドウ上のコントロールを「ahk_id」を使用し
> > て操作する
何を聞きたいのかさっぱりわからんが、その上からの物言いはやめたほうがいいよ。
>>925 も最初に確認したいことをもう少し明確にするなりした方が良かったと思うし、
内容はどうあれレスをくれた人にある程度の敬意というか、感謝を含んだ文章だったら
何の問題もなかったんじゃないかと。
ただ、
>>933 ,
>>935 はただの混ぜっ返しにしか見えない。
>933は>930に対して>931のようなレスを返さず始めから >934のように返しておけば、という意味じゃねーの? >935も、意を汲めば言ってることは>936と同じ。
こう言うのって、2年後くらいに過去ログあさっているときは、あっさりスルーなんだよなw 過去の人間の喧嘩なんて本当にどうでもいいから、読み飛ばすだけなんだよなー。
リアルタイムでもあっさりスルーだけどな。
当方、英語版WindowsXP+英語キーボードを使用しており、窓使いの憂鬱からの乗りかえを考えています。 Capsキーをワンショット(SandS)モディファイヤとして使用したいのですが、良い方法がわかりません。 窓使いの憂鬱では、以下のようにしてできています。 mod Mod0 = !!Caps key S-M0-Caps = Caps key M0-Caps = &ShellExecute("open","cmd.exe",,,ShowNormal) key M0-Up = PageUp Key M0-Down = PageDown
すいません、途中で送信してしまいました。 上記(繭用)スクリプトをとりあえず以下のようにしてみました。 CapsLock & Up:: Send, {PgUp} CapsLock & Down:: Send, {PgDn} CapsLock:: Run, cmd.exe ここまではよいのですが、Shift+CapsLockでキャピタルロックする方法がわかりません。 参考サイトなどご教授いただけると 幸いです。
日本語OS環境でのLock系キーの割り当ては無理 理由はこのスレを CapsLockで検索すればわかる (いいかげんFAQと化してる話題でもう解説するの面倒なんで自分で調べてくれ)
スマソ、英語版環境か。 それは公式で聞いたほうが早いかも ここにいる人間で検証できる環境がある人がそんなにいると思えんし
>>943 公式フォーラムにて質問してみます。
ありがとうございました。
ウィンドウを最前面にするのはWinActivateですが 逆に、最背面にする命令はあるんでしょうか?
リファレンス見ればわかるだろ
947 :
名無しさん@お腹いっぱい。 :2007/07/10(火) 18:06:36 ID:FAXLBjFe0
英数+nで下、英数+pで上にカーソル移動ってできないですかね? vkF0sc03a+n::Down vkF0sc03a+p::Up で、英数キーを押した時点でDownしちゃいます。
コンビネーションキーでカス
949 :
名無しさん@お腹いっぱい。 :2007/07/10(火) 22:55:27 ID:LNjd8xgV0
951 :
名無しさん@お腹いっぱい。 :2007/07/11(水) 23:33:16 ID:DBpGI3DR0
>>950 どうもありがとうございます。
参考になります。
vkF0sc03a & n::Send,{Blind}{Down}
vkF0sc03a & p::Send,{Blind}{Up}
これでやってみたのですが
英数キーを離してもnキーだけでDownしちゃったりと、思い通りに行かないです。
過去ログを探したらCaps Lockは離したときを感知できないそうですけど英数キーも同じということなのでしょうか。
できたら非常に便利な場所なので残念です。
うちではCapsLock=英数キーだわ
953 :
名無しさん@お腹いっぱい。 :2007/07/12(木) 00:47:25 ID:mp+RsfMV0
通常の日本語キーボードは、英数キー+シフトキーでCapsLockになると思います。
>>951 外部環境でも使いたいというのであれば駄目だけどChange Key等を使って、
英数キーをシステムレベルで別のキー(F13〜F24キーがおすすめ)に入れ替えたのちに
AHKで↓のようにやると良いかも。
F13 & N:: Send, {Blind}{Down}
F13〜F24は一般的なアプリケーションではまず使われることがないから、
バッティングを気にせずに記述できて楽。
955 :
名無しさん@お腹いっぱい。 :2007/07/12(木) 01:55:04 ID:mp+RsfMV0
なるほど。どうもありがとうございます。 感謝です!
しかしいつになったらCapsLockがまともに扱えるようになるんだろう・・・
英語環境では問題ないから 治らないって話みたいですね
958 :
940 :2007/07/12(木) 12:04:19 ID:5fBmqKBn0
CapsLockについて公式フォーラムで質問してみました。 当方、英語版WinXPProSP2をラップトップPC(101/102キーボード)にて使用しているのですが、 自分のPCでは動かないahkスクリプトが、他の人のPCでは正常動作するらしいと教えていただきました。 やはりロケール設定の違いによるものっぽいですね。 (現在はWindowsの設定で日本語環境を選択しています) 当面のところは窓使いの憂鬱と併用し、何かわかったらご報告します。
accessで使っていると新規レコードのコントロール内でhotkeyが反応しなくなり、スクリプトをリロードすると反応する現象が出ています。 これはどうやって解決したら良いのでしょうか?
961 :
名無しさん@お腹いっぱい。 :2007/07/13(金) 10:16:52 ID:MRrul5Qe0
>>954 ChangeKeyでF13を設定しようとしたんですけど、コードで設定するのですよね?いろんな所を探したのですがF13のコードがわかりませんでした。汗
ChangeKeyはようわからんが、ahkで Send,{F13} してKeyHistoryでスキャンコード調べるのではあかんのか?
http://lukewarm.s101.xrea.com/KeyList.html 自分が前に調べた時は↓のような感じだったが。
VK SC Type Up/Dn Elapsed Key
------------------------------------------------
7C 064 i u 0.04 F13
7D 065 i u 0.04 F14
7E 066 i u 0.04 F15
7F 067 i u 0.04 F16
80 068 i u 0.04 F17
81 069 i u 0.04 F18
82 06A i u 0.04 F19
83 06B i u 0.04 F20
84 06C i u 0.04 F21
85 06D i u 0.04 F22
86 06E i u 0.04 F23
87 076 i u 0.04 F24
PixelSerachもしくはそのようなコマンドを非アクティブウィンドウで実行することはできないんでしょうか
964 :
名無しさん@お腹いっぱい。 :2007/07/13(金) 22:43:54 ID:MRrul5Qe0
>>962 どうもありがとうございます。
ばっちり使えるようになりました!
>>963 再描画のメッセージ投げれば再描画してくれる…かもしれないね。
実装にもよるけど。
>>流行らせるページ管理人さんへ(JPドメインじゃないとBBSに書けないのでここで報告><) mosaic.ahkのバグ報告。複数モザイクを作成した場合に新しく作成したモザイクから消していかないとうまく消えてくれないようです。 原因は#MButtonルーチンのループ内で(!mLeft%A_Index% && !mTop%A_Index%)になった時点で必ずループを抜けてしまう為に それ以降のmIDのウィンドウが無視されてしまう為に起こるようです。 なので、Loop内の }else if((mLeft%A_Index%<x) && (mTop%A_Index%<y) && (x<(mLeft%A_Index%+mWidth%A_Index%)) && (y<(mTop%A_Index%+mHeight%A_Index%))){ KillMosaic(A_Index) return を消して 新たに、~*MButtonルーチン内の if((x==mLeft%mID%) || (y==mTop%mID%)){KillMosaic(mID) 以下に Loop,%mCount%{ if((mLeft%A_Index%<x) && (mTop%A_Index%<y) && (x<(mLeft%A_Index%+mWidth%A_Index%)) && (y<(mTop%A_Index%+mHeight%A_Index%))){ KillMosaic(A_Index) break } } て感じで移動すれば、多分大丈夫みたいです。 モザイクスクリプト作ろうと思ってたんですよ。でも普通にやると絶対処理が追いつかないので どうしたらいいのかなって思ってた所だったので助かりました!StretchBlt()を使う発想はなかった・・ ドラッグで指定出来るところとか、複数作成出来るのがカナーリ使いやすいですね
967 :
959 :2007/07/14(土) 11:06:26 ID:ZsVO6q/40
>>960 今度はDocuworksで動かなくて、リロードしたら動きました。
うーん、何か文法ミスしているのかな?
最近使い始めたのですが、文法ミスしても動いちゃうことがあり、挙動不審になるような気がしているのですが、それかな?
なんかのホットキーラベルでリターンしないで Waitしてる箇所でもあるんじゃないの
969 :
959 :2007/07/14(土) 19:06:18 ID:ZsVO6q/40
相変わらず不安定です。1行の命令にも全部returnを入れた方がいいのかな? それと別件ですが、「形」という文字を含むディレクトリ、ファイル名はRunコマンドがtargetを見つけられないようなんですけど、既知ですか?
>>969 >「形」という〜
既出。
>>970 の方法か、「形」の後に「`」をいれてみ。
〜AチЯ`荏柿義形港餐汁秦疏蛋伝覗描冒輿倭兪啻嫣彖拜杼歔
のような、2バイト目が0x60「`」な字をAHKで扱うときはみんな同じように記述すべし。
みんなエディタなにつかってる?おれは秀丸
NumGet が無いとおもったら入れてるバージョンが古すぎた orz
>>972 emacs
秀丸
おがわさん
秀丸派 そういえば VxEditorがレジストリ使わないバージョンになって復活したらしいね。 流行らせるページ管理人氏が別サイトで布教してるやつ これから始めようと思ってエディタ捜してる人にはいいんじゃないの。 過去ログで話題になってたAHK用補完スクリプトは今見に行ったら見当たらなかったが。
FileZillaというFTPクライアントとAutoHotKeyを組み合わせてファイルの送信して 送信が終わったら終了させるっていうスクリプトを書いています。 しかしファイルの送信が終わっても「送信が完了しました」等のダイアログが出るわけでは 無いので、どういう風に判定して終わらせたらいいのか分かりません。 この判定をミスって終わらせてしまうと、ファイル転送中なのに終了させてしまう 事になるのですが・・・。 どう判定すれば良いのでしょうか?
ちなみに送信にどれくらい時間がかかるかはマチマチで分からないので Sleep, 7200000 ; (7200秒=2時間) WinClose, FileZilla 等は出来ません。
ネットワークモニターのモジュール使えば
どんなソフトかは知らないけど、 ウィンドウタイトル監視か ステイタスバーメッセージの監視あたりじゃないの もしかしたらFTPのメッセージログあたりを取得してるかもしれないから そこに何かでるかもね FFFTPだとその部分のテキストも取れる
emacs派なんだけどwindowsでemacsはなんか使いにくいのでgvim使ってる。
>>979 詳しく
>>980 ウィンドウタイトル>ずっとFileZillaのまま変化なし。FFFTPは別のダイアログが
出てきて送信速度が表示されるから出来ますよね。
ステイタスバーメッセージ>
>>>>>>>>>>>( Status Bar Text )<<<<<<<<<<
(1):
(2):
(3):
(4):
(5): キュー: 16610 MB
(6):
こんな感じです。キューが0MBになったら転送が終わるのかどうかは不明ですが
仮にそうだとしたらIf 0MB Then WinClose, FileZilla みたいな処理は可能なのですか?
あるキーだけ押したとき = 修飾キーなしで押した状態だけ動作させたいですが、 a::Run test.exe って書くと、ctrl+aとshift+aとかもtest.exe実行されちゃうです。 なんとかならんもんか
他にスクリプト常駐させてて *a::Send, aとかやってたりとか
987 :
977 :2007/07/16(月) 04:30:39 ID:wXRSeupU0
>>987 ふつーのftpコマンドで送ればいいやん
989 :
977 :2007/07/16(月) 05:31:49 ID:wXRSeupU0
>>988 それが出来れば苦労しませんけどね。
なんせ大量のファイル数でFFFTPとかだとフリーズするし
MS純正のftp.exeだと送れてないファイルとかあってね。
唯一送れるのがFileZillaだけなんでね。
ここにもこれが必要だな わからない七大理由 1. 読まない ・・・説明書などを読まない。読む気などさらさらない。 2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。 3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。 4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。 5. 環境のせいにする ・・・自分が悪いのではなく環境が悪いと責任転嫁する。 6. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする。 7. バカだから ・・・バカだから。
>>989 代案にその態度、どんな育て方されたんだか。親の顔が見てみたいよ。
>>991 でも、4、5、7については差し伸べる手があってもいいよね?
自分の言葉足らずを棚に上げて、人の善意を足蹴にするような礼儀知らずは
除外してもいいとは思うけど。
995 :
977 :
2007/07/16(月) 15:08:11 ID:wXRSeupU0 結局同梱の AU3_Spy.exe で調べても転送終了前と転送終了後で 全く変化が無いのでそこを判定して終了させる事は出来ないと思われるわけで AutoHotKeyでは無理って事ですか。何か他の手段と連携しないと・・・・