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


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

AutoHotkey スレッド part7



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

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

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

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

91 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 02:38:56 ID:FprEOzFe0]
>>90
演算子って変数に代入できるのか?

92 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 02:50:21 ID:7aT1UIeA0]
> ichi tasu san
は、
文字列結合してを出力しろっていってるのと同じ、
つまり↓
> ichi . tasu . san
または
> %ichi%%tasu%%san%

javascript の eval とか python の exec に相当するのってahkには無い・・・はず

93 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 03:31:06 ID:kckjR1IW0]
>>92
Σ(゚д゚|||)ガーンよく分かりました

>>91
msgbox, % ichi + san
なら4になるのに。

dynamic function calling (1.0.47.06)でどうにかならない?

94 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 12:53:57 ID:zBxweuAX0]
>>89
RButton::
Loop
{
If(!GetKeyState("RButton","P"))
Break
MouseClick, RIGHT
Sleep, 100
}
Return
 
>>93
Eval関数
ttp://www.autohotkey.com/forum/viewtopic.php?p=107547#107547


95 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 13:05:17 ID:1FFYSN/50]
>>94
ありがとう!!

96 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 14:48:14 ID:XSOAc2jv0]
>>94
eval良いね

97 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 19:56:10 ID:xL6BrQlZ0]
とあるゲームで、キーにマウス移動+クリックという作業を割り当てたのですが
sendplayをやろうとすると反応しなくなります。ちなみにOSはvistaで下のようなやつです

send play
a::
BlockInput, mousemove
send,{a Down}
send,{a up}
sleep,100
mousemove,0,0
click
sleep,100
mousemove,0,0
click
BlockInput, mousemoveoff

98 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 20:52:43 ID:mcfS5KF00]
一行目は SendMode Play じゃないの?

それから「とあるゲーム」じゃ、色んなSendModeでやってダメなら、あきらめろとしか言えないと思うが

99 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 23:19:11 ID:kckjR1IW0]
>>94
ありがとう(*゚∀゚)=3



100 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/16(金) 15:59:07 ID:9TC51kow0]
ある座標値にあるウィンドウのウィンドウハンドルを取得するにはどう書けばいいんでしょうか?


101 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/16(金) 17:07:00 ID:ys4XQ/JO0]
WinGetのcmdにListを指定して全てのハンドルを取得して、
ループでWinGetPosして判定すればいいんじゃね

102 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/16(金) 17:55:22 ID:8WDRn3Rn0]
WindowFromPointをdllcall

103 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 15:23:11 ID:15HQKhST0]
Windowsキーが長押しかどうか判定するために
www.autohotkey.com/forum/topic16951.html
のMorseを使って下のようにしても、"1"が返ってくることがありません。
LWin以外のaとかなら、ちゃんと長押しで"1"が返ってきます。
Windowsキーが長押しされたかどうか判定するにはどうすればいいでしょうか?

LWin::
p := Morse()
MsgBox, %p%
Return

104 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 16:36:46 ID:AAdcRplY0]
LWin::MsgBox, % "long = " . LongPress(A_ThisHotkey, 500)

LongPress(key, limit) {
Loop
if !GetKeyState(key, "P")
break
return A_TimeSinceThisHotkey > limit
}


105 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 17:35:30 ID:CwKiW6jb0]
>>103
(Pert6 >>782より転載)
これを改造すればいいよ。

782 :名無しさん@お腹いっぱい。:2008/11/27(木) 01:43:58 ID:pOwnMABe
よく分からんけど、 Ctrl とかが押しっぱなしになる。解決はよく分からんが対処法としてアラートだすようにした。
if書きたくないから、三項演算子だいすきif書きたくないから、三項演算子だいすき

#SingleInstance
#Persistent
keys = Ctrl|Shift|Alt|LWin|RWin
alertDur = 3000 ;(ms)
SetTimer, Alerter,200
return
Alerter:
alert =
Loop, PARSE, keys, |
{
%A_LoopField% := !GetKeyState(A_LoopField) ? 0 : !%A_LoopField% ? A_TickCount : %A_LoopField%
alert .= (%A_LoopField% && (A_TickCount - %A_LoopField%) > alertDur) ? "[" A_LoopField ": " (A_TickCount - %A_LoopField%) "ms]" : ""
}
Tooltip, %alert%
return

106 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 23:50:13 ID:XmkZ8Jyg0]
>>104>>105
遅くなりましたがありがとうございます。

>>104 を試してみましたが、>>103 と同じように
LWinでは長押ししても "0" しか返ってきませんでした。
LWin じゃなくて a ならばちゃんと長押しで "1" が返るんですが、
私の環境だけでしょうか?それとも LWin は特別なんでしょうか?

