AutoHotkey スレッド part7at SOFTWARE
AutoHotkey スレッド part7 - 暇つぶし2ch49:名無しさん@お腹いっぱい。
09/01/04 02:38:24 97BFjk2I0
ところで前々スレ1000まで行きましたか?
DAT誰かうpしてくれると嬉しいのですが。

50:名無しさん@お腹いっぱい。
09/01/04 02:41:30 XwzFKclp0
>>49
Sleep, 25200000

51:33
09/01/04 02:47:14 /TC5+4Sb0
>>35, 36
やっぱsynergyっすか,実は前試して上手く動かせなかった...
マクロ(簡単なので良いんだけど)とか,一部のキーだけ別PC操作したいとか
微妙にやりたいことが出来ないらしかったんで,直ぐに諦めてしまった
もう一度試してみます.レスありがと

52:名無しさん@お腹いっぱい。
09/01/04 05:15:57 uxVSj97F0
別PCの何をどのくらい操作したいのかでも
どんなソフト使うべきか決まるよ。
vncとかsshでも済むかも知れないし。

53:名無しさん@お腹いっぱい。
09/01/04 07:31:38 p6B3/HqS0
TrackWheelのreadmeが参考になりすぎて困るので、
Googleサイトとかでページを作って検索にひっかかるようにすると、
幸せになる人がもうちょっと増えると思うんだけども

54:名無しさん@お腹いっぱい。
09/01/04 09:11:37 JIZG7BfL0
なんという丁寧なドキュメント・・・

55:名無しさん@お腹いっぱい。
09/01/04 10:11:15 D35r6xpC0
>>49
URLリンク(www.geocities.jp)

56:名無しさん@お腹いっぱい。
09/01/04 10:32:20 1GxGvmcA0
>>51
synergyよりも最近の流行はこれ
【マウス&キーボード共有】Input Director
スレリンク(software板)


57:33
09/01/04 12:18:27 /TC5+4Sb0
>>52
MMORPGで二垢するときに,一台のキーボードで操作してます.
WASDで移動QEで旋回,その他キーとCtrl,Altなどの組合せで色々な機能を
普通のキーボード部分は接続してあるPCのキー入力に使い
2nd側のPC操作用に
カーソルキーを2ndPCのWASD,QEを2ndPCのDelete,PageDown
テンキーの0を2ndPCのスペースバー,1~9を2ndPCの1~9,.を2ndPCのTABなどなど
F6を押すとトグルで2ndPC側のマクロ発動(実際には3ボタン連打w)してます

それだけではどうしてもまかなえないときもあるので,そのときは
キーボードとマウスを全部2ndPC操作に切り替えてます.

まー,KeyBatで出来ることで設定していったらこうなっちゃったんですが
キーボード共有ソフトだとちょっと無理で
Vistaに対応したキーカスタマイズ系だと複数PC操作出来るの無いなーと

>>56
それは面白そうなので観てきます

スレ違い気味なネタにレスありがとうございます


58:名無しさん@お腹いっぱい。
09/01/04 12:50:39 1GxGvmcA0
えらい器用なことやってますねw ネトゲ廃人の気合の入れようは異常w

59:名無しさん@お腹いっぱい。
09/01/04 12:52:01 o7CXEDIT0
>>53
乱暴につくってみた URLリンク(sites.google.com)
CSS使えなくて面倒だった

60:名無しさん@お腹いっぱい。
09/01/04 14:48:48 FFtevMUI0
おつー

61:名無しさん@お腹いっぱい。
09/01/04 15:38:31 dyR0JXVY0
>>59
乙です
本当にすごいw参考になるです

62:名無しさん@お腹いっぱい。
09/01/04 16:32:52 1GxGvmcA0
すげえ力作ww

63:名無しさん@お腹いっぱい。
09/01/05 02:28:31 RJg40VRS0
>>48

いつのまにかExcelみたいな変態ポインタも消えるようになってるし
スクロールが随分となめらかになってて(・∀・)イイ!!
ただ、秀丸の分割ペイン切替がなくなったのは秀使いとしては地味にクリティカルかも。

組込みで使おうとして気になった点とか

・TW.ahkの後に関数集などのahk(行頭にreturnがないもの)を Includeしようとするとエラーになる。
 環境:WinXP SP2 AHK 1.0.47.06 (original) 行末ラベル TW_EOF: が原因ぽい。
 行頭の if (A_LineNumber != 1)ってのは組込み用対策なのかな。
 これって常に1になる (組込みで使う場合も A_LineNumberはファイルごとの行数になる)ので
 いまいち機能してないような。

・OnExitの任意指定ってなくなった? TW_Initialize()の後に 無理矢理 OnExitラベル変更してるけど
 ExitAppの前に TW_End()を突っ込んでやればOK?

・.ini/.icoを相対パスで指定した場合、基準をA_LineFileと同じディレクトリにして欲しいとか言ってみるテスト
 組込み時もデフォルト設定のままで使えるようになってると大変嬉しい

64:名無しさん@お腹いっぱい。
09/01/05 12:47:49 RJg40VRS0
ついでにも一個要望
本末転倒だがチョン押し時の Send,{Mbutton} をヌッ殺すオプションが欲しい。
というよりタイムアウトした場合用の TW_POSTACTION が欲しい。
オートスクロールは使わないがAHKからHookかけてMbutton使いたい用途は山ほどある。

数行足すだけで済むものなので今は適当に改造して使わせてもらってますが、
更新が頻繁で追っかけるの大変になってきたので、機能として盛り込んでもらえると嬉しいなっと。

65:名無しさん@お腹いっぱい。
09/01/05 14:08:25 K2RPyvk10
> 秀丸の分割ペイン切替がなくなったのは秀使いとしては地味にクリティカル
楽だったので組み込んだ

> 組込みで使う場合も A_LineNumberはファイルごとの行数になる
知らなかったorz。無駄だから消した

> OnExitの任意指定ってなくなった?
無くなった。でも呼ばなくても平気なはずなので、Initから外した。一応Docに追記した。

> 基準をA_LineFileと同じディレクトリにして欲しい
採用。俺も面倒だったw

> タイムアウトした場合用の TW_POSTACTION
既にあるよ。

URLリンク(sites.google.com)
- ページが大きいので分割した
- 秀丸用対応の復活(Autoでやる)
- ワーキングディレクトリをTrackWheelのあるディレクトリとした(人によってはデカい)
- IEの設定が間違ってたorz

66:名無しさん@お腹いっぱい。
09/01/05 14:10:00 K2RPyvk10
>> タイムアウトした場合用の TW_POSTACTION
>既にあるよ。
Iniにはないので自分で書いてね、ってこと

67:名無しさん@お腹いっぱい。
09/01/05 17:30:40 RJg40VRS0
>TW_POSTACTION
すんませんまさに望んでた通りの動作でした。
TWの外に MButton: 置いて自制御する場合と混同してました。

>>65
(・∀・)イイ!!
秀の場合は HorzをScroll2に指定するといい感じ。
全般的にScrooll(つまみドラッグエミュ)は慣れてないせいか操作が難しい。
うまいことコツが掴めるようになると快適なのかな。

