AutoHotkey スレッド part8
at SOFTWARE
1:名無しさん@お腹いっぱい。
09/05/23 00:23:38 78PWRd9v0
■公式
URLリンク(www.autohotkey.com)
■解説
AutoHotkeyを流行らせるページ
URLリンク(lukewarm.s101.xrea.com)
■過去スレ
1 スレリンク(software板)
2 スレリンク(software板)
3 スレリンク(software板)
4 スレリンク(software板)
5 スレリンク(software板)
6 スレリンク(software板)
7 スレリンク(software板)
■派生版
AutoHotkey_L
URLリンク(www.autohotkey.net)
駄目文字微対策版
URLリンク(yak.myhome.cx)
関連リンク>>2以降も参照
2:名無しさん@お腹いっぱい。
09/05/23 00:24:43 78PWRd9v0
■関連記事のあるサイト
AutoHotkey メモ - Principia
URLリンク(principia.s54.xrea.com)
AutoHotKey - notitle.txt
URLリンク(kan.s151.xrea.com)
なまず日記
URLリンク(www.tierra.ne.jp)
eamatの日記
URLリンク(d.hatena.ne.jp)
おばけ日記
URLリンク(d.hatena.ne.jp)
1 Hour Software by Skrommel - DonationCoder.com
URLリンク(www.donationcoder.com)
ACConsole
URLリンク(www.autohotkey.com)
Tips N Tricks(公式フォーラムのトピック)
URLリンク(www.autohotkey.com)
3:名無しさん@お腹いっぱい。
09/05/23 00:25:48 78PWRd9v0
Q1:CapsLock(英数)キーの割り当てがうまくいかないよ
A1:日本語環境だとLock系キーの動作は不定。
OS側がキーUp/Down情報が正しく返してこないので対処のしようがない。
OSのローカライズ段階で発生してる問題なので、窓使いの憂鬱やChange Keyのように
ドライバレベルで弄らないとダメだが英語圏では問題ないらしいので今後のサポートもあまり期待できない。
対処としては前述のソフトで、CapsLock(英数)キーを別のキー(F13〜F24など)に割り当ててから
AHKで利用すべし。
Q2:「〜AチЯ`荏柿義形港餐汁秦疏蛋伝覗描冒輿倭兪啻嫣彖拜杼歔」を含む文字列がうまく扱えないよ
A2:これらの文字の2バイト目が、AHKのエスケープ文字である0x60[`]なため。
対処としてはこれらの文字の"直後"に「`」を記述する(例:「線形`代数」)か、
#EscapeCharでエスケープ文字を別のものに変えるべし。
Q3:Shift, Ctrl, Alt, Winキー以外のキーを修飾キーとしてキー割り当てしたいよ
(例:無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたいよ)など
A3:Remap機能は記述が簡単になる反面、細かい指定がしにくい。
流行らせるページのHotkeys, キーリスト, リファレンス→Send, #IfWinActive, GetKeyState()なども参照すること。
なお、例の場合は以下のように記述する。
sc07B & I::Send, {Blind}{Up}
sc07B & K::Send, {Blind}{Down}
sc07B & J::Send, {Blind}{Left}
sc07B & L::Send, {Blind}{Right}
Q4:エディタの定義はどうするの?
A4:「{AutoHotkeyのフォルダ}\Extras\Editor」に各種エディタの定義ファイル及びキーワード一覧あり
Q5:GUI作るのめんどくせ〜〜
A5:公式( URLリンク(www.autohotkey.com) )から SmartGUI Creator をDLして使え
Q6:ファイルパスに駄目文字があるんだが、、、
A6:駄目文字微対策版( URLリンク(yak.myhome.cx) )を使え。
4:名無しさん@お腹いっぱい。
09/05/23 00:27:52 78PWRd9v0
Q7:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
A7:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」
Q8:AHKってマルチスレッドじゃないの?
タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
A8:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
> 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
> → 実行中、 …:割り込み終了待ち
> 元スレッド →→→→→→→→→→→……………………………………→→→→
> ★割込 ↑再開
> 割り込みスレ →→→→…………→→→→→→END
> ◆割込 ↑再開
> 更に割り込み →→→END
Q9:完璧なスクリプトなのに、なぜerrorが出るの?
A9:このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
全角スペースをタブや半角スペースに変換してみよう。
Q10:作りたいんですけど?どうすればいいのでしょうか?ご教示頂きたいです。よろしくお願いします。
A10:簡単ですから(メモ帳等を使い)自分で書いてください。
まず、自分で少しでも書いて晒してみよう。そうしたらレスが付くかも…
イントロダクション、使用例、使用方法、Hotkeys、キーリストに目を通した方が話が早いぞ。
Q11:具体的に何が出来ますか?どこにありますか?
A11:マウスジェスチャ、ThumbRemap、TTBaseプラグインの数種、仮想デスクトップ等
1:「AutoHotkeyを流行らせるページ」の「My Scripts」や「BBS」の投稿スレ
2:公式のWiki「Compilations」
5:名無しさん@お腹いっぱい。
09/05/23 00:59:07 78PWRd9v0
Q12:「a=abc」と「a:="abc"」って違いがある? / 「If a=1」と「If (a=1)」って違いがある?
A12:意味としては違いは無いけど、コマンド形式(共に前者)の方が「式」形式(後者)のほうが少し速い。
だけど、ループで大量(数万回転↑)に回さないと実感出来ないし、複数条件を使うなら「式」を使った方が速い。
Q13:ウィンドウ毎のキーマップは簡単だけど、キーを押して切り替えたりしたい。
Q13:派生版の「AutoHoekey_L( URLリンク(www.autohotkey.net) )」を使うと便利。
; 変数KeyMapが1の時だけ、IKJLでカーソル移動
#If (KeyMap=1)
I::Up
K::Down
J::Left
L::Right
#If
※ 上記以外にもユーザ定義関数などを利用して様々条件でキー・マウス設定が出来る。
Q14:配列変数やハッシュ(仮想配列)は使ええないの?
A14:「式」を使うと配列やハッシュのように変数を参照できる
以下のようにした場合、A%Index%を展開してできあがった文字列の示す変数内容が x に格納される。
x := A%Index%
代入しないで参照するする事も可能、
WinGet, list, list
Loop, %list%
{
WinGetClass, class, % "ahk_id " list%A_Index%
:
}
6:名無しさん@お腹いっぱい。
09/05/23 01:22:42 i45iLGOr0
新スレおめ
∧_∧
オツカレチャ━━━(´∀` )━━━ソ!!!!!
/ ヽ
/ 人 \\ 彡
⊂´_/ ) ヽ__`⊃
/ 人 (
(_ノ (_)
7:名無しさん@お腹いっぱい。
09/05/23 02:26:26 EdKRGdzN0
乙です!
> A12:意味としては違いは無いけど、コマンド形式(共に前者)の方が「式」形式(後者)のほうが少し速い。
どっちが速いの?
8:名無しさん@お腹いっぱい。
09/05/23 02:29:34 j0LLn1RV0
>>7
後をきちんと読めばわかるだろう
9:名無しさん@お腹いっぱい。
09/05/23 06:24:57 Pd5cDY560
>>3の↓は
>Q:「〜AチЯ`荏柿義形港餐汁秦疏蛋伝覗描冒輿倭兪啻嫣彖拜杼歔」を含む文字列がうまく扱えないよ
別ファイルに書いといて直接変数に読み込む手もあるね
(ahkスクリプト)
------------------
SetWorkingDir, %A_ScriptDir%
FileReadLine, OutputVar, test.txt,1
FileReadLine, HelloWorld, test.txt,2
MsgBox, %OutputVar%
MsgBox, %HelloWorld%
------------------
test.txt
------------------
〜AチЯ`荏柿義形港餐汁秦疏蛋伝覗描冒輿倭兪啻嫣彖拜杼歔
ハロ〜ワールド
10:名無しさん@お腹いっぱい。
09/05/23 08:15:38 0lga1Rqg0
前スレ >>977
Gui, Add, Hotkey はWindowsキーを修飾キーとして利用出来ず、
いずれはそれっぽいものを個人的に作ろうと思ってたので
前スレ >>978 氏のリンクを参考に書いてみた。
#SingleInstance, force
#Installkeybdhook
gosub, SetHotkeys
InputBox, OutputVar, , キーを押してください, , 180, 120
return
SetHotkeys:
Hotkey, IfWinActive, %A_ScriptName% ahk_class #32770
;リンク先のサンプルは vk?? なので入力欄ではどのキーを押したのか判別し難いので
;A-Z,0-9,F1-F12 で表示されるようにしてみただけ。他(記号やテンキー等)が必要なら要追加
keys=A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
,0,1,2,3,4,5,6,7,8,9,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12
loop, parse, keys, `,
{
Hotkey, *~%A_loopField%, AnyKey_down
Hotkey, *~%A_loopField% up, AnyKey_up
}
return
11:名無しさん@お腹いっぱい。
09/05/23 08:16:18 0lga1Rqg0
;<続き>
AnyKey_down:
B_ThisHotkey:=RegExReplace(A_ThisHotkey, "\*~(.*)", "$1")
if GetKeyState("LWin", "P") || GetKeyState("RWin", "P")
B_ThisHotkey=`#%B_ThisHotkey%
if GetKeyState("Alt", "P")
B_ThisHotkey=`!%B_ThisHotkey%
if GetKeyState("Ctrl", "P")
B_ThisHotkey=`^%B_ThisHotkey%
if GetKeyState("Shift", "P")
B_ThisHotkey=`+%B_ThisHotkey%
return
AnyKey_up:
B_KeyDelay=%A_KeyDelay%
SetKeyDelay, -1
Send, {home}
Send, +{end}
Sendraw, %B_ThisHotkey%
SetKeyDelay, %B_KeyDelay%
return
12:名無しさん@お腹いっぱい。
09/05/23 13:32:15 gAwG1DqL0
初歩的な事ですみませんが
SplashTextを中央以外に表示させる事ってできますか?
スクリーンの中央に表示するって書いてあるので、中央以外は無理なのかな?
13:名無しさん@お腹いっぱい。
09/05/23 13:39:45 aA4IMCHP0
SplashImageを使えばいいんでないの?
14:名無しさん@お腹いっぱい。
09/05/23 14:55:33 gAwG1DqL0
>>13
イメージを表示させる事ができなかったけど、やりたい事はできました。ありがとうございます
インストールフォルダに画像「splash.JPG」を置いて
SplashImage , splash.JPG, B X100 Y100, 123
sleep, 1000
SplashImage, Off
で画像が出ませんでした。文字は出せたのでいいといえばいいのですが、なぜ画像が出ないのでしょうか?
15:名無しさん@お腹いっぱい。
09/05/23 15:01:35 EUJqRyaQ0
977です。最終的にはこんなスクリプトになりました。
#SingleInstance force
currentlyRecording := 0
send_mode = Event
holddown := 10
between := 10
; register all 255 virtual keys
SetFormat,Integer,Hex
Loop, 255
{
key := substr("0" . substr(A_Index + 0, 3), -2) ; convert to hex, remove "0x", pad to two digits
Hotkey, *~vk%key%, AnyKey_down
Hotkey, *~vk%key% up, AnyKey_up
}
SetFormat,Integer,Decimal
AnyKey_down:
if (currentlyRecording)
playback := playback . "{" . substr(A_ThisHotkey,3). " Down}"
return
AnyKey_up:
if (currentlyRecording)
playback := playback . "{" . substr(A_ThisHotkey,3). "}"
return
16:名無しさん@お腹いっぱい。
09/05/23 15:02:26 EUJqRyaQ0
続き
ToolTipOff:
SetTimer,ToolTipOff,Off
ToolTip
return
~LWin::
tapcount=1
loop,
{
KeyWait,LWin
KeyWait,LWin,t0.15 d
if ErrorLevel=0
tapcount+=1
else
break
}
;---------------------ここから希望動作を入れる
if tapcount=1
{
SetKeyDelay, between, holddown
Send,%playback%
return
}
17:名無しさん@お腹いっぱい。
09/05/23 15:04:22 aA4IMCHP0
>>14
ahkがあるフォルダが作業ディレクトリになるから。
msgbox, %A_WorkingDir%
18:名無しさん@お腹いっぱい。
09/05/23 15:04:23 EUJqRyaQ0
続き
else if tapcount=2
{
if (currentlyRecording)
{
ToolTip,Stopped recording.
currentlyRecording := 0
playback := RegExReplace(playback, "(\{[^}]+ Down\})+$", "") ; remove the "^F5" from the end
} else
{
ToolTip,Started recording.
currentlyRecording := 1
playback := ""
}
SetTimer,ToolTipOff,1000
return
}
最初のとは結構変わってるけど、やりたいことができました!ありがとう!
ただ、たまに暴発するのがたまにキズw
19:名無しさん@お腹いっぱい。
09/05/23 15:36:25 gAwG1DqL0
>>17
ahkも同じインストールしたフォルダにあります。
C:\Program Files\AutoHotkey\splash.JPGでもダメでした
20:名無しさん@お腹いっぱい。
09/05/23 16:15:40 78PWRd9v0
スクリプトをどこに置いて、どうやって実行してるか、でカレントフォルダは変わるよ
21:名無しさん@お腹いっぱい。
09/05/23 17:37:09 CXZr65JJ0
新スレ立ってたのか
22:名無しさん@お腹いっぱい。
09/05/23 17:51:29 gAwG1DqL0
>>17>>20
ごめんなさい、画像ファイルの名前ミスでした・・・
初歩の初歩のミスでレス重ねてすみませんでした
23:名無しさん@お腹いっぱい。
09/05/23 20:09:00 aA4IMCHP0
>>22
ぇぃ!
∧,,∧
(´・ω・) ∧_∧
⊂( ⊆ ̄つ☆))Д`)
\ /⊂ ⊂~ノ
と丿⊂ と_ノ
24:名無しさん@お腹いっぱい。
09/05/24 20:30:16 UimWf5FR0
SQLiteModule.ahkの1.1の関数のSQLite_GetSelect(db, sql, text, ByRef row, ByRef col)で
データベースの列の最後の値がNULLだと次のレコードを変数に格納してくれない気がする
よく検証してないから分からないけど最後の列の値になにか入れたら次の行は一応格納してくれた
25:24
09/05/24 20:40:28 UimWf5FR0
いや、やっぱり8列目までしか対応してないだけっぽいかも
SQLはじめてやるもんで朝から苦戦しっぱなし
基本情報取るときに少しやっただけだが辛い
26:名無しさん@お腹いっぱい。
09/05/24 20:54:05 2/JStSCV0
autohotkey で sqlite を使う用途がいまいち思い浮かばない
何に使うんだろう
27:名無しさん@お腹いっぱい。
09/05/24 23:30:10 ERJmg4L+0
同一キー連打でキーマップ切り替え。AutoHotkey_L専用。
コンビネーションキーよりいい感じ。
#If
*vk1Dsc07B::
KeyMap:=(A_ThisHotkey==A_PriorHotkey && A_TimeSincePriorHotkey<300)+1
KeyWait, vk1Dsc07B
KeyMap:=0
return
#If (KeyMap==1)
h::Left
j::Down
k::Up
l::Right
#If (KeyMap==2)
h::Home
j::PgDn
k::PgUp
l::End
28:名無しさん@お腹いっぱい。
09/05/25 05:07:06 +20GCM/K0
Guiの手始めにじゃんけんゲーム作ってみたところ
勝敗引分けの統計がほぼ平均的にバラけてて
ランダムといってもあまり偏ったりしないもんなんですかね
29:名無しさん@お腹いっぱい。
09/05/25 19:06:52 K51ru5IJ0
>>26
使ったことないけど配列とかリストの代わりになるのかな?
30:名無しさん@お腹いっぱい。
09/05/25 19:49:53 ayEEflNj0
なるよ。普通の言語の配列みたな気軽さを求めると痛い目に遭うと思うけど。
31:名無しさん@お腹いっぱい。
09/05/25 20:54:05 D8xwJFNr0
前スレ1000の某所の裏ってどこ?
1000 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/05/24(日) 14:29:38 ID:h0rZeR9o0
1000ゲト?
あるえ?>>999 なんでドキュメントの方のリンク載せちゃったんだろ?
Class library
URLリンク(www.autohotkey.net)
こっちっすね。
Class library (OOP) - Help Thread:
URLリンク(www.autohotkey.com)
Class library (OOP) - Wish list / Bug reports thread:
URLリンク(www.autohotkey.com)
; >>994,999,1000のネタ元は某所の裏からっす。
32:名無しさん@お腹いっぱい。
09/05/25 21:36:07 K51ru5IJ0
>>30
そうかそういう手があったのか
非表示のリストビューで無理矢理リスト作ってたわ俺w
33:名無しさん@お腹いっぱい。
09/05/25 21:50:53 3ssrsEXY0
>>24
作者だけど忙しい+結構立ってるので理解が・・・
自分用にコメントつけておけばよかった
>>26
自分用TV表が欲しかった
お気に入り機能でデータ保存には何が良いだろう→SQLが一番
と考えて
34:名無しさん@お腹いっぱい。
09/05/25 22:37:00 ayEEflNj0
ぬるぽかと
URLリンク(www.3rd-impact.net)
35:名無しさん@お腹いっぱい。
09/05/25 23:47:59 3ssrsEXY0
INTEGER、FLOAT、TEXTしか判断してないっぽい
514〜521を
if($result == 3)
{
if(!SQLite_Column_Text($query, $nowCount, $get))
{
$errMsg = SQLite_GetSelect->%$errMsg%
return False
}
}
else
{
$get = ""
}
で対処可能なはず
blob型ってのがよく分かってないのでとりあえず空文字で
36:名無しさん@お腹いっぱい。
09/05/26 00:05:37 3ssrsEXY0
>>35
これミスでした
URLリンク(lukewarm.s101.xrea.com)
これで大丈夫なはず
37:名無しさん@お腹いっぱい。
09/05/26 01:24:00 +TlrQY3d0
RButton::return
で右クリックを殺してるはずなのに、ゲーム中で右クリックすると無効になってません
どうしてでしょう?
ゲームのプロテクトとかそんなんですかね?
38:名無しさん@お腹いっぱい。
09/05/26 02:49:14 Y7ZtP0Kd0
そんなところだろうね。たぶんDirectInput
39:名無しさん@お腹いっぱい。
09/05/26 10:46:40 WTUueAPd0
>>38
DirectInputはキー切ったり、送ったりはできないのですか?
40:名無しさん@お腹いっぱい。
09/05/26 11:33:39 24/J68kf0
公式のFAQにあるけど、DirectInputでも一部は動くこともある
・SendPlayを使う
・SetKeyDelayを増やしてみる
SetKeyDelay, 0, 50
SetKeyDelay, 0, 50, Play
・ControlSendを使う
GameguardやNPro使ってるんだったら、ドライバレスでマクロができるゲーマー用のマウス買った方が楽かと
41:名無しさん@お腹いっぱい。
09/05/26 17:13:05 QN5A7Hfw0
If A > %A_Index%
Count ++
Hoge%Count% = hogehoge
みたいに配列的に変数を使ってその数が不定の場合、これらのメモリを一括で開放する方法はなにかありますでしょうか。
Loop,%Count%
{
Hoge%A_Index%=
}
Loopで回せばいいのはわかりますが、Countの値を保持してなければならずあまりスマートな感じがしないので、「配列のメモリを解放」みたいなコマンドがあればと思って。
42:24
09/05/26 18:39:35 qcaMCxpC0
>>36
うお、よくわかんないけど直りました
ありがとうございます
>>26
ちょっとした記憶用ソフト作りたくて頑張ってました
すでにCSVで問題、答え、苦手度、最後に解いた日、間違ったフラグ(次正解すれば解除)とか記録してて
そのCSVを読み込んで出題するAHKはほとんど完成系で作ってあるんだけど
いろんな条件で抽出するときやっぱりCSVよりSQLのWHERE文があればと思ったのがきっかけ
43:名無しさん@お腹いっぱい。
09/05/26 18:48:49 24/J68kf0
>>41
内部的には配列ではなくそれぞれ独立した変数として扱われてるのだから一括解放は無理なんじゃないかな
どうしても一括解放にこだわるなら、以下のようなライブラリを使ってみるとか
URLリンク(www.autohotkey.com)
URLリンク(www.autohotkey.com)
URLリンク(www.autohotkey.com)
それから余計なお世話かもしれないけど、hoge=ではメモリが解放されない場合がある
この辺はVarSetCapacity()のヘルプに書いてあるけど、一度64にセットしてから0で解放する必要がある
44:名無しさん@お腹いっぱい。
09/05/27 06:01:02 49MLE6WY0
前スレでVista+Word2007でダイアモンドカーソルを実現しようと思った者です。
返信すごく遅くなって申し訳ありません。
今日試してみたらなぜか普通に動くようになってました。
1日潰してあんなに動かそうとしても全然動かなかったのに…。
前スレでレス下さった皆様ありがとうございました。
お騒がせしました。
45:名無しさん@お腹いっぱい。
09/05/27 22:13:25 ghabN5mP0
先輩方 初めてのAutoHokeyで書いてみたのですが
おかしなところを突っ込んで頂けると嬉しいです。
#Persistent
SetTimer, Note, 3000
Note:
Process, Exist, notepad.exe
NewPID = %ErrorLevel%
if NewPID = 0
{
Run, notepad.exe, c:\, /UseErrorLevel
}
3秒ごとにメモ帳が動いてるか確認
動いてなければ メモ帳を起動する
notepad.exeなんか存在しませんのときにエラーウインドウが立ち上がらないように処理
作業ディレクトリがc:\は良く意味がわかっていないorz
メモ帳が動いてた時の処理はループするだけだから問題ないのかな(´・ω・`)
46:名無しさん@お腹いっぱい。
09/05/27 23:03:39 2RG+Zvrk0
>>45
SetTimerの後と、最後の行にreturn入れてる?
47:名無しさん@お腹いっぱい。
09/05/27 23:19:55 HF3buD8W0
>>45
うごくから、いいんじゃないのかな。
>>46のツッコミはもっともだが、起動時に1回処理を噛ますと言う意味では処理としては良いと思う。
(SetTimerの後にreturnをわざと置いていないのだとしたら)
第2引数は作業フォルダ。ショートカットを右クリックし見たてプロパティ画面のと同じ。
メモ帳なら空でもいい。
プロセスが無くなるまで待つ方法もある。
Process, WaitClose, %pid%
48:名無しさん@お腹いっぱい。
09/05/28 00:06:27 wZfk3OyC0
>>46
>>47
ありがとうございます。
settimerの後はreturn入れると挙動がおかしかったので入れてません。
最後の行に入れてないのは入れたら終わってしまうと思っていれてないです^^;
作業フォルダのご説明大変わかりやすいです^^
この場合は特になくても大丈夫そうですね。
作業フォルダがいつか消滅したときのことを考えてエラーを吐かれると嫌だったので
絶対存在し続けるc:\にしてみました。
returnを入れてもう一度ためしてみます。
49:名無しさん@お腹いっぱい。
09/05/28 00:10:25 wZfk3OyC0
#Persistent
SetTimer, Note, 3000
return
Note:
Process, Exist, notepad.exe
NewPID = %ErrorLevel%
if NewPID = 0
{
Run, notepad.exe, c:\, /UseErrorLevel
}
return
言われた通りにretrun二つ突っ込んで見ましたがちゃんと動きますね
return入れてないと処理がきちんと修了しないからだんだん重くなっていったりしますかね?
違いが全くわかりません^^;
50:名無しさん@お腹いっぱい。
09/05/28 00:14:22 wZfk3OyC0
Return
GosubやHotkeyのサブルーチン処理から戻る
Remarks
GoSubでジャンプしていないときにReturnを実行すると、
Exitを実行したときと同様にスレッドを終了する。
サブルーチン処理をしていない場合はなくてもよいのかなと思い込んでみる。。
51:名無しさん@お腹いっぱい。
09/05/28 00:18:11 k3jZrIoJ0
これだけでいい気がする
Loop
RunWait, NotePad.exe
52:名無しさん@お腹いっぱい。
09/05/28 01:23:49 g2Gpk75K0
SetTimerって待機スレッド(プロセス?)がどんどん溜まって
重くなったりしないかと不安であまり使ってない…。実際のところどうなんでしょ?
53:名無しさん@お腹いっぱい。
09/05/28 05:19:31 UHCBZ4+L0
Autohotkeyの中で疑似スレッド的に動いてるだけで、OSから見たら常に単一プロセス単一スレッドだから
CPUやメモリリソースへの負荷はあまり考える必要が無いと思うけど。
疑似スレッドの制御は本物のプロセス/スレッドのように複雑じゃないので、
実質上の負荷は、実際にタイマースレッドで動作するAHKコードの量で判断してもかまわないと思う。
それにスクリプト実行中はSetBatchLinesで指定した間隔で10msのスリープも入って、
OS全体の負荷を高めないような作りにもなってるし。
54:名無しさん@お腹いっぱい。
09/05/28 16:22:04 ar6yU5aO0
AutoHotKey、さっきはじめて知りました。
スクリプトとか全然わかりませんし、わかるのはBASICぐらいですw
でもなんとかマニュアルを参考にして10分ぐらいいろいろやってるのですが。。。
たとえば、Winキー+y で、iTunesがアクティブなときだけ最小化したいんですが、
スクリプトは、これでOKでしょうか?
一応動いているのですが、なにか問題があるでしょうか?
>>>>>>>>>>>>( iTunesがアクティブなら最小化 )<<<<<<<<<<<<<
#y::
IfWinActive iTunes
WinMinimize,iTunes
IfWinActive
return
レベルが低い質問でごめんなさい...orz
そもそも、なにがやりたくてAutoHotKeyを知ったのかといいますと、
任意のホットキーを押したとき、
(1)任意のアプリが起動していなければ起動する。
(2)任意のアプリが起動していて、かつ、最小化状態またはバックグラウンド状態なら、アクティブに(最前面に持ってくる)。
(3)任意のアプリが起動していて、かつ、最前面(アクティブ)ならば、最小化する。
こういうのをやりたかったんです。
55:名無しさん@お腹いっぱい。
09/05/28 16:24:36 ar6yU5aO0
そもそもなぜそんなことをやりたいのかといいますと、、、
最近、プログラマブルキーボードを買ったのですが、
1つのキーだけで、任意のアプリのアクティブ化と最小化をトグルしたい。
あるキーを押したら指定したアプリのウィンドウが最前面に来て、
そのアプリが最前面にあるときに、そのキーをもう一度押したら
そのアプリのウィンドウが最小化する、みたいな感じです。
でもそんな簡単なことすらプログラマブルキーボード付属のユーティリティーではできず。。。
で、いろいろ考えて、その任意のアプリにWindows標準のホットキーを割り当て、
プログラマブルキーボード側の任意のキーにそのホットキーをアサインすれば、
上記の(1)と(2)だけは実現できるんですが、(3)がどうしても実現できないんですよね。
んで、国内外のフリーウェアをかなりいろいろ試したんですが、(1)(2)と同時に(3)ができるものが
数時間探しても見つけられず、また、こういうのって、
検索ワードがホットキーとか最小化とか一般すぎる言葉になっちゃって
自分の求めているソフトを検索エンジンで探しにくいんですよね。。。。
てなわけで、長くなってしまいましたが、AutoHotKeyにこれからハマってみる予定です
GUIまで作れちゃったりするみたいで、恐ろしいほど高性能でびっくりですよ、ほんと。
56:名無しさん@お腹いっぱい。
09/05/28 16:25:18 ar6yU5aO0
コメントアウトは
>>>>>>>>>>>>
で大丈夫でしょうか?
57:名無しさん@お腹いっぱい。
09/05/28 16:32:10 Rj+x9ILK0
まだ初心者の俺が、試しもせずにしゃしゃり出てみる
#y::
IfWinActive, iTunes
{
WinMinimize,iTunes
}else{
Process,Exist,notepad.exe
If ErrorLevel<>0
WinActivate,ahk_pid %ErrorLevel%
else
Run,notepad.exe
}
return
58:名無しさん@お腹いっぱい。
09/05/28 18:06:51 ar6yU5aO0
>>57
早速、ありがとうございます!
notepad.exeになってしまってますが、
iTunes.exeに変えると動きますね!
59:名無しさん@お腹いっぱい。
09/05/28 18:08:03 ar6yU5aO0
>>55,56を書き込んだあとに、自分で考えたものは以下でした。
以下でも一応ちゃんと動くみたいです。
でも、>>57さんのように、ちゃんとahk_pid %ErrorLevel%みたいに
指定したほうが確実ですよね?
#y::
IfWinActive,iTunes
{
WinMinimize,iTunes
}
else
{
WinActivate,iTunes
Process,Exist,iTunes.exe
If ErrorLevel=0
{
Run,iTunes.exe
}
}
;;;IfWinNotExist iTunes
;;; Run,iTunes.exe
return
ただ、iTunesって名前が付いたフォルダとかアプリが開いていると
そっちのほうが最小化しちゃったりしますけど、それも本当は、キッチリPIDを調べてやれば、誤動作もなくなるんですよね?
数時間いじったらかなりわかってきました!ありがとうございます!!
本当に面白くて可能性を感じるソフトですよね!
60:名無しさん@お腹いっぱい。
09/05/28 18:08:51 ar6yU5aO0
ありゃりゃ、
;;;IfWinNotExist iTunes
;;; Run,iTunes.exe
の部分はコメントアウトでした..orz
61:名無しさん@お腹いっぱい。
09/05/28 19:31:15 Rj+x9ILK0
ちなみに>>57のやつはAutoHotkeyを流行らせるページに載ってたヤツのコピペです。
暇なときにでものんびり読んでみるといいよ。
62:名無しさん@お腹いっぱい。
09/05/28 21:32:48 jz4l290M0
>>36
これはいいね。使わせてもらうよ
ところでライセンスは何?
63:名無しさん@お腹いっぱい。
09/05/28 22:02:37 k3jZrIoJ0
マウス周囲のを指定した大きさの正方形でデスクトップまで穴をあける。再度呼び出すと元に戻す。
~RCtrl::ClipWindow()
ClipWindow(size=200, ignoreClassPattern="Shell_TrayWnd|BaseBar") {
static clipped
If (!clipped) {
DetectHiddenWindows, Off
CoordMode, Mouse, Screen
MouseGetPos, mx, my
WinGet, list, List
Loop, % (list-1) {
IfWinNotExist, % "ahk_id " list%A_Index%
continue
WinGetClass, class
If ignoreClassPattern && RegExMatch(class, ignoreClassPattern)
continue
WinGetPos, x, y, w, h
mx1:=mx-x-size//2, my1:=my-y-size//2, mx2:=mx-x+size//2, my2:=my-y+size//2
If (mx1>w || my1>h || mx2<0 || my2<0)
continue
WinSet, Region, 0-0 %w%-0 %w%-%h% 0-%h% %mx1%-%my1% %mx2%-%my1% %mx2%-%my2% %mx1%-%my2% %mx1%-%my1% 0-%h%
clipped := list%A_Index% . (clipped ? "|" : "") . clipped
}
} else {
DetectHiddenWindows, On
Loop, PARSE, clipped, |
WinSet, Region,, ahk_id %A_LoopField%
clipped=
}
}
64:名無しさん@お腹いっぱい。
09/05/28 22:33:50 qyNknqLm0
>>63
これいいね
ちょっと感動した
使わせてもらいます。
65:名無しさん@お腹いっぱい。
09/05/29 00:36:46 DA5drrjA0
Vistaじゃ動かないな
66:名無しさん@お腹いっぱい。
09/05/29 00:37:02 u1yo0xzx0
>>63
面白いな
穴あいてるときにSetTimerでマウス追従するとさらに便利
堪能するためにわざわざ壁紙張ってしまったw
67:名無しさん@お腹いっぱい。
09/05/29 00:40:11 0CBSOWcu0
もちろんエロい壁紙だよな
68:名無しさん@お腹いっぱい。
09/05/29 01:12:50 ZNykQa940
s = %A_thishotkey%
s1 = %s%%
msgbox,%s1%
return
s の変数の値の末尾に % を付け加えて
それを s1 に保存したいのですが
(A_thishotkey が a だとすれば "a%")
こうかくとエラーになります。
どうすればこれを実現できますか。
69:名無しさん@お腹いっぱい。
09/05/29 01:19:50 keMVWhB40
敷居が高いのもあるからどんどん流行ってくれ
70:名無しさん@お腹いっぱい。
09/05/29 01:25:55 5w+b34I70
>>68
s1 = %s%`%
最後の % をエスケープする(デフォならShift + @)
71:名無しさん@お腹いっぱい。
09/05/29 01:27:23 y2qE0/Pv0
>>68
エスケープ
s1 = %s%`%
MsgBox, %s1%
式を使う方法もあり
s2 := s1 . "%"
MsgBox, % s2
72:名無しさん@お腹いっぱい。
09/05/29 01:29:55 ZNykQa940
>>70-71
ありがとうございます!
73:名無しさん@お腹いっぱい。
09/05/29 08:36:17 HnnwY0C40
少しお聞きします。
無変換とシフトと任意のキーというホットキーの定義の仕方はありませんでしょうか?
vk1Dsc07B & +g::
SplashTextOn,,, Test...
Sleep, 600
SplashTextOff
return
などとやっても、無変換+シフト+Gを拾ってくれないのです・・・
+vk1Dsc07B & gだと読み込み時にエラーがでるし…。
74:名無しさん@お腹いっぱい。
09/05/29 08:42:33 vciG3EmH0
>>73
コンビネーションキー
「&」を使うことで、2つの任意のキー(ジョイスティック以外)の組み合わせをホットキーに指定することが可能。
3つ以上のキーを指定したり、+^!#で修飾キーを追加したりは出来ない。
If GetKeyState("Shift","P")
75:名無しさん@お腹いっぱい。
09/05/29 08:54:53 vciG3EmH0
最初に
vk1Dsc07B & g::
If !GetKeyState("Shift","P")
return
を追加すれば大丈夫か
76:1/2
09/05/29 13:22:46 u1yo0xzx0
>>63 のマウス追従Ver 作ってみた。 タイマ未使用、Shiftで固定、ESCで終了
#1:: ClipWindow_MouseFollows()
ClipWindow_MouseFollows(size=200, Pause="Shift",endKey="ESC", ignoreClassPattern="Shell_TrayWnd|BaseBar") {
static list
IfNotEqual,list,, return ;semaphore
DetectHiddenWindows, Off
CoordMode, Mouse, Screen
WinGet, list, List
Loop, %list%
l := list%A_Index% . (l ? "|" : "|0x0") . l
While !GetKeyState(endKey) && Instr(l,WinActive("A")) {
if GetKeyState(pause) {
KeyWait,%pause%
pmode := (pmode!=1 ? 1 : 0)
}
IfEqual,pmode,1, continue
MouseGetPos, mx, my
if ((mxs-10 < mx) && (mx < mxs+10) && (mys-10 < my) && (my < mys+10))
continue
mxs:=mx, mys=my
77:2/2
09/05/29 13:24:56 u1yo0xzx0
Loop, % (list-1) {
IfWinNotExist, % "ahk_id " list%A_Index%
continue
WinGetClass, class
If ignoreClassPattern && RegExMatch(class, ignoreClassPattern)
continue
WinGetPos, x, y, w, h
mx1:=mx-x-size//2, my1:=my-y-size//2, mx2:=mx-x+size//2, my2:=my-y+size//2
If (mx1>w || my1>h || mx2<0 || my2<0)
continue
WinSet, Region, 0-0 %w%-0 %w%-%h% 0-%h% %mx1%-%my1% %mx2%-%my1% %mx2%-%my2% %mx1%-%my2% %mx1%-%my1% 0-%h%
if !Instr(clipped,list%A_Index%)
clipped := list%A_Index% . (clipped ? "|" : "") . clipped
}
Sleep,50
}
DetectHiddenWindows, On
Loop, PARSE, clipped, |
WinSet, Region,, ahk_id %A_LoopField%
list=
}
>>67
プリインスコのメーカーロゴ、エロいの持ってねぇ(´・ω・`)
78:名無しさん@お腹いっぱい。
09/05/29 13:36:25 tLIgPVbp0
最小化したときにタスクトレイにアイコン化するアプリを
タスクトレイに入った状態からアクティブ化するのは無理でしょうか?
その手のアプリ、みんなWinActiveが効きません...orz
79:名無しさん@お腹いっぱい。
09/05/29 15:06:40 +GBy9qZg0
DetectHiddenWindows, On
80:名無しさん@お腹いっぱい。
09/05/29 15:41:21 tLIgPVbp0
>>79
そんなコマンドがあったとは!
即レス本当にありがとうございます!
ほんと、ahkってなんでもできるんですねー
81:名無しさん@お腹いっぱい。
09/05/29 22:49:46 y2qE0/Pv0
昨晩のやつの改造版。アクティブウィンドウ以外に黒いシェードを掛ける。2K/XP用。ビデオ鑑賞にでもどぞ
Gui, +LastFound -Border +ToolWindow +AlwaysOnTop -Caption +0x02000000 -0x0CC00000 +E0x00080020
Gui, Color, 000000 ; ここで色をかえてもおk
WinSet, Transparent, 200 ; 透明度(1-255)
Gui, Show, NA x0 y0 w%A_ScreenWidth% h%A_ScreenHeight%
SetTimer, Timer1, On
Timer1:
SetWinDelay,-1
WinGetPos,x,y,w,h,A
x1:=x, y1:=y, x2:=x1+w, y2:=y1+h
If (lx1==x1 && ly1==y1 && lx2==x2 && ly2==y2)
return
Gui, +LastFound
Gui, +AlwaysOnTop
WinGetPos,,,ww,hh
WinSet, Region, 0-0 %ww%-0 %ww%-%hh% 0-%hh% %x1%-%y1% %x2%-%y1% %x2%-%y2% %x1%-%y2% %x1%-%y1% 0-%hh%
lx1:=x1, ly1:=y1, lx2:=x2, ly2:=y2
Return
82:名無しさん@お腹いっぱい。
09/05/29 23:08:59 IKD+qEU60
おもしろいな
解除はどうやるんすか?
83:名無しさん@お腹いっぱい。
09/05/29 23:13:54 y2qE0/Pv0
タスクトレイw
84:名無しさん@お腹いっぱい。
09/05/30 06:17:34 84IZ3aep0
>>74-75
2つ以上ダメなんですね。以外に不便…。というかホットキー扱いじゃないのかな
ありがとうさんです。試してみまする
85:名無しさん@お腹いっぱい。
09/05/30 13:39:34 pp0cJZID0
>>36のSQLite_GetSelect関数ってフィールドの数が10個以上あると変数重複するよね?
例えばLV111の場合11行目の1列目、1行目の11列目で重複みたいに
俺が頭悪いだけ?
86:名無しさん@お腹いっぱい。
09/05/30 14:25:44 yxno/H630
それが仕様だと思うよ。
> %接頭辞%%行番号%%列番号% := 値
って風に代入してるし
> %接頭辞%_%行番号%_%列番号%
とかにすれば平気なんだろうけど
87:名無しさん@お腹いっぱい。
09/05/30 14:40:43 pp0cJZID0
なるほど。
ライブラリいじらないとだめか。
88:名無しさん@お腹いっぱい。
09/05/31 01:53:08 jQyIS5jG0
>>36関連でわからないことがあったので便乗して質問します
SELECT * FROM test WHERE 〜
というところで、 ' が含まれる項目をうまく探し出してくれません
autohotkey 特有のエスケープ処理か何かのせいか?と思ったのですが
いまいちよくわかりません
' が含まれる項目を処理するときに同じような症状に出会った人はいますか?
89:名無しさん@お腹いっぱい。
09/05/31 20:18:32 g4+Xfjng0
引数の基準フォルダと対象ファイルパスを元に相対パスを返す関数ってありますか?
90:名無しさん@お腹いっぱい。
09/05/31 21:26:54 3pSi+qBb0
Path_RelativePathTo(From,atrFrom,To,atrTo)
; 相対パスを作成
; From : ベースパス
; To : 相対にするパス
; atr : ファイル属性を指定
; ディレクトリ 0x10 (FILE_ATTRIBUTE_DIRECTORY)
; ファイル 0x20 (FILE_ATTRIBUTE_ARCHIVE)
{
VarSetCapacity(t,260,0)
DllCall("SHLWAPI.DLL\PathRelativePathToA", Str,t , str,From, Uint,atrFrom, str,To, Uint,atrTo)
return t
}
Path_CommonPrefix(p1, p2)
; 2つのパス名の先頭から共通するディレクトリ名を取得する
{
VarSetCapacity(t,260,0)
DllCall("SHLWAPI.DLL\PathCommonPrefixA", Str,p1, Str,p2, str,t)
Return t
}
91:名無しさん@お腹いっぱい。
09/05/31 21:59:11 g4+Xfjng0
>>90
ありがとうございます
無事できました
92:名無しさん@お腹いっぱい。
09/06/01 01:21:39 nMoGzHYT0
AutoHotkey v1.0.48.03.L30
93:名無しさん@お腹いっぱい。
09/06/01 15:00:23 KxOltqgo0
変数%aaa%の中に変数%bbb%を組み込みたいです。
%aa%bbb%%では駄目でした。
どうすれば出来ますか?
94:名無しさん@お腹いっぱい。
09/06/01 15:57:15 nMoGzHYT0
「%aaa%」と書いた場合、
・コマンド内は、変数に格納された値
・式や関数の中では、%〜%を展開した文字列が名前となる変数
となるけど、
「組み込みたい」の意味が分からないから具体例で。
95:名無しさん@お腹いっぱい。
09/06/01 16:27:57 5kiaGP5n0
よくわからんが多分 Transform,Deref, String あたりではないかとエスパーしてみる
96:名無しさん@お腹いっぱい。
09/06/01 16:33:11 9Rwj7uYk0
流行るページを参考にしたのですが、わからない箇所があるので教えてください
Ctrl-x,Ctrl-sで保存(Ctrl-S)の実行、Ctrl-sで検索(Ctrl-f)の実行をしたいと思っています
ところが下記のスクリプトでCtrl-x,Ctrl-sを実行すると、Ctrl-fが送られてしまいます
このように置き換え対象のキーも別のキーに置き換えてしまっている場合、どのように対処すれば意図した動きになるのでしょうか?
^x::
Transform,CtrlS,Chr,19
Input,InputChar,C I M L1 T1,{ESC}
If InputChar=%CtrlS%
Send,^s
Return
^s::
Send,^f
Return
97:名無しさん@お腹いっぱい。
09/06/01 17:02:21 nMoGzHYT0
いろいろやり方はあるけど、^s:: のところでA_PriorHotkeyで分岐すりゃいいんじゃないの
^x::Return
$^s::
If A_PriorHotkey = ^x
Send, ^s
Else
Send, ^F
Return
98:名無しさん@お腹いっぱい。
09/06/01 17:36:14 9Rwj7uYk0
>>97
試してみたところ意図した動きになりました。感謝です!
^x::Returnでキーの動きを無効化しても組み込み変数に値は入るんですね
勉強になりました。ありがとうございました><
2ストロークで設定しているキーバインドが多く、書き換えが面倒なので、
勉強もかねて関数をつくってやってみたいと思います
99:名無しさん@お腹いっぱい。
09/06/02 18:58:42 xwgWw2A40
対象窓で、文字入力中or変換中なら1を、変換候補窓が出ているなら2を、それ以外なら 0を返す。
ATOK2007とMS-IME8.1で確認。クラス名がバージョンの数値違いだけなら別verでも通用するかも。
IME_IsConverting(winTitle="A") {
hwnd:=WinExist(winTitle)
WinGet, pid, PID, ahk_id %hwnd%
tmm:=A_TitleMatchMode
SetTitleMatchMode, RegEx
ret := WinExist("ahk_class ATOK\d+Cand|imejpstCandList\d+ ahk_pid " pid) ? 2
: WinExist("ahk_class ATOK\d+CompStr|imejpstcnv\d+ ahk_pid " pid) ? 1
: 0
SetTitleMatchMode, %tmm%
return ret
}
100:名無しさん@お腹いっぱい。
09/06/02 19:44:30 rJZ7jJ5w0
>>99
昔から何度も質問に出てましたよね。IMEで変換中かどうかを知る方法。
ついに実現できる人がいたとは。
さっそく試してみます。
101:名無しさん@お腹いっぱい。
09/06/02 19:56:13 osRS2DeA0
>>99
おおーありがとう
これがあったら無変換にIMEOFF、変換にONにする関数割り当てられる
102:名無しさん@お腹いっぱい。
09/06/02 20:18:55 ftcLo5Gk0
けっこう既出な気がするけど
他のIMEでもウィンドウクラス一覧表示するスクリプト書けば怪しいクラス名が分かる
注意する点はWinActiveで判断するんじゃなくExistで判断するところ
103:名無しさん@お腹いっぱい。
09/06/02 20:23:03 xwgWw2A40
BOOLを返さないのに Is〜 とは変な名前だったorz。好きに替えてくらはい。
自分が使ってるIMEしか調査してないから、
SKK、VJE、WXG、松茸、その他IMEへの対応は出来ないので自分で追加してくれ。
あああ ← 入力窓の上で MouseGetPos,,,hwnd して hwndからクラス名をとって正規表現に追加
 ̄ ̄ ̄
愛
|愛 | ← 候補窓の上で MouseGetPos,,,hwnd して hwndからクラス名をとって正規表現に追加
|亜依 |
|あい .|
|藍 |
| : .|
 ̄ ̄ ̄
104:名無しさん@お腹いっぱい。
09/06/02 20:30:06 xwgWw2A40
>>102
おっしゃるとおりで
#IfWinNotExist, ahk_class 入力窓|変換窓
vk1Csc079::IME_Set(!IME_Get())
とかのほうが楽ではある
105:名無しさん@お腹いっぱい。
09/06/02 21:37:03 Kr4mD/Ke0
MS-IME2000までなら
WinExist("ahk_class msime")
でいけそう
106:名無しさん@お腹いっぱい。
09/06/02 22:31:33 P6oxe9UG0
autohotkey以外の任意のウィンドウをタスクバーから消す方法ってありませんか
toolwindow作ってSetParentすればいいのかなと思ったけど同じプロセスじゃないとできないみたいで
107:名無しさん@お腹いっぱい。
09/06/03 09:37:26 fHhPIlcJ0
ここのTrayIcon.ahkの中にあるTaskButton.ahk
URLリンク(www.autohotkey.com)
108:名無しさん@お腹いっぱい。
09/06/03 09:43:09 cMFaAOnD0
実行中のスクリプトのファイル名を取得する方法を教えてください。
実行中と同じスクリプト名のiniファイル読み込みにしようしたいです。
109:名無しさん@お腹いっぱい。
09/06/03 09:58:06 fHhPIlcJ0
組み込み変数 A_Script○○○
110:名無しさん@お腹いっぱい。
09/06/03 11:03:28 cMFaAOnD0
>>109
ありがとう。
111:名無しさん@お腹いっぱい。
09/06/04 00:17:18 QQ0YUUDy0
任意のアプリケーションのメニューバーを非表示にする方法ってあります?
AU3_Spy.exe で調べてもメニューバーの Class_NN なんかが判らなくて…。
112:名無しさん@お腹いっぱい。
09/06/04 01:01:23 duXuCFzc0
クラスが取れないのは昔ながらのメニュー(メモ帳、電卓など、Ahkもそう)、非クライアント領域と言われているところ。
^F12::
hwnd := WinExist("A")
hMenu := DllCall("GetMenu", "UInt", hwnd, "UInt")
If (hMenu) {
DllCall("SetMenu", "UInt", hwnd, "UInt", 0)
Sleep, 2000
DllCall("SetMenu", "UInt", hwnd, "Uint", hMenu)
} else {
MsgBox, Menu not found
}
return
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
113:名無しさん@お腹いっぱい。
09/06/04 01:16:22 6AUpOLN+0
処理が終わるまでの間を進歩状況を表示させたいんだけど
Gui,Add,Progress見つけたけどできそうなのか使い方がさっぱりわからなかった
114:名無しさん@お腹いっぱい。
09/06/04 01:49:52 QQ0YUUDy0
>>112
おおお、ありがとうございます!助かりました
115:名無しさん@お腹いっぱい。
09/06/04 08:17:20 SXDlYEUH0
>>113
URLリンク(www.autohotkey.com)
Progress, R0-200 W400 H70 Hide
Progress, Show
Loop, 200
Progress, %A_Index%, Number:%A_Index%, Counting..., Title
Progress, Off
Gui, Add, Progress, W300 h10 cBlue vMyProgress
Gui, Add, Button, Default, Start
Gui, Show
return
ButtonStart:
Loop, 300
GuiControl,, MyProgress, %A_Index%
return
116:名無しさん@お腹いっぱい。
09/06/04 09:19:45 dyra48CT0
マウスの下のWindowTitleを取得する方法を教えてください。
117:名無しさん@お腹いっぱい。
09/06/04 11:24:00 39eHpjNw0
>>116
URLリンク(lukewarm.s101.xrea.com)
#Persistent
#SingleInstance, force
SetTimer, MouseShitaWindowTitle, 50
Return
MouseShitaWindowTitle:
MouseGetPos, , , HWND
WinGetTitle, Title, ahk_id %HWND%
Tooltip, %Title%
Return
118:名無しさん@お腹いっぱい。
09/06/04 15:38:47 dyra48CT0
>>117
助かりました。ありがとうございました。
119:名無しさん@お腹いっぱい。
09/06/04 16:13:54 6AUpOLN+0
>>115
処理完了までの時間がどのくらいなのか取得したいんで
Loop,200だか300なんて固定じゃしょうがない
120:名無しさん@お腹いっぱい。
09/06/04 16:31:03 39eHpjNw0
>>119
固定も何も>>115のサンプルを応用すればいいよってことじゃないのかい。
121:名無しさん@お腹いっぱい。
09/06/04 16:48:28 SXDlYEUH0
>>119
すまなない
何が分からないか分からない
完了時間の予測なら、全体量と1回の処理時間から自分で毎回計算するしかないと思う
122:名無しさん@お腹いっぱい。
09/06/04 17:06:34 6AUpOLN+0
なるほど
そういうことならしょうがないですね
ありがとう
123:名無しさん@お腹いっぱい。
09/06/04 17:40:27 TWv1vctD0
具体的な秒数を事前に出すのはAHKに限らずむづかしいと思うけど。
ダミー進捗が嫌なら、メクラループやめて具体的気に処理が終わるたびに更新すればいいだけっしょ
やらなきゃいけない処理の数(分母)と、そのうち何個目が終わった(分子)か、で
進捗グラフ更新してくのがProgressなんだから
124:名無しさん@お腹いっぱい。
09/06/04 19:36:13 nKWMwvxe0
>>99
Firefox3.0.10上だと文字入力中をうまく検出できないんだけどどうしてだろう
0が返ってくる
125:名無しさん@お腹いっぱい。
09/06/04 21:14:42 6pR9OPq00
>>99-101
窓使いの憂鬱でIMEのON/OFFでキー割り当て変えられることに気づいた・・・
もしかしたらAPI一発で取得できたりして・・・
窓使いのソース見たらよいかも
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4850日前に更新/154 KB
担当:undef