>>105 はよくわからないところもあって改造はできてませんが、
GetKeyState で判定して時間を計るという点では一緒なのかなと・・・

107 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 23:58:42 ID:svY9DCGD0]
>>101-102

お礼が送れて本当にすみませんでした。レスありがとうございました 
DllCall("WindowFromPoint", Int, X, Int, Y, UInt)

で、コントロールのウィンドウハンドルを取得できる事まで分かったのですが
ここからウィンドウを取得するにはどうしたらいいのでしょうか・・・?

108 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 00:02:32 ID:U3VSUvzG0]
正解出してやってんのに馬鹿じゃねーの

109 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 17:56:30 ID:Qrvr5YD20]
日付の計算で2009/01/01の三日前を自動で出したいときどう書けばいいのかな
両方決まった形式じゃないと計算できなくて不便
20090101-3dayとかできたらいいのに



110 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 20:21:14 ID:TbOnLrY30]
NowDate = 090101
NowDate -= 3, Days
じゃ駄目?

111 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 20:26:47 ID:TbOnLrY30]
と書いたけど引き算は無理なのか
足し算はいけるのになんだこの仕様

ちなみに足し算する時は20090101〜のYYYYMMDDHH24MISS形式にしないと無理

112 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 21:04:28 ID:V0nF7IjH0]
Date = 20090101
Date += -3, Days
が正解というクソ仕様ですよ

113 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 21:30:15 ID:Qrvr5YD20]
おお、足し算でマイナス指定してやるのか
ありがとう、できたよ

114 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/19(月) 21:57:36 ID:TbOnLrY30]
なるほど
時々よく分からない仕様があるな

115 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/21(水) 20:52:27 ID:H3grfUJE0]
カーソルキーのleftを押したら、leftを押す>leftを離す>leftを押す に、
rightを押したらrightを押す>rightを離す>rightを押す になるスクリプトはどう書きますか

116 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/21(水) 21:06:57 ID:JC9BnGFu0]
そう作ればいいんじゃないの?

117 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/22(木) 01:33:06 ID:MvHrhn0R0]
ホームページを見てるときに、
特定の画像(文字)が画面の指定した位置に来るようにする、ってできるでしょうか?

例えば、ホームページの[目次]という文字を、
画面の上の方に来るまでブラウザを下にスクロールさせたい、
という感じなんですが。

ImageSearchでできそうなんですが、
スクロールさせつつImageSearchを使う、ってのがよく解らないんです。

118 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/22(木) 02:44:50 ID:ZAtgnYeW0]
>>117
そもそも1680x1050などの広い画面でブラウザ開いた時なんか
スクロールバーが出ないから対応できないと思うんだけど

119 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/22(木) 03:14:06 ID:t7tkDpYz0]
>>117
Loop
 {
 1スクロールさせるボタンをsend
 imagesearch
  if 合致したら抜ける
 }

でできそうな気がする



120 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/22(木) 09:11:04 ID:7L/ljDtu0]
DOM使う方が確実かと

121 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 18:33:08 ID:33n/xRQ70]
使っているPCの、物理メモリ容量について質問です。

はやらせるページ管理人氏の GetMemoryState(0,1) を使わせてもらいました。
物理メモリが2GB以内なら問題ないのですが、2GB以上積んでると、
戻り値が2GBちょっとで頭打ちになり、それ以上増えないようです。

タスクマネージャや、コンピュータのプロパティで表示される物理メモリ容量の、
うまい取得方法は無いでしょうか。

122 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/23(金) 19:58:19 ID:WXMb4uvA0]
ttp://msdn.microsoft.com/ja-jp/library/cc430087.aspx
> Intel x86 プロセッサを採用し、2GB を超え、4GB 未満のメモリを実装したコンピュータでは、
> GlobalMemoryStatus 関数は MEMORYSTATUS 構造体の dwTotalPhys メンバに常に 2GB という値を返します。
> 同様に、実際の利用可能なメモリが 2〜4GB の場合、MEMORYSTATUS 構造体の dwAvailPhys メンバは
> 切り捨てられて 2GB になります。

GlobalMemoryStatusExにすればいいんじゃないかな

123 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 00:49:51 ID:GQFssSOI0]
iTunesでXButton2を押すと次の曲に移ってしますので、それを無効にしたいと考えているのですが、

#IfWinActive,iTunes ahk_class iTunes
XButton2::return

とやっても

#InstallMouseHook

を追加してもやはり制御しきれません。
何か方法はありませんでしょうか?

124 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 10:47:12 ID:EIN0jwLq0]
使ってないからわからんが、タイトル(Class)の指定はそれで合ってるのか?

125 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 15:42:42 ID:EIN0jwLq0]
AHKの標準出力について