68:名無しさん@お腹いっぱい。
09/01/05 20:40:49 DVBHOCyB0
SQLiteModule
version1.1
URLリンク(sites.google.com)
内部仕様変更だけ
Dynamic Functionはいまだ理解できず
(どんなとき使えばいいんだ?)

勝手に便乗
昔Google Page Createrで同じようなの作ったけどすぐ削除された
個人的ファイル置き場にちょうどいいかな

69:名無しさん@お腹いっぱい。
09/01/05 21:00:13 K2RPyvk10
>>68
乙。
たとえば、、、多分 SELECT文の結果をグローバル変数の配列とかにすると思うんだけど、
その最中に Loop して結果表を1行ずつフェッチする過程があるはず、
で、その行Loop中に他の関数を呼び出してデータ処理はお願いって風に出来ればなぁ、、、と思っただけ。
グローバル変数消費しないし、他の言語では結構見るタイプ。
まぁ、↓だと10カラムしか対応できなくて格好悪いけどこんな感じ。

; モジュール側
GetSelectToCallback(db, sql, funcName) {
 Loop {
  行取得する
  %funcName%(rowNo, colCount, col1,col2,col3,col4,col5,col6,col7,col8,col9,col10) ; 行をそのまま渡す!
 }
}

; コールする側
LV_Delete()
GetSelectToCallback(db, "SELECT * FROM HOGE", "HogeFunc")
SB_SetText(LV_GetCount() . "件")

HogeFunc(rowNo, col1="",col2="",col3="",col4="",col5="",col6="",col7="",col8="",col9="",col10="") {
 ; ダイレクトにリストビューに追加する
 LV_Add("", col1, col2, col3, col4, col5, col5, col6, col7, col8,col9,col10)
}

70:名無しさん@お腹いっぱい。
09/01/05 21:41:20 DVBHOCyB0
>>69
これは分かりやすい

理解したけど問題は列数か
頑張ってみます

71:名無しさん@お腹いっぱい。
09/01/06 18:24:12 RYrDeuzr0
TrackWheel はコア部分変更以来、小さく動かしてゆっくりスクロールする動作が苦手になってる感じ

>行数 = Round((移動量-動作閾値分の補正) / 動作感度)

これだと tY=2 sY=10 ($Default) のとき Yが 7以上じゃないとスクロールが発生してくれないけど
しきい値を越えたら、まずは 1行動いてくれるほうがなめらかになる感じ。
value := (value-t+s)//s
とか。

あとWindowClassやControlClassの指定は部分じゃなくて前方一致?
ContexterのリストビューがスクロールしないのでSpyで見たら
WindowsForms10.SysListView32.app32 とかいう長ったらしいコントロール名だった。

72:名無しさん@お腹いっぱい。
09/01/06 18:54:27 w/0/pa630
TrackWheelで左右に動かすとY軸が動くようにしているのは俺だけだろうな
上下で動かすよりなんとなく楽な感じがするんだよね

73:名無しさん@お腹いっぱい。
09/01/06 19:32:47 1sWyUvxb0
> しきい値を越えたら、まずは 1行動いてくれるほうがなめらかになる感じ
そういえば、前はそうなってたわ。 Round じゃなくて Ceil 使えばいいか

> 部分じゃなくて前方一致?
誤爆がね、ってことでCaseLessの完全一致。
ワイルドカードで *Hoge* と出来るようにするよ。

つか、さすがに流れの遅いここで、このネタでスレが埋まるのはそろそろ悪い気がしてきた。。。
ブログでもいいんだけど気軽さがなぁ...この辺使わして貰っても良いかな
URLリンク(lukewarm.s101.xrea.com)

74:名無しさん@お腹いっぱい。
09/01/07 22:44:52 dP98pG5w0
横から見てるだけでもいろいろ参考になるから、このまま続けてもOKと俺は思う

75:名無しさん@お腹いっぱい。
09/01/09 00:00:05 dZ7SwV0k0
じゃ、何人かは使っているらしいんで
URLリンク(sites.google.com)

[V.5]
- Altキー押下時にスクロール後にSleepする設定を加えた
- サムドラッグエミュレート抑止オプションを追加
- スクロール方法の自動判別で Scroll2 を優先するオプションを追加(V.3と同じ判定になる)
- デバッグコードが残っていたのを削除
[V.4]
- 設定しても何もなかったオプション項目に意味を持たせた
- 【重大】スクロール量の算出方式で閾値を超えた時に1行動くようにした >>73
- クラス名定義でワイルドカードで中間一致を追加 >>73

76:名無しさん@お腹いっぱい。
09/01/10 10:56:35 Uc2zWhw/0
VistaでAutoHotkeyを使用しております。少し質問をさせて頂きたいのですが
CCleanerをウィンドウの位置やサイズを変更するため簡単なスクリプトを
書いて見たのですが、機能しません同じパターン等で他のソフトを多数、使用して
も問題無いのですが、何が原因なのでしょうか、御存じの方宜しくお願いします。
Run,"C:\Program Files\CCleaner\CCleaner.exe"
WinWaitActive,Piriform CCleaner
WinMove, A, , 40, 100, 1200, 900
ExitApp
以下のスクリプトでもCCleanerだけ反応ありません。
#NoTrayIcon
^1::WinMove, A, , 40, 100, 1200, 900
^0::ExitApp
return
CCleaner - Home
URLリンク(www.ccleaner.com)
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Piriform CCleaner
ahk_class #32770

77:名無しさん@お腹いっぱい。
09/01/10 12:08:16 xVdEkJsk0
>>76
あまり参考にならないかもしれないけど、うちの環境では問題なく動作したよ。
OS:WindowsVista
CCleaner 2.15.815

78:名無しさん@お腹いっぱい。
09/01/10 12:16:41 RDJAsW630
>>76
俺も試してみたがちゃんと機能したよ

79:名無しさん@お腹いっぱい。
09/01/10 12:19:13 RDJAsW630
あ、ちなみに
OS:WinXP SP3
CCleaner v2.14.750

そしてアップデートあるのに気がつきました

80:名無しさん@お腹いっぱい。
09/01/10 12:36:32 Uc2zWhw/0
レス感謝です。CCleaner 2.15.815で同じバージョンですね。
先ほど眠っていたXPに同じくセットすると、此方は問題無く
起動しました。因みにVistaのエアロはどうなってますか
私はオンオフともやはりCCleanerだけ動作しません。
77氏は問題無くVistaでも動作と言う事は環境問題かな

81:名無しさん@お腹いっぱい。
09/01/14 12:53:14 9ldsyH9N0
思ったより難しそうだけど、習得率はVBSとどっちが簡単ですか?

82:名無しさん@お腹いっぱい。
09/01/14 13:54:08 QS/Psi5l0
言語仕様としてはVBSの方が整理されている。

でも、ほとんどの人がAHKを使う理由は、キー割り当てや簡易GUI構築など、
VBSでは代替できない機能が目当てだと思うんで、
「習得のしやすさ」で選ぶ二択じゃない気がする。

83:名無しさん@お腹いっぱい。
09/01/14 14:24:04 9ldsyH9N0
ちらっと見ただけだけど、面白そうな事が出来そうだな感じだったので
難易度はどれくらいなのかなと思って
wshくらいの難易度で覚えられるならやってみたいけど
あまり本格的なものだとすぐあきらめそうだなと

84:名無しさん@お腹いっぱい。
09/01/14 14:38:13 XsghDILe0
wsh(VBA,JavaScript)ができるなら大丈夫だろ。
俺もなんとかなってる。

むしろ、AHKはかなりDSL色が強くて非常に独自言語っぽく、
他の言語だと簡単に書けたり、どの言語も同じように書けるのに、
AHKは変な書き方しなくちゃならなかったり、ちょっとクセがある。


85:名無しさん@お腹いっぱい。
09/01/14 15:16:28 BZ/65qiJ0
>>81
おいらも2週間前にAutoHotkeyを知ったばかりの新参だけど、
「面白そうなこと」というのが具体的に決まっているのであれば、
やってみたらいいんじゃないかな。

ちなみに、おいらは前スレで紹介されてたモールス信号スクリプトを使って和文を打てるようにしたり、
物理演算シミュレーションソフトのPhunにちょっと遊べるを機能を追加したりして遊んでる。
後者のスクリプトは下手なりにソースコード晒して公開したのにウィルスと疑われてるけどなw
チラ裏すまそ。

86:名無しさん@お腹いっぱい。
09/01/14 16:33:37 9ldsyH9N0
レスありがとう

ほんとにまだちょっと見た程度なので
具体的にやりたいものが決まってるわけではないんだけど
いろいろ応用が利きそうかなと
途中で挫折しなかったらまた来てまます

87:名無しさん@お腹いっぱい。
09/01/14 17:46:00 dEH4tJQQ0
キー置き換えっつースタンスと、バッチ代わりとか簡易GUI作成ツールとかってスタンスで
大分違いが出そう。。。

mayu+WSH(+マウ筋)から AHKに完全移行したけど、最初はキー置き換えだけしかしなかったなぁ

88:名無しさん@お腹いっぱい。
09/01/14 19:41:53 JFwvyFAk0
mayu+AHK(非常駐スクリプト)で運用。

89:名無しさん@お腹いっぱい。
09/01/15 01:54:28 1FFYSN/50
質問です。
右クリックを押している間、
右クリックを連打するスクリプトってどう書けばいいんでしょうか?

If Rbutton
loop
{
click,rbutton
sleep, 100
}

試行錯誤してもこの程度しかわかりませんでした。
押し下げ状態とかの記述とかも流行らせるを見てもよくわかりません。
よろしくお願いします。

90:名無しさん@お腹いっぱい。
09/01/15 02:33:30 kckjR1IW0
4と出る筈が、何で13になるの?
ichi:=1
tasu:=+
san:=3
msgbox,% ichi tasu san
return

91:名無しさん@お腹いっぱい。
09/01/15 02:38:56 FprEOzFe0
>>90
演算子って変数に代入できるのか?

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

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

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

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

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

94:名無しさん@お腹いっぱい。
09/01/15 12:53:57 zBxweuAX0
>>89
RButton::
Loop
{
If(!GetKeyState("RButton","P"))
Break
MouseClick, RIGHT
Sleep, 100
}
Return
 
>>93
Eval関数
URLリンク(www.autohotkey.com)


95:名無しさん@お腹いっぱい。
09/01/15 13:05:17 1FFYSN/50
>>94
ありがとう!!

96:名無しさん@お腹いっぱい。
09/01/15 14:48:14 XSOAc2jv0
>>94
eval良いね

97:名無しさん@お腹いっぱい。
09/01/15 19:56:10 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:名無しさん@お腹いっぱい。
09/01/15 20:52:43 mcfS5KF00
一行目は SendMode Play じゃないの?

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

99:名無しさん@お腹いっぱい。
09/01/15 23:19:11 kckjR1IW0
>>94
ありがとう(*゚∀゚)=3

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


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

102:名無しさん@お腹いっぱい。
09/01/16 17:55:22 8WDRn3Rn0
WindowFromPointをdllcall

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

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

104:名無しさん@お腹いっぱい。
09/01/17 16:36:46 AAdcRplY0
LWin::MsgBox, % "long = " . LongPress(A_ThisHotkey, 500)

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


105:名無しさん@お腹いっぱい。
09/01/17 17:35:30 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:名無しさん@お腹いっぱい。
09/01/18 23:50:13 XmkZ8Jyg0
>>104>>105
遅くなりましたがありがとうございます。

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

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

107:名無しさん@お腹いっぱい。
09/01/18 23:58:42 svY9DCGD0
>>101-102

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

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

108:名無しさん@お腹いっぱい。
09/01/19 00:02:32 U3VSUvzG0
正解出してやってんのに馬鹿じゃねーの

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

110:名無しさん@お腹いっぱい。
09/01/19 20:21:14 TbOnLrY30
NowDate = 090101
NowDate -= 3, Days
じゃ駄目?

111:名無しさん@お腹いっぱい。
09/01/19 20:26:47 TbOnLrY30
と書いたけど引き算は無理なのか
足し算はいけるのになんだこの仕様

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

112:名無しさん@お腹いっぱい。
09/01/19 21:04:28 V0nF7IjH0
Date = 20090101
Date += -3, Days
が正解というクソ仕様ですよ

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

114:名無しさん@お腹いっぱい。
09/01/19 21:57:36 TbOnLrY30
なるほど
時々よく分からない仕様があるな

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

116:名無しさん@お腹いっぱい。
09/01/21 21:06:57 JC9BnGFu0
そう作ればいいんじゃないの?

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

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

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

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

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

でできそうな気がする

120:名無しさん@お腹いっぱい。
09/01/22 09:11:04 7L/ljDtu0
DOM使う方が確実かと

121:名無しさん@お腹いっぱい。
09/01/23 18:33:08 33n/xRQ70
使っているPCの、物理メモリ容量について質問です。

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

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

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

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

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

#IfWinActive,iTunes ahk_class iTunes
XButton2::return

とやっても

#InstallMouseHook

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

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

125:名無しさん@お腹いっぱい。
09/01/24 15:42:42 EIN0jwLq0
AHKの標準出力について

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

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

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

126:名無しさん@お腹いっぱい。
09/01/24 15:58:16 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
09/01/24 16:06:55 jTY3HDp10
>>124
iTunesに対しての他のホットキーは効いてますし、

XButton2::Msgbox

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

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

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

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

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


131:名無しさん@お腹いっぱい。
09/01/25 00:16:00 fIh3Ix950
>>127
#IfWinActive→IfWinActive

132:名無しさん@お腹いっぱい。
09/01/25 00:22:51 fIh3Ix950
>>129
フィニを使う URLリンク(www.vector.co.jp)

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

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

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

135:名無しさん@お腹いっぱい。
09/01/25 14:38:08 zq9D9YZQ0
何かシステム系DLLのヴァージョンを調べるとか

136:名無しさん@お腹いっぱい。
09/01/25 19:32:57 xTILthLA0
ver というコマンドプロンプトで使えるコマンドがあってだな