-- StdOut.ahk -----------
FileAppend, OutPut test,*
exitapp
-------------------------

AutoHotkey.exe StdOut.ahk > aaa.txt
リダイレクト取込みしてやるとちゃんと出力されてるのに

AutoHotkey.exe StdOut.ahk
ってプロンプトから実行しても画面に文字が表示されないのはなんでなんだろ?

126 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 15:58:16 ID:dQDuGK7i0]
>>125
仕様らしい。ダミーでパイプをかませばいいらしい。以下、公式リファレンスより

However, text sent to stdout will not appear at the command prompt it was launched from.
This can be worked around by piping a script's output to another command or program.

For example:

1) "%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" |more

2) For /F "tokens=*" %L in ('""%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script .ahk""') do @Echo %L

127 名前:123 mailto:sage [2009/01/24(土) 16:06:55 ID:jTY3HDp10]
>>124
iTunesに対しての他のホットキーは効いてますし、

XButton2::Msgbox

とすると、次の曲に切り替わった上でメッセージボックスが表示されてしまうので、
おそらくウィンドウの指定は間違っていないと思うのですが・・・

128 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 16:12:39 ID:EIN0jwLq0]
>>126
おお、出た出た。dクス
バッチファイル用の何かかと思ってスルーしてたけど 1) 2)ともプロンプトからでけた。

しかし "fputs 標準出力 プロンプト 表示されない" とかでググッても
StdErrはリダイレクトされないは書いてあっても
StdOutが表示されない事例は見つからなかったんだよね。
どうやったらそういう状態にできるのか逆に不思議だ。

129 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 21:41:13 ID:deghcbtf0]
閉じるボタンを押すとタスクトレイに最小化するアプリを使ってるのですが
WinCloseでもWinKillでも終了してくれずにトレイに移動するだけです
今はSendでメニューバーにキーを送って無理矢理終了しているのですが
もっとスマートなやり方があれば教えてください



130 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/24(土) 22:59:20 ID:v2e3ODaN0]
クリップボードの内容を張り付けたかどうかを監視する方法ありませんか?
Onclipbpardchangeでコピーは監視出来るみたいですが張り付けを監視する方法がわかりません


131 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 00:16:00 ID:fIh3Ix950]
>>127
#IfWinActive→IfWinActive

132 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 00:22:51 ID:fIh3Ix950]
>>129
フィニを使う www.vector.co.jp/soft/win95/util/se176919.html

133 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 00:32:19 ID:ZG80n0++0]
>>129
WinKillは、WinCloseでダメだったらProcessでKillするから、結局WinClose止まりってことだね。
Process, Closeが問題あるなら、WinKillも使わないほうがいい。
Alt+F4でもダメかな・・・

134 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 02:22:31 ID:tSgUCSWd0]
ahkの初期実行部分で、実行してるマシンのOSを判別させてるんだけど、
Windows7で実行してみたら、PC名の変数が「WIN_VISTA」になった。

これだと本当のVISTAとWin7が判別できないね。
なんか適切な判別方法ないかな?

135 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 14:38:08 ID:zq9D9YZQ0]
何かシステム系DLLのヴァージョンを調べるとか

136 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 19:32:57 ID:xTILthLA0]
ver というコマンドプロンプトで使えるコマンドがあってだな

137 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 22:59:29 ID:C2p4wSr10]
報告その一

流行らせるページのリファレンス、ControlGetの説明の項
>Choice
>リストボックスやコンボボックスで選択されている項目の番号
>(TListBox/TComboBoxコントロールにも対応)
ってなってるけど

ControlGet,var,Choice,,ComboBox1,画面のプロパティ
msgbox,%var%

でやってみたら、選択されている項目の"番号"ではなく"文字列"が取れた。

ちなみに本家ヘルプの説明はこんな感じ
>Choice: Sets OutputVar to be the name of the currently selected entry in a ListBox or ComboBox.
>To instead retrieve the position of the selected item, follow this example (use only one of the first two lines):
>
>SendMessage, 0x188, 0, 0, ListBox1, WinTitle ; 0x188 is LB_GETCURSEL (for a ListBox).
>SendMessage, 0x147, 0, 0, ComboBox1, WinTitle ; 0x147 is CB_GETCURSEL (for a DropDownList or ComboBox).
>ChoicePos = %ErrorLevel% ; It will be -1 if there is no item selected.
>ChoicePos += 1 ; Convert from 0-based to 1-based, i.e. so that the first item is known as 1, not 0.

138 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 23:27:14 ID:NAyEbsnB0]
むしろ、番号が取れなくて困った覚えがある。
日本語取得出来たけど再利用出来ないよ!な感じで

139 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/25(日) 23:28:39 ID:C2p4wSr10]
報告その二

TrackWheelでタイトルバーをクリックしてもアクティブウィンドウが切替わらなくなることがあるです。
[Alt]+[Tab]で切り替えてやると復活するが、以降のドラッグ操作に支障が出る。
 → ドラッグ&ドロップが効かなくなる。(ポインタはドラッグの絵になるがドロップができない)
 → マウスジェスチャ対応アプリでマウスジェスチャが効かなくなる。
スクリプトをReloadしても直らず、諦めてしばらく使ってるといつの間にか復旧してる。

vmWareのゲストOS画面(MKSEmbedded)上でうっかりスクロールさせようとした時によく起きた。
vmWareを一切起動させてなくても時々なる。

再現パターンは今のとこ不明だけど、発生直前に本来のマウスポインタとスクロールポインタが
二重で表示されていたような気がする。
WinXP SP2 AHK ver 1.0.47.06 AutoHotkey.iniに組込み利用


あとスクロール制動についての感想というかできれば要望です。
(これは多分に好みの問題かも知れないので気に入らなかったら無視して下さい)
横スクロールしたい時にブレで縦方向までスクロールしてしまうことがよくあり、縦横自在杉な制動が
ちょっと仇になっているような印象を受けました。

ThinkPad標準のスクロールではあまりその辺を意識したことがなかったんですが
直前に移動した位相(xもしくは、y方向)で固定し、別の位相へのスクロール時は閾値と感度を
通常より多めに取る。もしくは縦横の移動を同時には行なわない。
(xのが移動量が多いなら横のみスクロールさせてy値はあえて無視)
みたいな対処が入っているような気がします。



140 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 00:08:35 ID:OzaHopDg0]
>>139
TrackWheelの中の人だす。

> TrackWheelでタイトルバーをクリックしてもアクティブウィンドウが切替わらなくなることがあるです。
> [Alt]+[Tab]で切り替えてやると復活するが、以降のドラッグ操作に支障が出る。

認識していまつ。同症状がこっちでも起きていて、原因は分からない。orz。
こっちは、再現性っていうか、今のところFireFoxでしか起きないんだけど・・・。
申し訳ないが、今のところメドはなし・・・です。

> 再現パターンは今のとこ不明だけど、発生直前に本来のマウスポインタとスクロールポインタが
> 二重で表示されていたような気がする。
ふむ。。。TrackPointのツールだとFireFoxの場合カーソル消えない(というかちらつく)し、ちょっと手がかりかも。

不具合でどうしようもねぇ!っていうのなら、以下のオプションをIniで設定して様子見してくれるとありがたい。
マウスポインタは消えないけど・・・
> ; マウスカーソル消去を無効にする場合は 1、しない場合は 0 にする
> NoHide=1

> 横スクロールしたい時にブレで縦方向までスクロールしてしまうことがよくあり、縦横自在杉な制動が
> ちょっと仇になっているような印象を受けました。
> :
> 直前に移動した位相(xもしくは、y方向)で固定し、別の位相へのスクロール時は閾値と感度を
> 通常より多めに取る。もしくは縦横の移動を同時には行なわない。
これは、好みっつーか仕様の範囲だね。数式いじるだけだから実現は楽なはず。
オプションで変えられるようにすればいいだけだから、気が向いたらやってみる。

141 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 06:04:32 ID:VuJfFU6y0]
trackwheel便利なんだけど
外付けマウスまで同じ挙動になっちゃうのは避けられないのかな。

142 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 09:52:19 ID:z8Mo5hpU0]
>>139
dです
発生頻度はそれほど高くないんだけど、リブート以外の復旧方法がわからないのが痛いところ。

>気が向いたらやってみる。
>申し訳ないが、今のところメドはなし・・・です。
更新とか急かすつもりはないんで報告も参考程度で見といて下さい。
もうTrackWheel依存しすぎでThinkPad標準のドライバには戻れない状況ですわ。

>ふむ。。。TrackPointのツールだとFireFoxの場合カーソル消えない
そういえばVMWareも消えないですね。ゲストOSにマウス制御全部渡してるらしくトラックポイントでの
スクロールも一切できないです。
ちなみにVmWareのゲストOS内でTW.ahkを動かすことはできます。
でも仮想マシン内は普通よりディレイが発生しやすいためかスクロールはカクカクで例の現象も
比較的高頻度で起こってた気がします。

直近での発生はVMではなく Jane Styleのスレ欄だったんだけど
・その前にシェルが一回落ちていて窓切替にやたら時間がかかる状態だった。
・トラックポイント操作してもスクロール制御ができてない(間に合ってない)うちにmbuttonを離してしまった。
のが原因だったような。(いやそもそもシェルが落ちてる段階で参考にならないか)

> NoHide=1
今すでに現象が起こってるので、後でOSリブート後に試してみます。
あとTW_POSTACTIONを設定してるのでそれ解除しても起こるかも見てみます。

143 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/26(月) 09:53:17 ID:z8Mo5hpU0]
レス番まちがい
×139
>>140

144 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 14:21:32 ID:paF95q4q0]
ControlGetTextとかって「ahk_pid %pid%」が上手に使えない。
「ahk_id %id%」等なら使える。はまった。

145 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 17:39:54 ID:lduHMXnK0]
Jane Doe Styleってなんでタスクバーで左右になべて表示ってやると
二つ分として扱われるの?これAHKでなんとかならん?

146 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 17:45:58 ID:Ny4HM/7G0]
>>132,133
遅くなりましたがありがとうございました

147 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 18:26:19 ID:eAnAnnBW0]
>>144
一つのプロセスで窓はいくつでも持てるんだぜ。

>>145
以下を実行した直後なら・・・
WinSet, Style, -0x10000000, ahk_class TApplication ; WS_VISIBLE

148 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 19:56:41 ID:t0VmE1Ht0]
質問です
特定の動作をさせる為のホットキーを設定ファイルで設定する方法はありませんか?

例えば設定ファイルに#Eと書かれていればwin+Eで動作
#Qと書かれていればwin+Qみたいな感じで

149 名前:名無しさん@お腹いっぱい。 [2009/01/27(火) 20:15:43 ID:X4tsXHNf0]
僕も質問です。
アプリ上で開いているファイルの名前を取得する方法ってありますか?

例えば、エディタでc:\***.docというファイルを開く。
c:\***.docはエディタ上ではアクティブな状態だとして、
このc:\***.docという名前をAHK上で取得したいのです。

無理かなあ。



150 名前:cbibnvn mailto:trpavd@bkxwln.com [2009/01/27(火) 20:17:47 ID:nCQqd/B10]
4fr8vT <a href="awqiefzmnckd.com/">awqiefzmnckd</a>, [url=ohcwsocuvnsl.com/]ohcwsocuvnsl[/url], [link=fyltntzeasap.com/]fyltntzeasap[/link], hzumapjsvzmu.com/

151 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 20:27:41 ID:WqNNCHEs0]
>>149
一番お手軽なのはエディタ側でタイトルバーにファイルパス表示する設定にしといて
それ取得して加工すれば?

152 名前:名無しさん@お腹いっぱい。 [2009/01/27(火) 20:41:15 ID:X4tsXHNf0]
>>151
そか、ありがとう!

153 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 21:18:33 ID:paF95q4q0]
>>147
なるほど…常識…。はまると往々にして単純で当たり前の理由なんだなwまた間違えそうで怖い。

>>149
MouseGestureのコマンドラインを取得する関数が使える時もある。

俺が使ってるのはMenuHackerで、%arg%%titlepath%を使って、ポチエスに投げる。
メモ帳から使い慣れたエディタに開き直すときに使っている。

154 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 21:28:17 ID:hKjgB29J0]
>>148
IniRead と Hotkeyコマンド使え

>>149
コマンドライン文字列を取得するという方法もある
pc11.2ch.net/test/read.cgi/software/1219130051/683-691

155 名前:148 mailto:sage [2009/01/27(火) 21:56:28 ID:t0VmE1Ht0]
>>154
設定ファイルから設定を読み込むのは出来るのですが
割り振るキーを設定に応じて変更する方法が無いものかと。


156 名前:148 mailto:sage [2009/01/27(火) 22:05:14 ID:t0VmE1Ht0]
読み違えてました
Hotkeyコマンドで出来ますね
すみませんでしたm(_ _)m


157 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 22:19:04 ID:eAnAnnBW0]
>>142
TWのテスト版だけど、こっちを試してくれるとありがたい。
一応 *今のところ* 不具合は出ていない。
あと、縦横どっちかにスクロールを固定するオプションを追加(dx, dyの大きい方のみを採用、手抜きw)
ttp://sites.google.com/site/agkh6mze/strage/TrackWheel_RC.zip?attredirects=0

もしこれで直ったてら単純なコーディングミスだな...

158 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/27(火) 22:50:56 ID:hKjgB29J0]
>>157
お疲れさまです
ちょうど今の時期、在宅でのPC仕事なんで(自宅警備じゃないよ)しばらくこれで酷使テストしてみます。
つか今日気がついたけどリモートデスクトップ上でもホイール相当のスクロールは効くんだな。
さすがにマウス下ウィンドウの認識まではしてくれなかったが。

>縦横どっちかにスクロールを固定するオプション
DenyBoth=1にしてみたらWinMergeでスクロールさせる時カクカクしなくなったヽ(´ー`)ノ
ありがとです

159 名前:名無しさん@お腹いっぱい。 [2009/01/29(木) 06:09:04 ID:LOmhUipb0]
QWERTY 配列の109キーボード用を dvorak 配列に変更しようとして

#InstallKeybdHook
#UseHook

*z::;
*+z:::

と書いたところ、
Shift + z で + が表示されるようになりました。
意図しているのはもちろん : の表示です。
どのようにすればよいのでしょうか?
またなぜこのように表示されてしまうのでしょうか?
AutoHotkeyは最新版を使用しています。



160 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 09:10:03 ID:b+H6/CBd0]
+z::Send,:
z::Send,;

Remapは面倒な事があるねぇ。
これはキーコード送信でなくて、「キー置き換え」なんだわ。
つまり、
 z::;
と書くと以下のようになる、([]内はキー名)
 [Shift] +[z] -> [Shift] + [;]
 [Ctrl] +[z] -> [Ctrl] + [;]
 [Alt] +[z] -> [Alt] + [;]
ってなる。
QUERTYキーボードだとおもうけど、キーに印字されたものを見れば・・・

161 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 09:40:20 ID:qrvrUYM20]
*z::send,;
*+z::send,:

162 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 14:19:47 ID:SY+Fy4ud0]
>>160-161
ありがとうございます。sendでしたか。

*z::send,;
*+z::send,:

を記述すると常に ; が表示されるようになったので
もしやと思い

*+z::send,:
*z::send,;

と表記したらうまくいきました。


163 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 21:38:27 ID:aLpAKfgd0]
CAPSLOCKをCTRL(左)に置き換えるには
どのように設定すればよいのかわかりません

旧雑記サルベージ
lukewarm.s101.xrea.com/test/read.cgi/bbs/1157529465/62

>CapsLockCtrl入れ替えは実現できず

こういう情報がありますが
やはりレジストリを弄るしかないのでしょうか

164 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 21:48:36 ID:PtNO3FlD0]
>>163
Change Keyでサクッと弄っちゃえばいいじゃない
ttp://www.forest.impress.co.jp/lib/sys/hardcust/keyboard/changekey.html

165 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 22:25:49 ID:Of1QsQUs0]
テンプレ>3

166 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/29(木) 22:45:33 ID:wR4WwhsC0]
>>164--165
そうでしたか
ありがとうございました


167 名前:名無しさん@お腹いっぱい。 [2009/01/30(金) 20:57:31 ID:w6m+xv+i0]
TrackWheelの中の人です。
>>139の症状としては依然として再発する・・・orz
詳しく書くと非クライアント領域(タイトルバーとかメニューとかサイズ変更とか)でマウス押下が効かない。

いろいろググってみたけど、
新・なまず日記(このスレでは既出中の既出)のIME状態取得のところで、
AttachThreadInput の多用で問題発生とのこと。
ttp://endoh-namazu.tierra.ne.jp/diary/?date=200512

TrackWheelは 危なさそうなのは ControlClick と Send かなぁ。。。
あとは自前の 組み込み用の PostAction で A_Cursor 参照してる。。。

AHKのコマンドをあまり使わずに DllCall でゴリ押しすれば何とかなるのかなぁ・・・
ちょっと根が深いかもしれないので、同症状で悩んでいる人は Ini で NoHide=1 でよろしく

自分は頻発するわけじゃないので [Alt] + [Tab]で逃げている。

>>141
すっかり見落としてた。ソフトウェア層でやっているので無理。
Hotkeyコマンドでマウスボタンに割り当てているんで、何らかの方法(ホットキー割り当とか)で
Hotkey, *MButton, Off
とかで一時的に解除するとか

168 名前:158 mailto:sage [2009/01/30(金) 21:53:26 ID:HlJEMNMH0]
>>167
>A_Cursorの参照
>A_CaretX(Y)の参照
>ControlClick
>ControlGetFocus
>ControlFocus
>Controlコマンドの、Check,Uncheck

やばい。バリバリ使ってる。特にControl関係は最近作ってる奴でテストしまくってた。
ってことは現象が出るのはTWじゃなくて自分が書いたスクリプトだった可能性も大だ orz

ちなみにRC版導入以降、こちらでは問題は起こってないです。
(仕事が込んできてスクリプト弄る余裕がなかっただけかも知れないが)

169 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 22:44:06 ID:w6m+xv+i0]
> ちなみにRC版導入以降、こちらでは問題は起こってないです。
発生していないなら何よりだけど、、、

>>140書いた段階で単純なバグ(コーディングミス)を見つけて直したので、
4日くらいは大丈夫だったので、発生頻度は確かに減った気はする。
だけどさっき出たんで・・・。

原因はこっちだと思うなぁ。
というか、列挙されたコマンドってAHKでは肝なところだと思うし、
他スレッドに長い間(マウス押下中ずっと)アタッチしっぱなしって、想定してないはず。

というか、これも自体が的外れな見解なのかもしれないけどorz

ちなみに、AHK の C++ のソースコードを分かりもしない癖にふいんき(何故かry で斜め読みしたら
1.0.42.02以降ではA_Cursor では実質使わないようになっているみたいだけど他は変わってない。



170 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/30(金) 22:49:38 ID:HlJEMNMH0]
自分も今 ソース眺めてたんだけど、ControlClickもv1.0.45 以降の"NA"モードでは
AttachThreadInput()使ってないみたい。

コメント読む限りでは AttachThreadInput()で何かしらの問題が起こることは作者氏も
たぶん認識していて使用頻度は極力減らしているような印象。
(テキスト翻訳で適当に解釈してるから実際はわからんけど)

171 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/31(土) 12:06:50 ID:DjmYD3GA0]
>170
あんまりそんな風には読めなかった。別のコメントならごめん。
ちなみに AttachThreadInput() は SetActiveWindow() するのに必要なはず。

// It was reported (and confirmed through testing) that this new NA mode (which avoids
// AttachThreadInput() and SetActiveWindow()) improves the reliability of ControlClick when
// the user is moving the mouse fairly quickly at the time the command tries to click a button.
// In addition, the new mode avoids activating the window, which tends to happen otherwise.
// HOWEVER, the new mode seems no more reliable than the old mode when the target window is
// the active window. In addition, there may be side-effects of the new mode (I caught it
// causing Notepad's Save-As dialog to hang once, during the display of its "Overwrite?" dialog).
// ALSO, SetControlDelay -1 seems to fix the unreliability issue as well (independently of NA),
// though it might not work with some types of windows/controls (thus, for backward
// compatibility, ControlClick still obeys SetControlDelay).

この(AttachThreadInput() と SetActiveWindow() を避ける)新しい NA モードは
コマンドがボタンをクリックする時にユーザーがマウスを素早く動かしている場合に
信頼性が向上することが報告され(またテストを通じて確認され)ている。
加えて、新しいモードでは避けようとしなければ発生しがちであるウィンドウの
アクティブ化を避ける。
「しかし」、対象のウィンドウがアクティブウィンドウである場合には、新しいモードは
古いモードよりも信頼性が高いとは言えないようである。さらに新しいモードには副作用が
あるかもしれない。メモ帳の「名前を指定して保存」ダイアログで上書きするかを
たずねるダイアログが表示されている最中に一度ハングしたことがある。
「また」、SetControlDelay -1 は同様に信頼性の問題を(NA とは独立に)解決するよう
だが、動作しない Winow や Control が存在するかもしれない。
そのため、互換性のため ControlClick は依然として SetControlDelay の設定に従う。


172 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/31(土) 13:46:06 ID:g43WAhtb0]
アウチ、AttachThreadInput()でgrepかけたら、コメントで
「AttachThreadInput()を避ける」みたいなのが結構出てきたんで勝手に解釈してた。

SetForegroundWindowEx()とかの中でも使ってるし、WinActivateする度に呼ばれてるのか
コーディングを工夫して避けるは無理そう。
普通のホットキー駆動だとユーザー操作が発生してからのアクションが多いから
あまり問題にならないみたいだけど
間隔短くとってタイマーぶん回して高度なことやらせるのは避けたほうが無難?

173 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/31(土) 16:44:41 ID:XA0EcD/m0]
そこまで分かる人でもAHKを使うんだな

174 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 03:06:41 ID:Ul6ytoNp0]
2ストロークで特定の語句を出力したいのですが、
(以下では見やすくするため全角空白を使用してます)

#v::
  Input, InputChar, C I L1 T2,{Esc}, n, h
  if ErrorLevel=Match
  {
    if InputChar = n
      Send, win + v -> n
    if InputChar = h
      Send, win + v -> h
  }
  if ErrorLevel=Max
  {
    Send, %InputChar%
  }
  return

これでは、 Win + v を押して n を押したときのみ正常に動作し、
それ以外の場合はまったく動きません。

意図しているのは
Win + v, そして n で Send, win + v -> n
Win + v, そして h で Send, win + v -> h
Win + v, そして n と h 以外のキーで Send, win + v -> それ

どこを変更すれば正常に動くのでしょうか

175 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 03:41:30 ID:+8QlN44X0]
>>174
流行らせるページより
>MatchList
>「,」で区切って文字列を列挙する。
>入力内容がここに列挙したものに一致した場合、コマンドは終了しErrorLevelが「Match」になる。
>カンマ区切りだが、引数の区切りとは扱いが違い、カンマの前後の空白文字などは、文字列の一部とみなされる。

これが原因?

176 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 04:11:44 ID:Ul6ytoNp0]
>>175
ありがとうございます!うまくいきました

177 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 16:20:16 ID:WFl1N4Nl0]
名前を付けて保存ダイアログってスクリプトから出せないのかな?
ファイル選択ダイアログを表示・フォルダ選択ダイアログを表示 はあるんだけどなー。


178 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 16:32:19 ID:5OtrqmWb0]
選択ダイアログを出して
ウィンドウタイトルとかボタンのテキストとか書き替えて
無理からControlとかでテキスト拾って
保存用に利用してみるとかw

179 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 16:35:34 ID:gM29b+OF0]
FileSelectFileでできるだろ?



180 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 17:16:49 ID:WFl1N4Nl0]
>>179
リファレンスよく見たら保存ダイアログにする方法書いてあるな
気付かなかった

181 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 19:02:57 ID:o14t9yXp0]
アイドル状態ってどうやって調べてるんだろ?

5分ごとに、アイドル状態ならば検索ソフトのインデックス作成を行うように設定してるのだが、
Civilization4っていうゲームをプレイ中に、5分ごとにフォーカス奪われちゃってすごく困ってる。

なんか改善策ないかなー

182 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 19:09:30 ID:zLFlCA+70]
組み込み変数の A_TimeIdle や A_TimeIdlePhysical じゃ用はなさないってこと?
というか、プレイ中と書いてあるけど、起動して放置中ってことか?

183 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 19:24:13 ID:nES9c2H30]
Civilization4がどこまでマルチスレッド対応してるかにもよるかもね。
ウィンドウでもプロセス検知でもいいから、ゲームが起動中かどうかで判断するのが一番簡単じゃない?

184 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/01(日) 22:31:29 ID:IsdiFXGP0]
スレッド毎のCPU占有率調べて処理すればいいんじゃね
除外設定付けておけば望みの動作になると思われ

185 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 00:37:36 ID:ghjeIC8V0]
直前に閉じたウィンドウを開くスクリプトは書けますか?

186 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 00:41:16 ID:/eytDMHF0]
>>185
無理。具体的に言ってよ。
アクティブウィンドウを再起動させるのならできると思う。

直前に閉じちゃったのなら、常に何かしら監視していないといけないから面倒かも。

187 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 00:59:40 ID:1rUYw8J20]
ワークステーションがロックされてる、で、パスワードを入れて復帰する。
この直後に処理を挟みたい。
OnMessageとかでトラップなのかな?

188 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 01:43:07 ID:ghjeIC8V0]
>>186
操作ミスで閉じてしまったときに楽に復帰できたらいいなと思ったんだ。(´・ω・`)

189 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 02:02:47 ID:09XryvuG0]
>>185
これか?外人がAutohotkeyで色々作っていたやつ。試してレス横瀬。
窓の杜 - 【NEWS】誤って閉じたウィンドウを60秒以内なら復活できる「GoneIn60s」
www.forest.impress.co.jp/article/2007/01/11/gonein60s.html



190 名前:185 mailto:sage [2009/02/02(月) 04:29:43 ID:ghjeIC8V0]
>>189
サンクス!さっそく使ってみたので以下報告。結論としては不採用。
Alt + F4を押すとWinHideする仕組みらしい。で、
・GoneIn60sのアイコン右クリックして閉じたアプリを選択 ⇒ WinShowで復帰。
・指定時間後までに何もしない ⇒ WinCloseで閉じる。

なぜかWinKillでなくWinCloseだから、「保存しますか?」と出るはずのときに、
・指定時間後までは何もなしで閉じたように見える。→後で急にあらわれて「保存しますか?」
となる。これは気持ち悪い。
しかも右上の×でも同様なんだけど、こっちはもっとひどくて、位置が正確でないから
誤動作する場合がある。最小化ボタンの位置で反応したり、閉じるに反応しなかったり。

WinHideの仕組みはいいアイデアだと思った。
ちなみに窓の杜の紹介記事からバージョンアップしてて、今はv1.4。

191 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 05:46:25 ID:BYiuvhuI0]
DDWinというソフトの小窓をESCキーで閉じて
他のソフトの時は標準の動作をするようにしたいのですが

Esc::
IfWinActive, ahk_class TDefForm
{
Send,WinClose
}
else{
Send,{Esc}
}
return

だとDDWinの小窓では何も起きませんし
それ以外のところでは

xx hotkeys have been received in the last xxxxms

Do you want to continue?

というエラーメッセージが出てしまいます。






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

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

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