137:名無しさん@お腹いっぱい。
09/01/25 22:59:29 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:名無しさん@お腹いっぱい。
09/01/25 23:27:14 NAyEbsnB0
むしろ、番号が取れなくて困った覚えがある。
日本語取得出来たけど再利用出来ないよ!な感じで

139:名無しさん@お腹いっぱい。
09/01/25 23:28:39 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:名無しさん@お腹いっぱい。
09/01/26 00:08:35 OzaHopDg0
>>139
TrackWheelの中の人だす。

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

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

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

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

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

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

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

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

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

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

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

143:名無しさん@お腹いっぱい。
09/01/26 09:53:17 z8Mo5hpU0
レス番まちがい
×139
>>140

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

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

146:名無しさん@お腹いっぱい。
09/01/27 17:45:58 Ny4HM/7G0
>>132,133
遅くなりましたがありがとうございました

147:名無しさん@お腹いっぱい。
09/01/27 18:26:19 eAnAnnBW0
>>144
一つのプロセスで窓はいくつでも持てるんだぜ。

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

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

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

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

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

無理かなあ。

150:cbibnvn
09/01/27 20:17:47 nCQqd/B10
4fr8vT <a href="URLリンク(awqiefzmnckd.com)">awqiefzmnckd</a>, [url=URLリンク(ohcwsocuvnsl.com) [link=URLリンク(fyltntzeasap.com) URLリンク(hzumapjsvzmu.com)

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

152:名無しさん@お腹いっぱい。
09/01/27 20:41:15 X4tsXHNf0
>>151
そか、ありがとう!

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

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

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

154:名無しさん@お腹いっぱい。
09/01/27 21:28:17 hKjgB29J0
>>148
IniRead と Hotkeyコマンド使え

>>149
コマンドライン文字列を取得するという方法もある
スレリンク(software板:683-691番)

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


156:148
09/01/27 22:05:14 t0VmE1Ht0
読み違えてました
Hotkeyコマンドで出来ますね
すみませんでしたm(_ _)m


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

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

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

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

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

#InstallKeybdHook
#UseHook

*z::;
*+z:::

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

160:名無しさん@お腹いっぱい。
09/01/29 09:10:03 b+H6/CBd0
+z::Send,:
z::Send,;

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

161:名無しさん@お腹いっぱい。
09/01/29 09:40:20 qrvrUYM20
*z::send,;
*+z::send,:

162:名無しさん@お腹いっぱい。
09/01/29 14:19:47 SY+Fy4ud0
>>160-161
ありがとうございます。sendでしたか。

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

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

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

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


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

旧雑記サルベージ
URLリンク(lukewarm.s101.xrea.com)

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

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

164:名無しさん@お腹いっぱい。
09/01/29 21:48:36 PtNO3FlD0
>>163
Change Keyでサクッと弄っちゃえばいいじゃない
URLリンク(www.forest.impress.co.jp)

165:名無しさん@お腹いっぱい。
09/01/29 22:25:49 Of1QsQUs0
テンプレ>3

166:名無しさん@お腹いっぱい。
09/01/29 22:45:33 wR4WwhsC0
>>164--165
そうでしたか
ありがとうございました


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

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

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

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

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

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

168:158
09/01/30 21:53:26 HlJEMNMH0
>>167
>A_Cursorの参照
>A_CaretX(Y)の参照
>ControlClick
>ControlGetFocus
>ControlFocus
>Controlコマンドの、Check,Uncheck

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

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

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

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

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

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

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

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

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

171:名無しさん@お腹いっぱい。
09/01/31 12:06:50 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:名無しさん@お腹いっぱい。
09/01/31 13:46:06 g43WAhtb0
アウチ、AttachThreadInput()でgrepかけたら、コメントで
「AttachThreadInput()を避ける」みたいなのが結構出てきたんで勝手に解釈してた。

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

173:名無しさん@お腹いっぱい。
09/01/31 16:44:41 XA0EcD/m0
そこまで分かる人でもAHKを使うんだな

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

これが原因?

176:名無しさん@お腹いっぱい。
09/02/01 04:11:44 Ul6ytoNp0
>>175
ありがとうございます!うまくいきました

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


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

179:名無しさん@お腹いっぱい。
09/02/01 16:35:34 gM29b+OF0
FileSelectFileでできるだろ?

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

181:名無しさん@お腹いっぱい。
09/02/01 19:02:57 o14t9yXp0
アイドル状態ってどうやって調べてるんだろ?

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

なんか改善策ないかなー

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

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

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

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

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

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

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

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

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

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

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

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

191:名無しさん@お腹いっぱい。
09/02/02 05:46:25 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?

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

192:名無しさん@お腹いっぱい。
09/02/02 07:28:16 ghjeIC8V0
>>191
このスレでhotkeys have been receivedを検索。
特定のウィンドウでの動作は
#IfWinActive, ahk_class TDefForm
;ここに処理を書く。
#IfWinActive
って具合に書くといいよ。

193:名無しさん@お腹いっぱい。
09/02/02 08:46:33 BYiuvhuI0
>>192
ありがとうございます。うまく行きました。

194:名無しさん@お腹いっぱい。
09/02/02 22:31:32 kP24v5Wa0
URLリンク(www2.atchs.jp)
こちらもつかってください。

195:名無しさん@お腹いっぱい。
09/02/02 22:52:47 99xZfHQW0
なぜ情報を拡散させたがるのか。
ここと流行らせるページの掲示板で十分だろ。

196:187
09/02/02 23:15:39 1rUYw8J20
自己レス。
WM_POWERBROADCAST(0x218)じゃ捕まえられないっぽいので、
フォアグランド窓をとれるかで判断した。

SetTimer, HogeHoge, 1000
HogeHoge:
 WinGet, fgId, ID, A
 if (!fgId) {
  Loop {
   WinGet, fgId, ID, A
   if (fgId)
    break
   Sleep, 1000
  }
  // ここに処理を書く
 }
 return


197:名無しさん@お腹いっぱい。
09/02/03 19:09:41 d0uBooiq0
あるウィンドウがアクティブなときのキー設定を
#IfWinActive, WinTitle
1:: F1
2:: F2
3:: F3
という感じで書いています。

そのウィンドウが非アクティブのときでも、
Win+Space 1 のように2ストロークキーで
同様のキー操作ができるようにしようと、
#Space::
Input, key, C I L1 T2, {Esc}, 1,2,3
IfWinExist, WinTitle
ControlSend, , key
という感じに書いたのですが、当然というか
1,2,3 が直接送られるだけで、F1,F2,F3 になってくれません。
If key = 1
ControlSend, , {F1}
というように逐一書いていくしかないでしょうか?
定義を二重に書かないといけないのでできれば避けたいんですが…

198:名無しさん@お腹いっぱい。
09/02/03 19:18:13 qfq9gHtT0
残念ながら無理(なはず)。
窓使いの憂鬱(のどか)とかkeyhacでいう「キーマップ」とか「キープレフィックス」に相当するものはない。
強いて言えば同じサブルーチンに飛ばすくらい。
ex) Gosub, 1 ; 1のキーに割り当てられている機能を呼ぶ

199:名無しさん@お腹いっぱい。
09/02/03 20:57:50 LGJ9Ljgs0
ControlSend, , {F%key%}
でできない?
 
あと、そういう場合は Autohotkey_L の #if expression 使うと
楽に実現できそうな気がする。

200:名無しさん@お腹いっぱい。
09/02/03 23:23:58 LGJ9Ljgs0
>>197
せっかくAutoHotkey_L使ってるので、試してみた。
あとこのスレでURL出てなかったので出しておく。
URLリンク(www.autohotkey.net)
 
;---------------------------------------------
#if WinActive("無題 - メモ帳")
or (A_ThisHotkey=="#Space"
and A_TimeSinceThisHotkey<=2000
and WinExist("無題 - メモ帳"))
1::msgbox, syori 1
2::msgbox, syori 2
3::msgbox, syori 3
#if
#Space::Return ; A_ThisHotkeyに記録するために必要
;---------------------------------------------
 
これでメモ帳がアクティブな時か、
メモ帳がある時にWin+Spaceしてから
2秒以内に各キーを押すと処理が実行されて、
そうでない時は普通に各キーが送られる。


201:名無しさん@お腹いっぱい。
09/02/03 23:26:30 LGJ9Ljgs0
ちなみにキーマップはこんな感じで書ける。
 
;---------------------------------------------
keymap:=0
Exit
#if keymap==1
1::a
2::x
#if keymap==2
1::b
2::y
#if keymap==3
1::c
2::z
#If
; F12を押すたびにキーマップ切り替え
F12::keymap++ == 3 ? keymap:=0 :
;---------------------------------------------
 
AutoHotkey_L便利だと思うんだけど…
こういう需要あんまり無いのかな?

202:名無しさん@お腹いっぱい。
09/02/04 00:16:05 53JDVpb00
いや、あると思う。
窓使いの憂鬱とかでkeymapでの定義に慣れた人には断然分かりやすいとは思う。

というか _L って安定してる?
ウニコード化してくんないかなぁ。

203:199
09/02/04 00:50:50 mEq9h9q70
>>202
環境によるかもしれないけど、むしろ
俺の環境では本家より安定してるかな。
WinXP SP3。
本家の使ってるとスクリプトリロードさせた時に、
たまにエラー出るんだけど_Lだと今のところない。
単に俺の書いてるスクリプトがおかしいのかもしれないが…
 
もし使う時に注意する事があるとしたら、
#if expression使う時に、時間かかる判定しないように
気をつけるくらいかな。一応タイムアウト時間も指定できる。
 
3ヶ月くらい使ってるけど今のところ不満は無いです。
 
Unicode化は…して欲しいね。

204:名無しさん@お腹いっぱい。
09/02/04 15:39:07 MFTbk+bR0
時間がものすごくかかる演算をDLLで組もうと思うんだけど
参考になるサイトとかないかな
中身は単純にfor文とかを大量に繰り返して結果を返す、といったものなんだけど
ためしに
extern "C" __declspec(dllexport) INT WINAPI extracter(int x){
return 5*x;
}
こんな感じのDLL組んでDLLCALLで呼び出してみたけど上手く動作しなかったんだ…

205:名無しさん@お腹いっぱい。
09/02/04 18:27:03 k5e6IctL0
>>204
時間掛かる処理をさせるならLoadLibraryしてみたほうがいいよ

206:名無しさん@お腹いっぱい。
09/02/04 21:27:31 Ut7+efCd0
>204
多分呼び出し規約が stdcall になってるので関数名を extracter@4 にすれば呼び出せるかも。

207:206
09/02/04 21:38:23 Ut7+efCd0
補足。
dll 側のコードはそのままで、DllCall するときに extracter@4 で呼ぶって意味ね。VC だと _extracter@4 かも。
@以降の数字は引数に使用するスタックのサイズ。今回は int が 1 つなので 4。
gcc だと -Wl,-kill-at というオプションを渡すと @ 以降がなくなって extracter で呼べるようになるはず。
VC 側の同等オプションは知らね。DEF ファイル使えば制御はできると思う。

208:名無しさん@お腹いっぱい。
09/02/04 23:14:11 MFTbk+bR0
>>206-207


問題解決しますたありがと><

209:197
09/02/04 23:30:00 uksORcM50
>>198-201
ありがとうございます。
>>200 の方法でできました。
>>201 とか面白いですね。

210:名無しさん@お腹いっぱい。
09/02/05 03:44:32 He1nXNrH0
白背景に黒い文字を書いた画像を用意して
ImageSearchで*TransWhiteをオプションに指定したら真っ黒な場所に反応してしまう…
何か良い方法はないかな

211:名無しさん@お腹いっぱい。
09/02/05 03:58:21 Ctlz88MC0
初心者質問で申し訳ないんだけど、入力キー、回数、間隔時間を指定して
直前にアクティブなウインドウに対して、キー(コード)を送るスクリプトってどう書くの?
現状↓のような感じで詰まってる

DefaultKey=Enter
InputBox, OutputKey ,入力設定,KeyName で指定,,200,150,,,,,%DefaultKey%
if ErrorLevel != 0
 exit
else
 counter = 1
 Loop, 3
 {
  SendEvent, {%OutputKey%}
  SetKeyDelay, 100
  counter += 1
 }

212:名無しさん@お腹いっぱい。
09/02/05 05:28:16 JN8SH5jU0
連続した入力
{BS 5}のように、「{}」で囲んで、右に数値を指定すると、複数回押すことができる。
って書いてるけど。

213:名無しさん@お腹いっぱい。
09/02/05 11:01:00 6B3J8+du0
212の言うように
SetKeyDelay,100
SendEvent, {%OutputKey% 3}

とするか

Loop,3
{
 SendEvent, {%OutputKey%}
 Sleep,100
}
でいいんでね?

あとIfでExitしてるからこの場合の動作には影響ないと思うが
文法上はElseのあと { } で囲わないとまずくね?

214:名無しさん@お腹いっぱい。
09/02/05 14:59:25 Ctlz88MC0
>>212-213
レス、サンクス
やっぱ質問が悪かったか。今分からないのが、
・入力キー、回数、間隔 を一括で各変数に入れる関数(方法)
・入力キーはKeyNameで指定じゃなく、キーコードを直接受け取りたい
という感じ。ま、挫折するまで調べてみる

215:名無しさん@お腹いっぱい。
09/02/05 15:57:17 rxk2q+A70
アクティブウィンドウのプロセスのフルパスを
Autohotkey単体で取得することはできますか?
Winget, OutputVar, ProcessName, A で実行ファイル名は取得できたのですが
それから先がわかりません

216:名無しさん@お腹いっぱい。
09/02/05 16:12:39 JN8SH5jU0
>>215
ほい、前スレから。俺が教えて貰ったんだけどw
47 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/08/25(月) 23:01:23 ID:O2etOCIT0
eamatの日記
URLリンク(d.hatena.ne.jp)
にあると思う

48 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/08/25(月) 23:22:03 ID:iVqjz6P/0
URLリンク(d.hatena.ne.jp) の一番下

これ大元は流行らせるページ管理人氏のなんだけどそっちは今見れないね。
削除されちゃったんだろか。結構需要あると思うんだけど。

217:名無しさん@お腹いっぱい。
09/02/05 20:19:48 n8B6a3aC0
>>214
> ・入力キー、回数、間隔 を一括で各変数に入れる関数(方法)

こんな感じか?
HogeInputBoxを呼ぶと変数にキー名、回数、ディレイが入る
Gosub, HogeInputBox
return
HogeInputBox:
 Gui, Destroy
 Gui, +LastFound
 Gui, Add, Hotkey, vKeyName
 Gui, Add, Edit, vCount Number
 Gui, Add, UpDown
 Gui, Add, Edit, vDelay Number
 Gui, Add, UpDown
 Gui, Add, Button,, OK
 Gui, Show
 WinWaitClose, % "ahk_id " WinExist()
 return
ButtonOK:
 Gui, Submit
 return
GuiEscape:
 return

> ・入力キーはKeyNameで指定じゃなく、キーコードを直接受け取りたい
キー名から頑張って変換する・・・かな。
というか、キーコードって手入力前提でないの?
(上のサンプルだと KeyNameになるけど)


218:名無しさん@お腹いっぱい。
09/02/05 21:45:16 dLfvsoZw0
今押されているVirtualKeyCodeを得るならこんな感じ?
#Persistent
CoordMode,ToolTip,Screen
SetTimer,TipView,10
Exit
TipView:
ToolTip, % GetAllVirtualKeyState(),0,0
Return
GetAllVirtualKeyState(){
str:="",tf:=A_FormatInteger
SetFormat, Integer, H
Loop, 0x100
str:=str (GetKeyState("vk" SubStr(A_Index-1,3),"P") ? A_Index-1 "," : "")
SetFormat, Integer, %tf%
Return SubStr(str,1,-1)
}

219:名無しさん@お腹いっぱい。
09/02/06 03:17:46 wnkD34rd0
クリップボードに変更があったらその内容をテキストファイルに追記する、
というのを作ったのですが、下のだと数時間経つと使えなくなってしまいます。
AHKを再起動すればいいんですが毎回再起動するのも面倒です。
何か対策とか無いでしょうか?

#Persistent
Clipboard=
OnClipboardChange:
Run,"テキストファイルに追記するソフト起動"
tooltip clip
sleep,300
tooltip
return

220:名無しさん@お腹いっぱい。
09/02/06 03:43:37 /VPzv7st0
俺も過去にそれを作ったことがあった。

クリップボードバッファの領域に、スクショ画像などのテキスト以外の
巨大データが出現すると、エラーメッセージなしにAutoHotkeyが死んでしまう。

解決策は見つからなかった。うまい回避法はあるのかな?

221:名無しさん@お腹いっぱい。
09/02/06 05:09:20 ka9EMbek0
>>201を見て
キーマップのきりかえができることにおどろいたので


222:214
09/02/06 05:58:59 NAAOC5m30
>>217-218
こいつ・・・動くぞ、すげーー!

>というか、キーコードって手入力前提でないの?
最終的に send,{vkXX} という感じでやった方が楽かなーと思ったので

さて、>>218 の解読作業に移ります。ありがとう!!

223:名無しさん@お腹いっぱい。
09/02/07 02:39:29 81yNBSmE0
>>216
参考になりました
ありがとうございました

224:名無しさん@お腹いっぱい。
09/02/07 15:22:29 WmNZzOvm0
スクリプト内にGUIを表示するサブルーチンが複数あって、
それぞれのGUIの中で同じ名前のボタンを追加した場合、
ボタンを押したときに呼び出されるサブルーチンを区別することは
できないのでしょうか?
↓のようにすると二重定義でエラーになってしまいます。

Test1:
Gui, Add, Button, , 1
Return
Button1:
MsgBox, 1 in Test1
Return

Test2:
Gui, Add, Button, , 1
Return
Button1:
MsgBox, 1 in Test2
Return

225:名無しさん@お腹いっぱい。
09/02/07 15:33:57 AcAuyp/00
押しいなぁ。
ボタン名省略時のデフォルトサブルーチンラベルまで分かってて、ボタン名重複時のところが分かってない、と。
もう一度解説読んでみ。

226:名無しさん@お腹いっぱい。
09/02/07 15:37:05 AcAuyp/00
ん?もしかして Test1 と Test2 って別窓(GUI)にしたいのかな?
だったら、GUI番号を変えた二つのGUIを用意するか、毎回破棄(Destroy)するとかすればいい。
どっちにしろサブルーチンラベルの重複で怒られるとは思うけど。

227:224
09/02/07 15:46:42 WmNZzOvm0
>>225-226
あぁ G オプションってこういうときのためか
Gui, Add, Button, GButton1inTest2, 1
でいけました。ありがとうございました。


228:名無しさん@お腹いっぱい。
09/02/07 18:34:02 OHL9IjH/0
語学関係のもの(英検、TOEIC、留学)がまったくない私が
語学について聞かれたらなんて答えるべきですか?

229:名無しさん@お腹いっぱい。
09/02/07 22:07:43 vTbfdAUL0
ジュワワワジュワワ、 ジュワジュワジュジュワワワワワ?

230:名無しさん@お腹いっぱい。
09/02/07 22:16:28 WFpsFaYj0
面接官「ジュワ!ワタシジュワワイイビョウインシッテルヨワワ」

231:名無しさん@お腹いっぱい。
09/02/07 23:02:35 SzMrA22TP
Vista環境だと、コンマ使うショートカット(#,::Run,cmd みたいな)
のが動作しないみたいのがえらい不便だ。
これだけでXPに戻しそう…

232:名無しさん@お腹いっぱい。
09/02/07 23:46:19 +Kjk/oX50
>>231
スクリプトに何か問題があるんじゃない?
Vista64Ultで普通に動く・

233:名無しさん@お腹いっぱい。
09/02/08 13:37:15 lpNI9P4b0
>>231
原因決め付けすぎわろた。
おいらもVista環境だけど、そのスクリプトでまったく問題なく動くぜ。
AutoHotkey ver 1.0.47.06

234:名無しさん@お腹いっぱい。
09/02/08 20:56:33 sclNqxNe0
AutoHotKey.iniに、ウインドウなどを定期監視するルーチンをつけくわえたいと思っているのですが、
上手く動作しません。

AutoHotKey.iniの最後に以下のように書き足して、reloadしているのですが、SplashTextがでてくれないのです

#Persistent

SetTimer, OnTimer, 1000
return

OnTimer:
SplashTextOn,,, MAGE...
Sleep, 2000
SplashTextOff
return


235:234
09/02/08 21:13:15 sclNqxNe0
SetTimer, OnTimer, 1000
をAutoHotKey.iniの先頭の方に記述したらいけました。

これだと、上記とSetTimerとOnTimerの位置がちらばってしまうので、

SetTimer, OnTimer, 1000
Goto, NextOnTimer
OnTimer:
 SplashTextOn,,, MAGE...
 Sleep, 2000
 SplashTextOff
return
NextOnTimer:

+0::Send, 0000
: ;以下、ホットキーの設定が続く

という風にAutoHotKey.iniの最初の方に書いたら、
今度は、NextOnTimer: の後のホットキーの入力が、起動時(reload時)に誤爆してしまうようになりました。
上記例では、0000が強制発動します。

この辺の挙動がいまいちわかりません・・・
どこかに記述はありませんでしょうか?

236:名無しさん@お腹いっぱい。
09/02/08 21:14:11 yKg3PII70
> AutoHotKey.iniの最後に以下のように書き足して
            ~~~~~~~
ってのがマズいんじゃないかと。

> #Persistent
> SetTimer, OnTimer, 1000
この2行は多分ホットキー定義より後ろに書いてあると思うんで
ファイルの頭に持ってきた方がいい。

頭から読んで順次実行するところ(Autoexecブロック)として扱われていない
死にコード担ってると思う。

237:名無しさん@お腹いっぱい。
09/02/08 21:21:06 yKg3PII70
うひ。解決してやがるw

URLリンク(lukewarm.s101.xrea.com)
> スクリプトが読み込まれると、最初にReturnかExitが実行されるか、
> ホットキーラベルが記述されている行やスクリプトの終わりに達するまで、スクリプトが実行される。
> この部分のことを、auto-executeセクションと呼ぶ。

これは Gotoがあっても同じなわけ。
で、ラベルって関数じゃないから上から読んで実行するから
Gotoで飛んで先のコードも順次実行するだけ。

要は
> Goto, NextOnTimer

return
にする


238:234
09/02/08 21:33:53 sclNqxNe0
>>236
なるほどホットキー定義より先に書かないといけないんですね。

>>234のコードを丸ごと先頭に書いても問題ない感じでした。
returnしてますけど、後ろのホットキー定義はちゃんと定義されるんですね・・・。

いろいろ試してみて、>>234のコードをAutoHotkey.iniに書かずに、
別ファイルに書いて、最初に#includeするようにしても問題ない感じなので、
管理楽だしそっちで行ってみようと思います。

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



239:234
09/02/08 21:34:56 sclNqxNe0
>>237
記述もあったのか!理解が深まり助かりました。
ありがとう。

240:名無しさん@お腹いっぱい。
09/02/09 22:16:03 s0aAmitG0
キーのリマップで、キーリピートしないようにするにはどうしたらよいですか?
回数指定で1としても、Pauseキーなどからリマップしたものは
リピートしてしまうようなのですが・・・

241:名無しさん@お腹いっぱい。
09/02/09 22:25:30 qaZxLjlv0
リマップは所詮リマップなので

キーを Send したあとに、キーが離されるのを待つようにすればいい
KeyWaitを使うと楽

242:240
09/02/09 23:33:15 s0aAmitG0
>>241
なるほど、うまくいきました。ありがとうございます。
Pause::
KeyWait, Pause
Send, {キー}
return

243:名無しさん@お腹いっぱい。
09/02/10 00:02:17 y3Hmn7JH0
このソフト今しがた知ったんだけど使えるようになるとかなり便利そうだなw
コンピュータ言語知らない俺には敷居高いが・・・

10分毎に同じ操作を永遠に繰り返させるのってどういうコードになるんだ?

244:名無しさん@お腹いっぱい。
09/02/10 00:05:43 2gVYx17+0
タイマーでおk

245:名無しさん@お腹いっぱい。
09/02/10 00:08:18 y3Hmn7JH0
>>244
上でも出てる
SetTimer,OnTimer,xxxxxx
でいけるわけね納得

246:名無しさん@お腹いっぱい。
09/02/10 02:28:03 5/WxU7qW0
AutoHotkey楽しすぎ

ちょっとした自動応答的なボタン押下とか
(AutoPushButton win32がVistaで動かないし、ウインドウ検知方法も融通も利かなくて長い間代替探してた)
長い間最前面にでしゃばってくるスプラッシュウインドウを後ろに回したりとかしようとして、
Delphiでプログラムでも組むか、マンドクセ('A`)と思ってたことが、
思いついてからものの数分でできてしまうじゃないかー。
すばらしいソフトだ。
簡易言語だと心の底で馬鹿にしてて正直すまなかった。

ホットキー定義以外のことにも使い出してから、やたら普段の操作が楽になったよ。

247:名無しさん@お腹いっぱい。
09/02/10 04:00:00 4LTAENh50
ウィンドウを作成してチェックボックスをクリックしたら
タスクトレイに収納されてしまいます
チェックはできているようなのですが

どうすれば常にウィンドウを表示できるのでしょうか


Gui, Add, Text, x10 y20 w90, test
Gui, Add, Checkbox, vStateOK gCheckOK, ok ?
Gui, Show, x100 y100 h100 w110, aaa
Return


CheckOK:
GUI, Submit
OK = StateOK
Return


#a::MsgBox,OK: %OK%



248:名無しさん@お腹いっぱい。
09/02/10 04:10:55 CECmGA9+0
タスクトレイにあるアプリを右クリックしたときに出るメニュー

これをPostMessageで実行したいのですが
WinTitleには何を指定すればよいのでしょうか
アプリのウィンドウを指定しても駄目みたいです

249:名無しさん@お腹いっぱい。
09/02/10 04:36:17 0gok775Y0
>>247
GUI, Submit , NoHide
「NoHide」を指定すると、ウィンドウを非表示にせずに、変数への反映だけを行う。

>>248
とりあえずDetectHiddenText, On|Off を使ってるかどうかだね。

250:名無しさん@お腹いっぱい。
09/02/10 04:37:04 0gok775Y0
はい間違えたー
DetectHiddenWindows

251:247
09/02/10 04:38:07 4LTAENh50
>>249
おお、ありがとうございます。


252:248
09/02/10 07:49:43 s6avSLrT0
>>249
ありがとうございます
基本的なことだったんですね
スレ汚し失礼しました

253:名無しさん@お腹いっぱい。
09/02/11 20:27:22 oCH0A50w0
どうにもうまくいかないので教えてください。
Firefoxでステータスバーに出るURLを取得しようとしているのですが
StatusBarGetText WinGetText WinGetText では空白のままで何も取得できません。
どなたかFirefoxのステータスバーの情報を取得する方法を教えてください。

254:名無しさん@お腹いっぱい。
09/02/11 20:53:00 i+mKzUyY0
Window Spy で見たら分かると思うけど
ステータスバー(に見える所)のクラスが ahk_class MozillaUIWindowClass なはず。
で、これって普通のウィンドウのステータスバーとは違ってAHKのコマンドじゃ情報とれない。

255:名無しさん@お腹いっぱい。
09/02/11 21:20:11 vlusE0/P0
operaとかffとか何かと難しいわな

256:253
09/02/11 21:26:56 oCH0A50w0
皆様どうもありがとうございます。
どうにもならん事もあるのですね。

257:名無しさん@お腹いっぱい。
09/02/11 21:36:16 PyctzTlz0
流行らせるページのMouseGesture.ahkを使ってるのですが、他のスクリプトと同時にincludeができません……

#include MouseGesture.ahk
#include aaa.ahk
return
とするとタスクトレイの右クリックメニューにはMouseGestureのメニューが追加されますが
MouseGesture自体は動きません。aaa.ahkは読み込まれているようです。
#include 1.ahkの行を消すと普通に動きます。
説明のページに書いてある「Gosub,MG_Init」なども適当に追加してみましたが、
あまり変わり映えがしません……
何が悪いのかどなたか教えていただけませんか;

258:名無しさん@お腹いっぱい。
09/02/11 21:56:06 eSu8v8vr0
じゃあ別々に動かせ

259:名無しさん@お腹いっぱい。
09/02/12 18:55:35 Cq/OSsWb0
ブラウザ上の画像を保存する関数ってないの?

260:名無しさん@お腹いっぱい。
09/02/12 19:25:19 nX4GYxrz0
ない

261:名無しさん@お腹いっぱい。
09/02/12 23:46:28 iXdCSKaG0
作れば良いだけだがな

初心者は関数ってのは組込のを使うだけだと思ってるようだが
プログラムでもスクリプトでもこういった言語では
関数ってのは作るものだから
まあ中には関数が作れない言語もあるけど、これは該当しないし

262:名無しさん@お腹いっぱい。
09/02/13 00:34:12 EUev75pp0
作るってもキーマクロでそ

263:名無しさん@お腹いっぱい。
09/02/13 00:39:11 tq73/xcp0
いや、あらゆる処理が作れるだろ、dll呼び出しもできるし

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

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

265:名無しさん@お腹いっぱい。
09/02/13 01:15:10 EUev75pp0
>>263
確かにそうだけどさ、、AHKの範疇は超えちまうわな


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

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

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


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

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

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

if hoge = 1 else
{
msgbox,hello!
}

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

269:名無しさん@お腹いっぱい。
09/02/14 06:39:35 xPcJgk5F0
論理否定

270:名無しさん@お腹いっぱい。
09/02/14 07:54:37 TE2mD3kq0
if hoge != 1

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

272:名無しさん@お腹いっぱい。
09/02/14 10:14:14 dHhfIlz20
>268
C に unless はないべ。Perl とか Ruby にはあるらしいが。

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

274:名無しさん@お腹いっぱい。
09/02/14 13:19:42 T1oNA6o40
iniファイルに書いたkeyをHotkeyにアサインした場合ってどう書くの?

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

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

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

275:名無しさん@お腹いっぱい。
09/02/14 14:30:36 7OA6UMgE0
Hotkey, %h_key%, Label で普通に割り当てできるが?

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

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

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

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

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

278:名無しさん@お腹いっぱい。
09/02/14 20:29:40 FTwXZkWh0
>>276
なぁオマエ一言多いとかリアルで言われないか?

279:名無しさん@お腹いっぱい。
09/02/14 20:58:12 mkT/24Fx0
>>278
オマエ一言多い

280:名無しさん@お腹いっぱい。
09/02/14 21:24:53 sliL46ld0
>>279
オマエ一こt(ry

281:名無しさん@お腹いっぱい。
09/02/14 21:53:18 fL3JIfIu0
トレイアイコンをクリックしたら実行するってどうやるの?

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

283:名無しさん@お腹いっぱい。
09/02/15 14:03:58 BLcyg5Ix0
以上、本人でした。

284:名無しさん@お腹いっぱい。
09/02/15 14:16:47 4Lz/N4h80
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

285:名無しさん@お腹いっぱい。
09/02/15 16:34:58 WX2c84/Q0
まあ、スマートではないな>>276

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

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

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

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


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

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

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

292:名無しさん@お腹いっぱい。
09/02/16 06:36:37 DfB2sRU60
>>289
なるほど
その手がありましたか
やってみます

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

294:名無しさん@お腹いっぱい。
09/02/16 09:29:13 gRNTeVF80
ggrksが来るぞ

295:名無しさん@お腹いっぱい。
09/02/16 10:28:05 m36Y1Mz60
絶対領域はググっても違うもんばっか出てくる。
URLリンク(www.forest.impress.co.jp)

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

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

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

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

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

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

gui,show

ButtonExit:
ExitApp

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

300:名無しさん@お腹いっぱい。
09/02/17 00:43:51 p7oLYgT60
gui,show
return
ここで終わらせないとExitAppまでいっちゃうぞ。

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

302:274
09/02/17 01:36:11 ChZCT6AI0
>>275-276
ありがとうございます。無事できました。
276さんの書いていることは自分なりに勉強になりました。

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

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

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

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

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

306:名無しさん@お腹いっぱい。
09/02/18 12:29:43 YsZiDyJK0
レジストリの値を読むとか?

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


308:名無しさん@お腹いっぱい。
09/02/18 19:06:54 FVUyG2Or0
>>307
つ 特殊記号のエスケープ
  URLリンク(lukewarm.s101.xrea.com)


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

310:名無しさん@お腹いっぱい。
09/02/18 20:56:25 o28us3FR0
>>308
ありがとう
解決しました

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

312:名無しさん@お腹いっぱい。
09/02/19 00:58:08 YWf8g0hR0
timerでreload仕込むとか

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

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

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

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

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

315:名無しさん@お腹いっぱい。
09/02/19 12:09:33 BAYW6hF70
流れ無視して悪いがさっぱり分からんので、教えて頂きたい

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


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

317:名無しさん@お腹いっぱい。
09/02/19 13:27:25 IHzf1wv30
適当に作った。かっこ悪い。

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

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

319:名無しさん@お腹いっぱい。
09/02/20 18:36:07 +ofqUOOa0
vistaじゃFileSetTime使えないのかな

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

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

322:320
09/02/21 22:10:01 FzZoDrMY0
>>321
ありがとうございます
助かりました

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

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

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

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

326:名無しさん@お腹いっぱい。
09/02/22 22:58:01 qnu0ZxRB0
>マルチプラットフォーム

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

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

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

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

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


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

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

331:名無しさん@お腹いっぱい。
09/02/23 23:50:07 KDZEcOqx0
結構書き方違う

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

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

333:名無しさん@お腹いっぱい。
09/02/24 03:48:04 nmUnQgbz0
If title = 0

334:332
09/02/24 04:06:13 mnDWmi6d0
>>333
ありがとうです!
盲点でした。

335:名無しさん@お腹いっぱい。
09/02/24 06:40:25 9IBsCb9z0
変数は常に%%で囲むっていう風に統一してくれればいいのに。

336:名無しさん@お腹いっぱい。
09/02/24 08:53:53 hmO2qa6n0
if 1 = 0

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

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

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


339:名無しさん@お腹いっぱい。
09/02/24 15:23:09 A2x/mr5E0
あぷろだにまだ上がってるよ
URLリンク(lukewarm.s101.xrea.com)

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

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

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

341:名無しさん@お腹いっぱい。
09/02/26 14:47:02 qGUJzHwS0
最長マッチのHotstringを作りたいのですが
どうすればよいのでしょうか




342:名無しさん@お腹いっぱい。
09/02/26 17:32:35 zx85xhcp0
Feb 25, 2009
Version 1.0.48 is released.

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

344:名無しさん@お腹いっぱい。
09/02/26 21:06:58 eljuCyAE0
URLリンク(www.autohotkey.com) の適当な訳

1.0.48 - February 25, 2009

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

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


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch