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 以降も参照
52 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 05:15:57 ID:uxVSj97F0] 別PCの何をどのくらい操作したいのかでも どんなソフト使うべきか決まるよ。 vncとかsshでも済むかも知れないし。
53 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 07:31:38 ID:p6B3/HqS0] TrackWheelのreadmeが参考になりすぎて困るので、 Googleサイトとかでページを作って検索にひっかかるようにすると、 幸せになる人がもうちょっと増えると思うんだけども
54 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 09:11:37 ID:JIZG7BfL0] なんという丁寧なドキュメント・・・
55 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 10:11:15 ID:D35r6xpC0] >>49 つ ttp://www.geocities.jp/mirrorhenkan/
56 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 10:32:20 ID:1GxGvmcA0] >>51 synergyよりも最近の流行はこれ 【マウス&キーボード共有】Input Director pc11.2ch.net/test/read.cgi/software/1226727210/
57 名前:33 mailto:sage [2009/01/04(日) 12:18:27 ID:/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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 12:50:39 ID:1GxGvmcA0] えらい器用なことやってますねw ネトゲ廃人の気合の入れようは異常w
59 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 12:52:01 ID:o7CXEDIT0] >>53 乱暴につくってみた ttp://sites.google.com/site/agkh6mze/ CSS使えなくて面倒だった
60 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 14:48:48 ID:FFtevMUI0] おつー
61 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 15:38:31 ID:dyR0JXVY0] >>59 乙です 本当にすごいw参考になるです
62 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 16:32:52 ID:1GxGvmcA0] すげえ力作ww
63 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 02:28:31 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 12:47:49 ID:RJg40VRS0] ついでにも一個要望 本末転倒だがチョン押し時の Send,{Mbutton} をヌッ殺すオプションが欲しい。 というよりタイムアウトした場合用の TW_POSTACTION が欲しい。 オートスクロールは使わないがAHKからHookかけてMbutton使いたい用途は山ほどある。 数行足すだけで済むものなので今は適当に改造して使わせてもらってますが、 更新が頻繁で追っかけるの大変になってきたので、機能として盛り込んでもらえると嬉しいなっと。
65 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 14:08:25 ID:K2RPyvk10] > 秀丸の分割ペイン切替がなくなったのは秀使いとしては地味にクリティカル 楽だったので組み込んだ > 組込みで使う場合も A_LineNumberはファイルごとの行数になる 知らなかったorz。無駄だから消した > OnExitの任意指定ってなくなった? 無くなった。でも呼ばなくても平気なはずなので、Initから外した。一応Docに追記した。 > 基準をA_LineFileと同じディレクトリにして欲しい 採用。俺も面倒だったw > タイムアウトした場合用の TW_POSTACTION 既にあるよ。 ttp://sites.google.com/site/agkh6mze/trackwheel - ページが大きいので分割した - 秀丸用対応の復活(Autoでやる) - ワーキングディレクトリをTrackWheelのあるディレクトリとした(人によってはデカい) - IEの設定が間違ってたorz
66 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 14:10:00 ID:K2RPyvk10] >> タイムアウトした場合用の TW_POSTACTION >既にあるよ。 Iniにはないので自分で書いてね、ってこと
67 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 17:30:40 ID:RJg40VRS0] >TW_POSTACTION すんませんまさに望んでた通りの動作でした。 TWの外に MButton: 置いて自制御する場合と混同してました。 >>65 (・∀・)イイ!! 秀の場合は HorzをScroll2に指定するといい感じ。 全般的にScrooll(つまみドラッグエミュ)は慣れてないせいか操作が難しい。 うまいことコツが掴めるようになると快適なのかな。
68 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 20:40:49 ID:DVBHOCyB0] SQLiteModule version1.1 ttp://sites.google.com/site/63cabinet/Home 内部仕様変更だけ Dynamic Functionはいまだ理解できず (どんなとき使えばいいんだ?) 勝手に便乗 昔Google Page Createrで同じようなの作ったけどすぐ削除された 個人的ファイル置き場にちょうどいいかな
69 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 21:00:13 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/05(月) 21:41:20 ID:DVBHOCyB0] >>69 これは分かりやすい 理解したけど問題は列数か 頑張ってみます
71 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 18:24:12 ID:RYrDeuzr0] TrackWheel はコア部分変更以来、小さく動かしてゆっくりスクロールする動作が苦手になってる感じ >行数 = Round((移動量-動作閾値分の補正) / 動作感度) これだと tY=2 sY=10 ($Default) のとき Yが 7以上じゃないとスクロールが発生してくれないけど しきい値を越えたら、まずは 1行動いてくれるほうがなめらかになる感じ。 value := (value-t+s)//s とか。 あとWindowClassやControlClassの指定は部分じゃなくて前方一致? ContexterのリストビューがスクロールしないのでSpyで見たら WindowsForms10.SysListView32.app32 とかいう長ったらしいコントロール名だった。
72 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 18:54:27 ID:w/0/pa630] TrackWheelで左右に動かすとY軸が動くようにしているのは俺だけだろうな 上下で動かすよりなんとなく楽な感じがするんだよね
73 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 19:32:47 ID:1sWyUvxb0] > しきい値を越えたら、まずは 1行動いてくれるほうがなめらかになる感じ そういえば、前はそうなってたわ。 Round じゃなくて Ceil 使えばいいか > 部分じゃなくて前方一致? 誤爆がね、ってことでCaseLessの完全一致。 ワイルドカードで *Hoge* と出来るようにするよ。 つか、さすがに流れの遅いここで、このネタでスレが埋まるのはそろそろ悪い気がしてきた。。。 ブログでもいいんだけど気軽さがなぁ...この辺使わして貰っても良いかな ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1092315194/
74 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 22:44:52 ID:dP98pG5w0] 横から見てるだけでもいろいろ参考になるから、このまま続けてもOKと俺は思う
75 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 00:00:05 ID:dZ7SwV0k0] じゃ、何人かは使っているらしいんで ttp://sites.google.com/site/agkh6mze/trackwheel [V.5] - Altキー押下時にスクロール後にSleepする設定を加えた - サムドラッグエミュレート抑止オプションを追加 - スクロール方法の自動判別で Scroll2 を優先するオプションを追加(V.3と同じ判定になる) - デバッグコードが残っていたのを削除 [V.4] - 設定しても何もなかったオプション項目に意味を持たせた - 【重大】スクロール量の算出方式で閾値を超えた時に1行動くようにした >>73 - クラス名定義でワイルドカードで中間一致を追加 >>73
76 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 10:56:35 ID: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 www.ccleaner.com/ >>>>>>>>>>( Window Title & Class )<<<<<<<<<<< Piriform CCleaner ahk_class #32770
77 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 12:08:16 ID:xVdEkJsk0] >>76 あまり参考にならないかもしれないけど、うちの環境では問題なく動作したよ。 OS:WindowsVista CCleaner 2.15.815
78 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 12:16:41 ID:RDJAsW630] >>76 俺も試してみたがちゃんと機能したよ
79 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 12:19:13 ID:RDJAsW630] あ、ちなみに OS:WinXP SP3 CCleaner v2.14.750 そしてアップデートあるのに気がつきました
80 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 12:36:32 ID:Uc2zWhw/0] レス感謝です。CCleaner 2.15.815で同じバージョンですね。 先ほど眠っていたXPに同じくセットすると、此方は問題無く 起動しました。因みにVistaのエアロはどうなってますか 私はオンオフともやはりCCleanerだけ動作しません。 77氏は問題無くVistaでも動作と言う事は環境問題かな
81 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 12:53:14 ID:9ldsyH9N0] 思ったより難しそうだけど、習得率はVBSとどっちが簡単ですか?
82 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 13:54:08 ID:QS/Psi5l0] 言語仕様としてはVBSの方が整理されている。 でも、ほとんどの人がAHKを使う理由は、キー割り当てや簡易GUI構築など、 VBSでは代替できない機能が目当てだと思うんで、 「習得のしやすさ」で選ぶ二択じゃない気がする。
83 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 14:24:04 ID:9ldsyH9N0] ちらっと見ただけだけど、面白そうな事が出来そうだな感じだったので 難易度はどれくらいなのかなと思って wshくらいの難易度で覚えられるならやってみたいけど あまり本格的なものだとすぐあきらめそうだなと
84 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 14:38:13 ID:XsghDILe0] wsh(VBA,JavaScript)ができるなら大丈夫だろ。 俺もなんとかなってる。 むしろ、AHKはかなりDSL色が強くて非常に独自言語っぽく、 他の言語だと簡単に書けたり、どの言語も同じように書けるのに、 AHKは変な書き方しなくちゃならなかったり、ちょっとクセがある。
85 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 15:16:28 ID:BZ/65qiJ0] >>81 おいらも2週間前にAutoHotkeyを知ったばかりの新参だけど、 「面白そうなこと」というのが具体的に決まっているのであれば、 やってみたらいいんじゃないかな。 ちなみに、おいらは前スレで紹介されてたモールス信号スクリプトを使って和文を打てるようにしたり、 物理演算シミュレーションソフトのPhunにちょっと遊べるを機能を追加したりして遊んでる。 後者のスクリプトは下手なりにソースコード晒して公開したのにウィルスと疑われてるけどなw チラ裏すまそ。
86 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:33:37 ID:9ldsyH9N0] レスありがとう ほんとにまだちょっと見た程度なので 具体的にやりたいものが決まってるわけではないんだけど いろいろ応用が利きそうかなと 途中で挫折しなかったらまた来てまます
87 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 17:46:00 ID:dEH4tJQQ0] キー置き換えっつースタンスと、バッチ代わりとか簡易GUI作成ツールとかってスタンスで 大分違いが出そう。。。 mayu+WSH(+マウ筋)から AHKに完全移行したけど、最初はキー置き換えだけしかしなかったなぁ
88 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 19:41:53 ID:JFwvyFAk0] mayu+AHK(非常駐スクリプト)で運用。
89 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 01:54:28 ID:1FFYSN/50] 質問です。 右クリックを押している間、 右クリックを連打するスクリプトってどう書けばいいんでしょうか? If Rbutton loop { click,rbutton sleep, 100 } 試行錯誤してもこの程度しかわかりませんでした。 押し下げ状態とかの記述とかも流行らせるを見てもよくわかりません。 よろしくお願いします。
90 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/15(木) 02:33:30 ID:kckjR1IW0] 4と出る筈が、何で13になるの? ichi:=1 tasu:=+ san:=3 msgbox,% ichi tasu san return
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? というエラーメッセージが出てしまいます。
192 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 07:28:16 ID:ghjeIC8V0] >>191 このスレでhotkeys have been receivedを検索。 特定のウィンドウでの動作は #IfWinActive, ahk_class TDefForm ;ここに処理を書く。 #IfWinActive って具合に書くといいよ。
193 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 08:46:33 ID:BYiuvhuI0] >>192 ありがとうございます。うまく行きました。
194 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 22:31:32 ID:kP24v5Wa0] www2.atchs.jp/test/read.cgi/pcpc/5/l50 こちらもつかってください。
195 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/02(月) 22:52:47 ID:99xZfHQW0] なぜ情報を拡散させたがるのか。 ここと流行らせるページの掲示板で十分だろ。
196 名前:187 mailto:sage [2009/02/02(月) 23:15:39 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 19:09:41 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 19:18:13 ID:qfq9gHtT0] 残念ながら無理(なはず)。 窓使いの憂鬱(のどか)とかkeyhacでいう「キーマップ」とか「キープレフィックス」に相当するものはない。 強いて言えば同じサブルーチンに飛ばすくらい。 ex) Gosub, 1 ; 1のキーに割り当てられている機能を呼ぶ
199 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 20:57:50 ID:LGJ9Ljgs0] ControlSend, , {F%key%} でできない? あと、そういう場合は Autohotkey_L の #if expression 使うと 楽に実現できそうな気がする。
200 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 23:23:58 ID:LGJ9Ljgs0] >>197 せっかくAutoHotkey_L使ってるので、試してみた。 あとこのスレでURL出てなかったので出しておく。 ttp://www.autohotkey.net/~Lexikos/AutoHotkey_L/ ;--------------------------------------------- #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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/03(火) 23:26:30 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 00:16:05 ID:53JDVpb00] いや、あると思う。 窓使いの憂鬱とかでkeymapでの定義に慣れた人には断然分かりやすいとは思う。 というか _L って安定してる? ウニコード化してくんないかなぁ。
203 名前:199 mailto:sage [2009/02/04(水) 00:50:50 ID:mEq9h9q70] >>202 環境によるかもしれないけど、むしろ 俺の環境では本家より安定してるかな。 WinXP SP3。 本家の使ってるとスクリプトリロードさせた時に、 たまにエラー出るんだけど_Lだと今のところない。 単に俺の書いてるスクリプトがおかしいのかもしれないが… もし使う時に注意する事があるとしたら、 #if expression使う時に、時間かかる判定しないように 気をつけるくらいかな。一応タイムアウト時間も指定できる。 3ヶ月くらい使ってるけど今のところ不満は無いです。 Unicode化は…して欲しいね。
204 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 15:39:07 ID:MFTbk+bR0] 時間がものすごくかかる演算をDLLで組もうと思うんだけど 参考になるサイトとかないかな 中身は単純にfor文とかを大量に繰り返して結果を返す、といったものなんだけど ためしに extern "C" __declspec(dllexport) INT WINAPI extracter(int x){ return 5*x; } こんな感じのDLL組んでDLLCALLで呼び出してみたけど上手く動作しなかったんだ…
205 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 18:27:03 ID:k5e6IctL0] >>204 時間掛かる処理をさせるならLoadLibraryしてみたほうがいいよ
206 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 21:27:31 ID:Ut7+efCd0] >204 多分呼び出し規約が stdcall になってるので関数名を extracter@4 にすれば呼び出せるかも。
207 名前:206 mailto:sage [2009/02/04(水) 21:38:23 ID:Ut7+efCd0] 補足。 dll 側のコードはそのままで、DllCall するときに extracter@4 で呼ぶって意味ね。VC だと _extracter@4 かも。 @以降の数字は引数に使用するスタックのサイズ。今回は int が 1 つなので 4。 gcc だと -Wl,-kill-at というオプションを渡すと @ 以降がなくなって extracter で呼べるようになるはず。 VC 側の同等オプションは知らね。DEF ファイル使えば制御はできると思う。
208 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/04(水) 23:14:11 ID:MFTbk+bR0] >>206-207 神 問題解決しますたありがと><
209 名前:197 mailto:sage [2009/02/04(水) 23:30:00 ID:uksORcM50] >>198-201 ありがとうございます。 >>200 の方法でできました。 >>201 とか面白いですね。
210 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 03:44:32 ID:He1nXNrH0] 白背景に黒い文字を書いた画像を用意して ImageSearchで*TransWhiteをオプションに指定したら真っ黒な場所に反応してしまう… 何か良い方法はないかな
211 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 03:58:21 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 05:28:16 ID:JN8SH5jU0] 連続した入力 {BS 5}のように、「{}」で囲んで、右に数値を指定すると、複数回押すことができる。 って書いてるけど。
213 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 11:01:00 ID:6B3J8+du0] 212の言うように SetKeyDelay,100 SendEvent, {%OutputKey% 3} とするか Loop,3 { SendEvent, {%OutputKey%} Sleep,100 } でいいんでね? あとIfでExitしてるからこの場合の動作には影響ないと思うが 文法上はElseのあと { } で囲わないとまずくね?
214 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 14:59:25 ID:Ctlz88MC0] >>212-213 レス、サンクス やっぱ質問が悪かったか。今分からないのが、 ・入力キー、回数、間隔 を一括で各変数に入れる関数(方法) ・入力キーはKeyNameで指定じゃなく、キーコードを直接受け取りたい という感じ。ま、挫折するまで調べてみる
215 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 15:57:17 ID:rxk2q+A70] アクティブウィンドウのプロセスのフルパスを Autohotkey単体で取得することはできますか? Winget, OutputVar, ProcessName, A で実行ファイル名は取得できたのですが それから先がわかりません
216 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 16:12:39 ID:JN8SH5jU0] >>215 ほい、前スレから。俺が教えて貰ったんだけどw 47 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/08/25(月) 23:01:23 ID:O2etOCIT0 eamatの日記 ttp://d.hatena.ne.jp/eamat/ にあると思う 48 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/08/25(月) 23:22:03 ID:iVqjz6P/0 ttp://d.hatena.ne.jp/eamat/20050826 の一番下 これ大元は流行らせるページ管理人氏のなんだけどそっちは今見れないね。 削除されちゃったんだろか。結構需要あると思うんだけど。
217 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 20:19:48 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/05(木) 21:45:16 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 03:17:46 ID:wnkD34rd0] クリップボードに変更があったらその内容をテキストファイルに追記する、 というのを作ったのですが、下のだと数時間経つと使えなくなってしまいます。 AHKを再起動すればいいんですが毎回再起動するのも面倒です。 何か対策とか無いでしょうか? #Persistent Clipboard= OnClipboardChange: Run,"テキストファイルに追記するソフト起動" tooltip clip sleep,300 tooltip return
220 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 03:43:37 ID:/VPzv7st0] 俺も過去にそれを作ったことがあった。 クリップボードバッファの領域に、スクショ画像などのテキスト以外の 巨大データが出現すると、エラーメッセージなしにAutoHotkeyが死んでしまう。 解決策は見つからなかった。うまい回避法はあるのかな?
221 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/06(金) 05:09:20 ID:ka9EMbek0] >>201 を見て キーマップのきりかえができることにおどろいたので
222 名前:214 mailto:sage [2009/02/06(金) 05:58:59 ID:NAAOC5m30] >>217-218 こいつ・・・動くぞ、すげーー! >というか、キーコードって手入力前提でないの? 最終的に send,{vkXX} という感じでやった方が楽かなーと思ったので さて、>>218 の解読作業に移ります。ありがとう!!
223 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 02:39:29 ID:81yNBSmE0] >>216 参考になりました ありがとうございました
224 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 15:22:29 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 15:33:57 ID:AcAuyp/00] 押しいなぁ。 ボタン名省略時のデフォルトサブルーチンラベルまで分かってて、ボタン名重複時のところが分かってない、と。 もう一度解説読んでみ。
226 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 15:37:05 ID:AcAuyp/00] ん?もしかして Test1 と Test2 って別窓(GUI)にしたいのかな? だったら、GUI番号を変えた二つのGUIを用意するか、毎回破棄(Destroy)するとかすればいい。 どっちにしろサブルーチンラベルの重複で怒られるとは思うけど。
227 名前:224 mailto:sage [2009/02/07(土) 15:46:42 ID:WmNZzOvm0] >>225-226 あぁ G オプションってこういうときのためか Gui, Add, Button, GButton1inTest2, 1 でいけました。ありがとうございました。
228 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 18:34:02 ID:OHL9IjH/0] 語学関係のもの(英検、TOEIC、留学)がまったくない私が 語学について聞かれたらなんて答えるべきですか?
229 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 22:07:43 ID:vTbfdAUL0] ジュワワワジュワワ、 ジュワジュワジュジュワワワワワ?
230 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 22:16:28 ID:WFpsFaYj0] 面接官「ジュワ!ワタシジュワワイイビョウインシッテルヨワワ」
231 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 23:02:35 ID:SzMrA22TP] Vista環境だと、コンマ使うショートカット(#,::Run,cmd みたいな) のが動作しないみたいのがえらい不便だ。 これだけでXPに戻しそう…
232 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/07(土) 23:46:19 ID:+Kjk/oX50] >>231 スクリプトに何か問題があるんじゃない? Vista64Ultで普通に動く・
233 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 13:37:15 ID:lpNI9P4b0] >>231 原因決め付けすぎわろた。 おいらもVista環境だけど、そのスクリプトでまったく問題なく動くぜ。 AutoHotkey ver 1.0.47.06
234 名前:名無しさん@お腹いっぱい。 [2009/02/08(日) 20:56:33 ID:sclNqxNe0] AutoHotKey.iniに、ウインドウなどを定期監視するルーチンをつけくわえたいと思っているのですが、 上手く動作しません。 AutoHotKey.iniの最後に以下のように書き足して、reloadしているのですが、SplashTextがでてくれないのです #Persistent SetTimer, OnTimer, 1000 return OnTimer: SplashTextOn,,, MAGE... Sleep, 2000 SplashTextOff return
235 名前:234 [2009/02/08(日) 21:13:15 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 21:14:11 ID:yKg3PII70] > AutoHotKey.iniの最後に以下のように書き足して ~~~~~~~ ってのがマズいんじゃないかと。 > #Persistent > SetTimer, OnTimer, 1000 この2行は多分ホットキー定義より後ろに書いてあると思うんで ファイルの頭に持ってきた方がいい。 頭から読んで順次実行するところ(Autoexecブロック)として扱われていない 死にコード担ってると思う。
237 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/08(日) 21:21:06 ID:yKg3PII70] うひ。解決してやがるw ttp://lukewarm.s101.xrea.com/Scripts.html#autoexecsection > スクリプトが読み込まれると、最初にReturnかExitが実行されるか、 > ホットキーラベルが記述されている行やスクリプトの終わりに達するまで、スクリプトが実行される。 > この部分のことを、auto-executeセクションと呼ぶ。 これは Gotoがあっても同じなわけ。 で、ラベルって関数じゃないから上から読んで実行するから Gotoで飛んで先のコードも順次実行するだけ。 要は > Goto, NextOnTimer を return にする
238 名前:234 mailto:sage [2009/02/08(日) 21:33:53 ID:sclNqxNe0] >>236 なるほどホットキー定義より先に書かないといけないんですね。 >>234 のコードを丸ごと先頭に書いても問題ない感じでした。 returnしてますけど、後ろのホットキー定義はちゃんと定義されるんですね・・・。 いろいろ試してみて、>>234 のコードをAutoHotkey.iniに書かずに、 別ファイルに書いて、最初に#includeするようにしても問題ない感じなので、 管理楽だしそっちで行ってみようと思います。 ありがとうございました。
239 名前:234 mailto:sage [2009/02/08(日) 21:34:56 ID:sclNqxNe0] >>237 記述もあったのか!理解が深まり助かりました。 ありがとう。
240 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/09(月) 22:16:03 ID:s0aAmitG0] キーのリマップで、キーリピートしないようにするにはどうしたらよいですか? 回数指定で1としても、Pauseキーなどからリマップしたものは リピートしてしまうようなのですが・・・
241 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/09(月) 22:25:30 ID:qaZxLjlv0] リマップは所詮リマップなので キーを Send したあとに、キーが離されるのを待つようにすればいい KeyWaitを使うと楽
242 名前:240 mailto:sage [2009/02/09(月) 23:33:15 ID:s0aAmitG0] >>241 なるほど、うまくいきました。ありがとうございます。 Pause:: KeyWait, Pause Send, {キー} return
243 名前:名無しさん@お腹いっぱい。 [2009/02/10(火) 00:02:17 ID:y3Hmn7JH0] このソフト今しがた知ったんだけど使えるようになるとかなり便利そうだなw コンピュータ言語知らない俺には敷居高いが・・・ 10分毎に同じ操作を永遠に繰り返させるのってどういうコードになるんだ?
244 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 00:05:43 ID:2gVYx17+0] タイマーでおk
245 名前:名無しさん@お腹いっぱい。 [2009/02/10(火) 00:08:18 ID:y3Hmn7JH0] >>244 上でも出てる SetTimer,OnTimer,xxxxxx でいけるわけね納得
246 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 02:28:03 ID:5/WxU7qW0] AutoHotkey楽しすぎ ちょっとした自動応答的なボタン押下とか (AutoPushButton win32がVistaで動かないし、ウインドウ検知方法も融通も利かなくて長い間代替探してた) 長い間最前面にでしゃばってくるスプラッシュウインドウを後ろに回したりとかしようとして、 Delphiでプログラムでも組むか、マンドクセ('A`)と思ってたことが、 思いついてからものの数分でできてしまうじゃないかー。 すばらしいソフトだ。 簡易言語だと心の底で馬鹿にしてて正直すまなかった。 ホットキー定義以外のことにも使い出してから、やたら普段の操作が楽になったよ。
247 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 04:00:00 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 04:10:55 ID:CECmGA9+0] タスクトレイにあるアプリを右クリックしたときに出るメニュー これをPostMessageで実行したいのですが WinTitleには何を指定すればよいのでしょうか アプリのウィンドウを指定しても駄目みたいです
249 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 04:36:17 ID:0gok775Y0] >>247 GUI, Submit , NoHide 「NoHide」を指定すると、ウィンドウを非表示にせずに、変数への反映だけを行う。 >>248 とりあえずDetectHiddenText, On|Off を使ってるかどうかだね。
250 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/10(火) 04:37:04 ID:0gok775Y0] はい間違えたー DetectHiddenWindows
251 名前:247 mailto:sage [2009/02/10(火) 04:38:07 ID:4LTAENh50] >>249 おお、ありがとうございます。
252 名前:248 mailto:sage [2009/02/10(火) 07:49:43 ID:s6avSLrT0] >>249 ありがとうございます 基本的なことだったんですね スレ汚し失礼しました
253 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/11(水) 20:27:22 ID:oCH0A50w0] どうにもうまくいかないので教えてください。 Firefoxでステータスバーに出るURLを取得しようとしているのですが StatusBarGetText WinGetText WinGetText では空白のままで何も取得できません。 どなたかFirefoxのステータスバーの情報を取得する方法を教えてください。
254 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/11(水) 20:53:00 ID:i+mKzUyY0] Window Spy で見たら分かると思うけど ステータスバー(に見える所)のクラスが ahk_class MozillaUIWindowClass なはず。 で、これって普通のウィンドウのステータスバーとは違ってAHKのコマンドじゃ情報とれない。
255 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/11(水) 21:20:11 ID:vlusE0/P0] operaとかffとか何かと難しいわな
256 名前:253 mailto:sage [2009/02/11(水) 21:26:56 ID:oCH0A50w0] 皆様どうもありがとうございます。 どうにもならん事もあるのですね。
257 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/11(水) 21:36:16 ID:PyctzTlz0] 流行らせるページのMouseGesture.ahkを使ってるのですが、他のスクリプトと同時にincludeができません…… #include MouseGesture.ahk #include aaa.ahk return とするとタスクトレイの右クリックメニューにはMouseGestureのメニューが追加されますが MouseGesture自体は動きません。aaa.ahkは読み込まれているようです。 #include 1.ahkの行を消すと普通に動きます。 説明のページに書いてある「Gosub,MG_Init」なども適当に追加してみましたが、 あまり変わり映えがしません…… 何が悪いのかどなたか教えていただけませんか;
258 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/11(水) 21:56:06 ID:eSu8v8vr0] じゃあ別々に動かせ
259 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/12(木) 18:55:35 ID:Cq/OSsWb0] ブラウザ上の画像を保存する関数ってないの?
260 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/12(木) 19:25:19 ID:nX4GYxrz0] ない
261 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/12(木) 23:46:28 ID:iXdCSKaG0] 作れば良いだけだがな 初心者は関数ってのは組込のを使うだけだと思ってるようだが プログラムでもスクリプトでもこういった言語では 関数ってのは作るものだから まあ中には関数が作れない言語もあるけど、これは該当しないし
262 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 00:34:12 ID:EUev75pp0] 作るってもキーマクロでそ
263 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 00:39:11 ID:tq73/xcp0] いや、あらゆる処理が作れるだろ、dll呼び出しもできるし
264 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 00:52:14 ID:P/hV8GiU0] AutoScriptWriter使えばキーマクロっぽいこともできるんだよな ほとんど利用したことはないが。 >257 例によってAutoExecuteセクションの記述飛ばしてて引っかかってるんじゃね?
265 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 01:15:10 ID:EUev75pp0] >>263 確かにそうだけどさ、、AHKの範疇は超えちまうわな AutoScriptWriter はテキストエディタのマクロみたく操作がコードになってくれるから 全然コマンドを知らない人が後からマニュアル見ながら改変するのには便利かなぁとは思う。 出来たコードはかなりしょっぱいけど・・・ マクロ登録の貧弱さという点で、UWSCとかより弱いと言われている点だな
266 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 09:36:47 ID:PZx5JzBI0] >>259 (比較的)楽な方法 ・キーマクロで何とかする ・適当なダウンローダ探して連携する ・URLDownloadToFile でhtmlを取得して、リンク抽出して個別に落す そりゃ、comやdll使えば何でも出来るだろうが、 やはりそこは作成者・利用者の技能と、それを現実的なコストで作れるかというのも考慮すべきではないかと。
267 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/13(金) 12:37:16 ID:P/hV8GiU0] ああ、ID:EUev75pp0 の言ってるキーマクロっていうのは Send や MouseClick によるキーエミュレーション動作のことなのか。 まんまエディタのキーボードマクロみたいな、ユーザー操作を記憶して 再実行してくれるものを想像してたから混乱したわ
268 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 04:16:50 ID:CZpXyFEM0] C などの unless って Autohotkey では使用できないのでしょうか unless に相当する物をしようしたいときは if hoge = 1 else { msgbox,hello! } こういう風に書くしかないのでしょうか それとももっとスマートな書き方があるのでしょうか
269 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 06:39:35 ID:xPcJgk5F0] 論理否定
270 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 07:54:37 ID:TE2mD3kq0] if hoge != 1
271 名前:名無しさん@お腹いっぱい。 [2009/02/14(土) 08:20:50 ID:iCnD4vMa0] >>269-270 ああ、なるほど 単純なことなのに分かっていませんでした ありがとうございます。
272 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 10:14:14 ID:dHhfIlz20] >268 C に unless はないべ。Perl とか Ruby にはあるらしいが。
273 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 12:25:08 ID:wQWZhHiF0] unlessって使う機会ある? ド・モルガンの法則を使えばいいだけじゃん。
274 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 13:19:42 ID:T1oNA6o40] iniファイルに書いたkeyをHotkeyにアサインした場合ってどう書くの? test.ini +++++++++++++++++++++ [hoge] Key=#z +++++++++++++++++++ IniRead, h_key, test.ini , hoge, Key ;MsgBox , "%h_key%" ;ちゃんと値は取得できている h_key:: ;↑ダメ %h_key%:: ;↑ダメ "%h_key%":: ;↑ダメ
275 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 14:30:36 ID:7OA6UMgE0] Hotkey, %h_key%, Label で普通に割り当てできるが?
276 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 15:21:43 ID:7uL3RWEi0] 惜しいなぁ。実に惜しい。 まぁ、>>275 の言うとおりなんだけど。 ラベルの方を動的に変えようっていうのはちょっと驚いた。 ホットキーラベルもサブルーチンラベルの一つ。 かつ、有効なホットキーラベルとして使える文字で構成されていなければならない。 ソース見たりしたわけじゃないけど、 AHKは起動(初期化)時にスクリプトを全部見て「::」のあるラベルを探して、 Hotkey, 「キー名」, 「キー名」 相当の事をしてホットキー登録しているはず。 で、これは実行するスクリプトのAutoexecブロックより先に行われている(はず)。 で、なんで>>274 が駄目かっつーと エラーダイアログ見れば分かると思うけど、実行時エラーじゃなく、 パース時のエラー(文法エラーとか)でしょ。 初期化時には、 h_key なんつー有効なホットキーはないし、 ユーザが使える変数なんかも無いわけで初期化エラーになる。 上から順に書いてあってその通りに処理しているように見えるけど実はそうじゃない。 IniRead までたどり着いてない。
277 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 17:55:29 ID:bE1sAjs50] WinSet,Topの >システムの設定によっては動作しない。 の条件ってなんだろう?
278 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 20:29:40 ID:FTwXZkWh0] >>276 なぁオマエ一言多いとかリアルで言われないか?
279 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 20:58:12 ID:mkT/24Fx0] >>278 オマエ一言多い
280 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 21:24:53 ID:sliL46ld0] >>279 オマエ一こt(ry
281 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/14(土) 21:53:18 ID:fL3JIfIu0] トレイアイコンをクリックしたら実行するってどうやるの?
282 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 12:01:39 ID:VXj0TK7a0] なんつーか、大したことないんだが274みたいな奴って発想力が面白い。 プログラムってスキルも大事だが発想力だと思う瞬間だったよ。
283 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 14:03:58 ID:BLcyg5Ix0] 以上、本人でした。
284 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 14:16:47 ID:4Lz/N4h80] ( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
285 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/15(日) 16:34:58 ID:WX2c84/Q0] まあ、スマートではないな>>276
286 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 02:28:52 ID:mgBRF9yu0] SetTimerで WinGetPos,, Ypos,,, A if (Ypos <= 30) WinMove, A,,, 19,,,, Ypos = return というのを回していると、Firefoxで右クリックメニューが一瞬で消えてしまいます。 間隔を500〜2000にしたり、同じ事をLoopでやってみても同じで、この現象が起きるのは Firefoxだけです。 どうかアドバイスお願いします
287 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 03:13:35 ID:mMn42qaU0] if(Ypos <= 30 && Ypos != 19) にしたらええんじゃないのか?
288 名前:名無しさん@お腹いっぱい。 [2009/02/16(月) 03:19:38 ID:axPHiozx0] クリックすれば指定されたurlに飛ぶような文字列を msgboxで出力したいのですがどうすればよいのでしょうか たとえば MsgBox,0, test,google という出力をして、そのgoogleの部分をクリックすればwww.google.co.jp/ に飛ぶのです。 htmlが使えるなら MsgBox,0, test,<a href="www.google.co.jp/ ">google</a> こういうことです
289 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:21:27 ID:w558LR820] >>288 GuiかMenu。 ポップアップメニューだと一回一回消えるから、Guiでつくればいいかもね。
290 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:25:35 ID:w558LR820] >>281 流行らせるページの「タスクトレイアイコン操作」で望みが叶うかも。 何を望んでいるのかはわからんが。
291 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 05:39:14 ID:w558LR820] >>286 簡易の絶対領域みたいだね。TTBaseプラグインでもあったな。
292 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 06:36:37 ID:DfB2sRU60] >>289 なるほど その手がありましたか やってみます
293 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 09:20:33 ID:HnxszwKY0] >>291 質問者じゃないけど、どういう事か教えてくれまいか
294 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 09:29:13 ID:gRNTeVF80] ggrksが来るぞ
295 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 10:28:05 ID:m36Y1Mz60] 絶対領域はググっても違うもんばっか出てくる。 www.forest.impress.co.jp/article/2008/05/15/zettai.html
296 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 13:34:08 ID:w558LR820] あれ?違った?>>295 みたいなことをしたいのかと思ったわw混乱させてゴメンね。
297 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 15:56:36 ID:dAYg3thQ0] >>290 それってタスクトレイアイコンを直接操作するためのものじゃないの?
298 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/16(月) 22:15:59 ID:mgBRF9yu0] >>287 即レスくれたのに遅くなってすみません、 if(Ypos <= 30 && Ypos != 19)にしたら快適動作で幸せです。 && Ypos != 19が必要だった理由が今ひとつ分かっていませんが勉強してみます。 有難うございました
299 名前:名無しさん@お腹いっぱい。 [2009/02/17(火) 00:33:23 ID:Uxje6XHz0] guiでウィンドウの中に exit ボタンを作成し そのボタンを押すとそのウィンドウを閉じるだけの物をつくりたいです はやらせるページのにあるものを使用して次のような物を作ったものの うまく動きません Gui,Add,Text,,testtest GUI,Add,Button,,Exit gui,show ButtonExit: ExitApp どこを直せばよいのでしょうか
300 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 00:43:51 ID:p7oLYgT60] gui,show return ここで終わらせないとExitAppまでいっちゃうぞ。
301 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 01:20:14 ID:Uxje6XHz0] >>300 あ、普通に動きました そりゃそうですね ご指摘ありがとうございます。
302 名前:274 mailto:sage [2009/02/17(火) 01:36:11 ID:ChZCT6AI0] >>275-276 ありがとうございます。無事できました。 276さんの書いていることは自分なりに勉強になりました。 便乗するようで悪いのですが、多重起動をしようとする際現状だと英語のメッセージが出るんですが Menu, TRAY, NoStandard のように消して、日本語にすることって可能でしょうか?
303 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 02:38:11 ID:t03ashNM0] ドッカーン! (⌒⌒⌒) ||| _____ /::::::::::::::::::::::::::\〜プーン /:::::::::::::::::::::::::::::::\〜プーン |:::::::::::::;;;;;;|_|_|_|_|〜プーン |;;;;;;;;;;ノ∪ \,) ,,/ ヽ〜 |::( 6∪ ー─◎─◎ )〜 |ノ (∵∴ ( o o)∴)〜 | ∪< ∵∵ 3 ∵> ムッキー! \ ⌒ ノ______ \_____/ | | ̄ ̄\ \ ___/ \ | | | ̄ ̄| |:::::::/ \___ \| | |__| |:::::::| \____|⊃⊂|__|__/ / |:::::/ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
304 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/17(火) 14:45:20 ID:Bio3yT//0] やろうと思えば、ウィンドウの監視と COntrolsettextで出来なくもなさそうだけど…
305 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 04:54:19 ID:ZSSUooit0] 若干スレ違いかもしれませんが、 WindowsのHDDコントローラ(ATA)のモードが、 UDMAになってるか、PIOになっているかを、 ahkから読み取るには、どのようにすればできそうでしょうか。 何台もPCを使っていると、いつのまにかPIOになっていることがあったので、 それを起動時にチェックしてバルーン通知したいと考えています。
306 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 12:29:43 ID:YsZiDyJK0] レジストリの値を読むとか?
307 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 17:28:59 ID:o28us3FR0] 括弧 { を入力した後 } を加えてカーソルを中に入れるように ~+[::Send,}{left} return と記述したのですが } と{left}しか送られません 他の括弧は たとえば<> 同じように ~+,::Send,>{left} return でうまくいってるのですが、どのようにしたら {} でも成功するでしょうか?
308 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 19:06:54 ID:FVUyG2Or0] >>307 つ 特殊記号のエスケープ ttp://lukewarm.s101.xrea.com/commands/Send.html
309 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 19:34:48 ID:29d3Le160] 俺も>>231 みたいに「 , 」(コンマ)を使うホットキーが使えなかった。 コンマ使うホットキーを今使いたいわけじゃないが、 もし必要になった時に困るので調べてみた。OSはWinXP SP3。 以下試したこと ×Hotkeyコマンド( Hotkey,% ","〜 ) ×Hotkeyラベル( ,:: 〜 ) ×GetKeyState(",","P")→状態取れず ×本体バージョンをあれこれ変えた ○別PCで同じスクリプトを試した(WinXP SP2) ○「 vkBCsc033 」形式で書く vkBCsc033を使った方が確実かもしれない。
310 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/18(水) 20:56:25 ID:o28us3FR0] >>308 ありがとう 解決しました
311 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 00:32:15 ID:nBgazVqW0] >>219-220 これの解決法ないでしょうか? 似たようなスクリプト作ったんですがやはり数分すると クリップボードの監視が無効になってしまいます。
312 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 00:58:08 ID:YWf8g0hR0] timerでreload仕込むとか
313 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 11:09:45 ID:KfP6MoHK0] OnClipboardChange: じゃなくて ClipWaitで監視してみるとか? あとはAPI のクリップボード関数で直接弄るか。 関係ないが、クリップボード内容がEXCELデータのときに ClipboardALLで丸ごと待避しようとするとExcelがハングする。 DllCall("GetClipboardOwner",Int) でオーナーウィンドウを調べて Excelがオーナーの時は テキスト内容だけ保存するようにして回避してるがちと面倒だ。
314 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 11:41:34 ID:KfP6MoHK0] そういや昔あったクリップボードユーティリティースレでもこの手の話題あったな。 確かクリップボードの変更通知はクリップボードビューアチェインに接続されたソフト間での バケツリレー方式で伝えられていくので、間に行儀の悪いソフトがいるとチェインから勝手に 外されてしまって、それ以降の変更通知が受け取れなくなるって話だったような。 巷によくあるクリップボード系ユーティリティーでは定期的にチェイン接続し直すことで 対策を取ってるとかだったと思う。 よくわからんがAHKでも ONMessage()で CallBackサポートされてるし、具体的なサンプルは clcl のソースとか見ればたぶんできるんじゃね。 英語できるんならAHK作者氏に対策方法添えて要望出すのが手っ取り早いとも思うけど。
315 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 12:09:33 ID:BAYW6hF70] 流れ無視して悪いがさっぱり分からんので、教えて頂きたい 例えば、 -t C:\Documents and Settings C:\Program Files というような文字列を、 -t "C:\Documents and Settings" "C:\Program Files" というように、パスっぽい文字列に引用符をつけるには、 どうすればいいのだろうか?
316 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 12:53:07 ID:IHzf1wv30] 文字列の中に実在するパスがあったら囲む、くらいじゃないの
317 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 13:27:25 ID:IHzf1wv30] 適当に作った。かっこ悪い。 Hoge(str) { StringSplit, arr, str, %A_Space% idx := 0 Loop { if (idx++ >= arr0) break c := arr0 - idx Loop { p := arr%idx% Loop, %c% i := idx + A_Index, p .= A_Space . arr%i% if FileExist(p) { arr%idx% := """" arr%idx%, idx += c, arr%idx% := arr%idx% . """" break } if (c-- < 1) break } } Loop, %arr0% ret .= ((A_index > 1) ? A_Space : "" ) . arr%A_Index% return ret }
318 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/19(木) 13:39:31 ID:BAYW6hF70] >>316-317 ぐはっ、わざわざ作って頂けるとは! よくそんなすぐに作れるな、初心者からすれば驚愕ですよ ありがとー
319 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/20(金) 18:36:07 ID:+ofqUOOa0] vistaじゃFileSetTime使えないのかな
320 名前:名無しさん@お腹いっぱい。 [2009/02/21(土) 21:01:51 ID:FzZoDrMY0] FirefoxにAlt+Rで、戻るを割り当てたいのですが、 autohotkeyからPostMessageを送って設定することは可能でしょうか? 可能であるなら、下の0x111,28690,0,,A に相当する値をお教えいただけないでしょうか? m(__)m !R::PostMessage,0x111,28690,0,,A ;// 戻るを割り当てたい firefoxでPDFを開くとフォーカスがacrobatに奪われるので、 autohotokeyを使って、戻るのキーを割り当てられないかと試行錯誤しております
321 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/21(土) 21:52:11 ID:0EOzQQjN0] うちは↓でいける @Fx3.0.6 on XP SP3 #IfWinActive, ahk_class MozillaUIWindowClass !Left::Send, {Browser_Back} !Right::Send, {Browser_Forward}
322 名前:320 mailto:sage [2009/02/21(土) 22:10:01 ID:FzZoDrMY0] >>321 ありがとうございます 助かりました
323 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 20:03:09 ID:qnu0ZxRB0] 自分も前から気になってたけど、FirefoxはSendMessageとかPostMessageは受け取らないのでしょうか? 非アクティブのままにautohotkeyから操作したいんですけど?
324 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 20:13:46 ID:q+YO7qML0] ご存じの通りマルチプラットフォームのものでWin専用って訳じゃないから、 ウィンドウメッセージ受けとってもスルーされるものが多いと思う。 WM_MOUSEWHEEL とか WM_KEYDOWN/UP などは受けとってそれなりに動く。 メニューバーやステータスバーもウィンドウズのものじゃなく独自に作ったもの。(>>254 参照) Firefoxだけじゃなく Java とかもそうだけどそういうのをコントロールするのはちと厳しいね。
325 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 22:56:59 ID:lt/+4kjg0] 確実性には乏しいかも知れんが ControlSend か ControlClick あたり試してみたらどうだろうか
326 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 22:58:01 ID:qnu0ZxRB0] >マルチプラットフォーム これをすっかり忘れてました、そう言われると出来なくても当然って感じですね ありがとうございました。
327 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/22(日) 23:19:18 ID:qnu0ZxRB0] >>325 ありがとうございます。 今ちょっと試してみたら、ControlSendでなりそうです。
328 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 00:59:34 ID:chhOXYqK0] Enterを右Ctrlにするやり方がわかりません。 Enter::RCtrlでBSを入れようとすると Enter+Hで1回はBS入るけど、 Enter押したままもう一度Hを入れると こんどはそのままHが入力されます。 どうしたらいいんでしょうか?
329 名前:名無しさん@お腹いっぱい。 [2009/02/23(月) 07:31:59 ID:xVptRsNb0] コロンのhotkeyに割り当てる方法はないでしょうか? :::Send,{A} ;// : をAに割り当て vkBAsc028::Send,{A} ;// : をAに割り当て のどちらで設定しても、:のhotkeyが有効になりません セミコロンだと以下で割り当てられるのですが… vkBBsc027::Send,{A}
330 名前:名無しさん@お腹いっぱい。 [2009/02/23(月) 21:29:51 ID:6awX2jgS0] AutoHotkeyを流行らせるページ lukewarm.s101.xrea.com/ ↑の入力置換関連部分を無視すればAutoIt3の日本語ドキュメントになる? しかしAutoIt日本語ドキュメントなさ杉
331 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/23(月) 23:50:07 ID:KDZEcOqx0] 結構書き方違う
332 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 03:37:01 ID:mnDWmi6d0] mayuでは難しい部分を、最近ahkで作り始めました。 VIMが1枚だけ存在したらアクティブに、 2枚以上存在したらリストを表示するようにしたいのですが、 以下の状態で既に詰んでます...どなたかご教示願います。 #^+!f2:: SetTitleMatchMode,2 WinGet, title, Count, - GVIM If %title% = 0 MsgBox, none else if %title% = 1 MsgBox, vim else MsgBox, %title% ウインドウ数は取得できてるようなのですが...
333 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 03:48:04 ID:nmUnQgbz0] If title = 0
334 名前:332 mailto:sage [2009/02/24(火) 04:06:13 ID:mnDWmi6d0] >>333 ありがとうです! 盲点でした。
335 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 06:40:25 ID:9IBsCb9z0] 変数は常に%%で囲むっていう風に統一してくれればいいのに。
336 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 08:53:53 ID:hmO2qa6n0] if 1 = 0 こんな書き方になっちゃうもんなぁ。
337 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 09:20:34 ID:ZrVDgkhH0] 文字列リテラルは一般の言語様式に合わせてくれた方がいいな シングル・ダブルクォートで囲むとか
338 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 15:13:52 ID:10tP/ti50] SandS.ahkの2008.09.21版かそれ以降のものがほしいのですが、どなたかお願い できないでしょうか。
339 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 15:23:09 ID:A2x/mr5E0] あぷろだにまだ上がってるよ lukewarm.s101.xrea.com/up/file/089.zip でも SandS だったら前スレ264のがシンプルかつスマートでいいと思う。 > 264 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/09/21(日) 22:24:04 ID:jd9yjK/i0 > 自分の Shift & Space はこれ。 > > Space Up:: Send, % "{Shift Up}" (A_TimeSincePriorHotkey < 200 ? " " : "") > +Space:: Send, +{Space} > >+Space:: Return > Space:: RShift
340 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/24(火) 16:20:53 ID:10tP/ti50] >>339 どうもありがとうございます。とても助かりました。 (A_TimeSincePriorHotkey < 200 ? " " : "") てあたりが気がきいていると思いました。
341 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 14:47:02 ID:qGUJzHwS0] 最長マッチのHotstringを作りたいのですが どうすればよいのでしょうか
342 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 17:32:35 ID:zx85xhcp0] Feb 25, 2009 Version 1.0.48 is released.
343 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 18:09:02 ID:N/JDSNBe0] パッチ等を当てずに安心して2バイトコードを使える日は、いつになるのだろうか・・・
344 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:06:58 ID:eljuCyAE0] ttp://www.autohotkey.com/changelog/ の適当な訳 1.0.48 - February 25, 2009 ■互換性 後方互換性に影響するであろう変更は、今回より、変数に格納された浮動小数点値が高精度なったこと。 数値精度の差に依存するスクリプトは精査して、更新する必要があるかも。 "SetFormat Float" (例: SetFormat, Float, 0.6) を *各所* で利用することで互換性が維持できるはず。 「SetFormatフロート」は高精度値を不活化するけど、新しい速い浮動小数点演算のうちのいくらかを使わない。 ■パフォーマンス このリリースの主なテーマはよりより速い実行。 スクリプトはほとんどすべてより速く実行できるはず- 特に式とか整数の評価の多用では(場合によっちゃ通常の3倍!)。 完全なる恩恵を得るには、スクリプトは、SetFormatを使用しないようにするべきか、あるいはSetFormatの速いモードを使用するべき。
345 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:07:22 ID:eljuCyAE0] ■性能改善 - 式と関数のコンパイルをコッテリとさせて、より速くなった(とくに複雑な製数式で、カンマも含む) - 変数に格納されたバイナリ数値をキャッシュさせて文字列(から/へ)変換するのをやめるようにした。これで変数の算術演算が速くなった。 - 式やマッチ/比較コマンド内でのリテラルの数値をバイナリ数値とするようにしたことにより速くなった。例) X+5 とか "if x > 5" - ブロックを持つループやIFやELSEを "{" をスキップすることで速く実行できるようになった。この結果、"{" が ListLinesで省略されるようになった。 - スレッド作成のパフォーマンスの改善、OnMessage(), RegisterCallback(), GUIイベントの rapid-fireスレッドを補佐する。(註:よくわからん) ■既存スクリプトに影響するかもしれない変更点(トップで記述されているより高精度な浮動小数点以外のもの) - "SetFormat, Integer, Hex" が有効な場合、リテラルの10進値を変数に格納するときに16進数に変換する。これは普通表示用途なはず。 - OnMessage()パフォーマンスについて、メッセージ番号とHWNDは無条件で16進数でなく通常の数値としてやってくる。これは通常表示用となはず。 - パフォーマンスにおける様々な改良を達成するために、スクリプトは今よりちょっと多くのメモリを使用する。(変数と式の数に比例している) - if var is time" と "YYYYMMDDHHMISS"形式のタイムスタンプを変更・修正し、月の範囲が1-12内に無い場合不正なものとして認識するようにした。[ニックありがと] - Dynamic関数呼び出しを変更・改善し、関数に定義されたパラメタ数よりも多いものも許容するようにした。このときパラメタは評価はされるが破棄される。[Lexikosが開発(註:Autohotkey_Lの人)] ■その他の変更点 - Autohotkey_Lより追加 → IsFunc() / while-loop / assume-static / A_IsPaused / A_IsCritical / WheelLeft と WheelRight - NumPutで UInt64をサポート - UPXを変えた
346 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/26(木) 21:11:50 ID:eljuCyAE0] バグフィックスは面倒なので割愛w #if は取り入れなかったのかぁ・・・残念
347 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 00:57:18 ID:aRIZ1QSP0] 複数のウインドウを高速に一度に前面にもってくることってできないでしょうか? 今は、10枚くらいあるウインドウをWinActivateとLoopで前面化を行っていますが、 かなりまったりと順番に前面にでてきてしまいます。 もとパッっと出すことはできないものかなあと思いまして。 今はこんな感じでやってます。(指定のexeのウインドウを全部前に出す例) +^!e:: Process, Exist, MageMogeChart.exe if ErrorLevel = 0 return WinGet, id, list, ahk_pid %ErrorLevel% Loop, %id% { StringTrimRight, this_id, id%a_index%, 0 WinGetTitle, this_title, ahk_id %this_id% WinActivate, ahk_id %this_id% } return
348 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 01:25:30 ID:c+2Jobtp0] SetWinDelayでコマンド発行後のウェイトを指定してやる。 ウィンドウの重なりが逆順になると思うけど。 v1.0.48用で書いてみた SetWinDelay, 10 Process, Exist, (ここにExe名) WinGet, list, LIST, ahk_pid %ErrorLevel% while list>0 { WinActivate, % "ahk_id " list%list% list-- }
349 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/27(金) 20:30:19 ID:uqsx4u4h0] DELL LATITUDE E6400でTrackWheel(VER. 20081206)を使ってたんだけど しばらくぶりにバージョンアップしようと最新版/RC版に変えてみたら中ボタンに反応しない。 なんてこった。
350 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 00:25:24 ID:X+HJqC5y0] ショートカットキーが付いてないソフトのボタンにahkでキーを割り当てたいんですけど各ボタンを指定するにはどうすればいいですか?
351 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 00:39:59 ID:imLzKJgB0] ものすごい放置してた。久しぶりにソース見た。思い出すのに時間がかかった。 >>349 AHK v1.0.48 だと DllCall の Return Type を指定するとうまくいかないところがある。 983行目の最後の ,"Int" を外すと動くかもしれない。 というか、反応しないって事はホットキーのアサインがうまくいってないかも。 全く構造が違うので、Iniは去年のものは流用できないっす。 >>350 1) ControlClick を使う WindowSpyで独自のボタン情報がとれるなら 直接指定モードでいいはず。 情報がとれないなら、座標指定モードで(ツールバーならこっち)。 2) ツールバーのコマンドを調べてウィンドウメッセージを送る(玄人向け) ttp://lukewarm.s101.xrea.com/myscripts/index.html の "Inspecting Toolbar IDs" を使って PostMessage を使って WM_COMMAND を送る
352 名前:349 mailto:sage [2009/02/28(土) 07:36:34 ID:ZNlNraZX0] >>351 どうも ・1.0.47でも1.0.48でもダメ ・1.0.48で983行目の最後の,"Int"外してもダメ ・iniは流用していない で、iniのButton=MButtonを=RButtonにしてみると反応する。スクロールもできる。 けどボタンを離してもスクロールのモードから戻ってこない。 てな状況です。
353 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 20:06:00 ID:imLzKJgB0] >>352 中ボタンで反応しないのと、右ボタンで暴走したままなのは別事象っす 中ボタンの方だけど、メイン画面開いて Ctrl+H かメニューから View→Hotkeys... でホットキー一覧出して m-hook *MButton って出てたら、ホットキー登録は問題ないはず。なってないなら大問題・・・。 そうなっているのに動かないなら他のユーティリティが影響していると思われる 確認をお願い > RButtonにしてみると・・・モードから戻ってこない こっちはバグですな・・・ 間違えた記述のあるサイトのソースを丸々パクっていたため。考えもせず置換して使ってたorz 誤: TW_RBUTTONDOWN:=0x205 , TW_RBUTTONUP:=0x206 正: TW_RBUTTONDOWN:=0x204 , TW_RBUTTONUP:=0x205 650行目あたりから,、それぞれ2カ所あるっす # 色々直したら zip で置き直す予定
354 名前:349 mailto:sage [2009/02/28(土) 22:00:14 ID:ZNlNraZX0] >>353 > m-hook *MButton 出てます。 他のユーティリティか、うーん。旧バージョンは動くのになー。 とりあえずmsconfigで診断スタートアップにしてみたけどダメでした。 RButtonではちゃんと動くようになりました。
355 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/02/28(土) 23:58:39 ID:imLzKJgB0] 旧verで動かしてたんだからそこに問題はないとは分かるんだけど、一応って事で ・・・そうなると機序的に何処に問題があるかは、今はちょっと分からないっす 一応、ソースもう一度読み直ししてみるっす
356 名前:350 mailto:sage [2009/03/01(日) 03:43:58 ID:Rc2HQ5QJ0] >>351 ありがとうございました ControlClickでいけました
357 名前:349 mailto:sage [2009/03/01(日) 20:30:20 ID:GJkhTa1h0] >>355 お手数かけてすまそ。 中ボタンに反応しないって書いたけど、 TWを起動している状態ではアプリケーションでの中クリックも効かなくなってるので TW自体は一応反応してる気がします。
358 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 10:53:15 ID:3PFCvLeG0] >>348 SetWinDelay で指定してみたら、瞬時にとはいきませんがかなり早くなりました。 最新のはwhile使えるようになったんですね ありがとうございました。
359 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 15:03:15 ID:4Ix+9L8p0] AutoHotkeyでmacのDashbordみたいなの作れないかな と自分で無理なことを言ってみる
360 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 22:51:10 ID:zVxOqqcX0] ダブルクリックとドラッグの挙動をカスタムしたいんですが、見つかりません コマンド教えてください
361 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:08:22 ID:ZvTbo6At0] +WheelDown::WheelUp このスクリプトでしばらくは正常に動作するのですが 71 hotkeys have been received in the last 577ms. というメッセージが出てきます。 どういうことでしょうか?
362 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:10:50 ID:pYSwiV1N0] スクリプトの冒頭で #MaxHotkeysPerInterval 200 と書くと良い
363 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 05:22:01 ID:ZvTbo6At0] #MaxHotkeysPerInterval 300でいけました ありがとうございます。
364 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 15:08:04 ID:VwNNjCy00] Dllcallを使いたいのですが、構造体というものがわからないのでちょっと質問させてください。 AHKで構造体を使うというのは、 メタボかどうかを判断したいので、健康診断の記録から ・体重と腹回りの項目を見ろ(構造体) ・上から3行目の数字と、上から7行目の数字を見ろ(AHKの強引な手段) といった感じで、メモリの位置を直接指定しているといった認識でおkでしょうか。
365 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/04(水) 15:52:18 ID:rkwP19PJ0] Cも何も分からんけどAHKでゴリゴリDllCall使っている漏れの私的な見解 > メモリの位置を直接指定しているといった認識でおk たぶんそう 構造体って言語仕様でも何でもなく、 「ある番地を起点に確保したメモリの使い方はこうするんだぜ」 って決め方だと思ってる。(言語でサポートされているのは使うのは楽らしいけど。) だからVarSetCapacityとかでメモリ領域確保してアドレス渡しすれば結構使えちまう。
366 名前:名無しさん@お腹いっぱい。 [2009/03/04(水) 23:33:02 ID:oTTwde4w0] suspend 時のアイコンを変更できない物でしょうか?
367 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 08:18:57 ID:7I9asjSe0] ttp://www.autohotkey.com/forum/topic22975.html
368 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 09:07:32 ID:DThF++lC0] >>367 いやコンパイルせずにソースを実行するときに アイコンを変更することができない物かと 試行錯誤をしていました 無理っぽいですね ありがとうございます
369 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 09:32:36 ID:UhjQBASr0] 会社でahkを使ってたら、Hなダイヤルアッププログラムと誤解された
370 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 11:37:52 ID:rcFfvT/S0] A(在り得ないほど) H(えっちな) K(娘通信) ?
371 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 11:47:21 ID:lgTNReVh0] >>366 メニューは作り直すしか無さそう。 menu, tray, NoStandard menu, tray, icon, shdoclc.dll, 1, 1 menu, tray, add, Suspend Hotkeys, suspend_hotkeys menu, tray, add, Exit, ExitSub return suspend_hotkeys: suspend menu, tray, icon, shdoclc.dll, % A_IsSuspended+1 ", 1" menu, tray, togglecheck, Suspend Hotkeys msgbox, suspend return #s:: suspend, permit gosub, suspend_hotkeys return ExitSub: ExitApp
372 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 12:01:41 ID:lgTNReVh0] あ、俺勝手にトレイアイコンの事だと判断しちゃったな・・ 違ってたらスマン
373 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 12:28:12 ID:GNmqhAQE0] >>371-372 おお、これで十分です トレイアイコンの変更を意図していました ありがとうございます。
374 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/05(木) 20:15:15 ID:xz90t0puP] 会社ではトレイアイコンは常に非表示に設定してる
375 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 00:46:39 ID:Y32mGPTe0] だからどうした。
376 名前:名無しさん@お腹いっぱい。 [2009/03/06(金) 02:31:08 ID:6lo5rU0D0] ctrl と j でエンターキーを押した動作をさせたいのですが ^j::enter と書くと、ctrlとjが押し下げられているままとなっているようで、 実際には ctrl とjを押しながらエンターキーを押す動作となってしまいました ^j::Send,{enter} と書いても、ctrlが押し下げられているままとなっているようでした そこで ^j::Send,{Blind}{Ctrl Up}{enter} と書いたら一回目の入力は成功するものの、 {Ctrl Up}のせいで次回以降 ^j にヒットしなくなってしまいました ctrl と j でエンターキーを押し、かつそれを連続して入力する設定は可能でしょうか?
377 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 02:52:01 ID:EIumwJQn0] >>376 ^j::Send,{enter} で何の問題もなくエンター打てるけど?
378 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 05:33:37 ID:6lo5rU0D0] >>377 キーの動作を見てみると、コントロールキーも一緒に送信しているようなのです。 fenrir 経由でx-finderを起動するときに コントロールキーも一緒に送信されると 多重起動されてしまいます これを防止したいと思いました。 通常のアプリケーションでは何ら問題ないようだとは うすうす感じていますが……
379 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 06:53:07 ID:atFpTk3M0] さらに ^j::Send,{Blind}{Ctrl Up}{enter}{Ctrl Down} としたらどうなの
380 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 12:05:24 ID:sR26OTSx0] >>379 それなら大丈夫そうです ありがとうございます。
381 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/06(金) 15:01:28 ID:dtsNACZp0] >>359 俺は逆だな。macでAutoHotkeyが欲しい。
382 名前:名無しさん@お腹いっぱい。 [2009/03/06(金) 22:52:29 ID:gMTAf0z20] タスクトレイのアイコンをダブルクリックしたら hello!と表示させたいのですが、できますか? Gui の Menu の項目を読んでもわかりません Click, ClickCount あたりを使えばよいのでしょうか?
383 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 00:30:41 ID:GNhe+RZO0] >>382 できる。 トレイにメニュー項目を追加してデフォルトにする
384 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 04:04:12 ID:41mSVwUw0] >>383 ありがとうございます。 できました
385 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 08:14:05 ID:HkiIUUNz0] AHKのGUIが便利すぎるので、フロントエンドにAHKを使い、パラレルポートの制御をしたいです。 用途は機械制御(赤外線の人センサーによる出入り回数の把握)で、数個のLEDの点灯制御と、 10bps(10kじゃないです)の双方向シリアル通信で、制御の確実性(信頼性)は低くてOKです。 本家を検索し、シリアルポートをGUIで制御するサンプルはありました。 www.autohotkey.com/forum/topic26533.html これのパラレルポート版に相当するサンプルがあると最高なのですが、探せませんでした。 ジョイスティック制御のdppの技術が使えそうですが、本家をdppで検索してもヒットせず。 ポート制御の達人がいらっしゃいましたら、なにかヒントをいただけると嬉しいです。
386 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 08:57:54 ID:EX6aOmt+0] >>385 そういうのは VBとかDelphiとかのフォーラムとか過去ログ覗いたらいいと思う。 前にDelphi使ってたけど、シリアルポート制御のコンポーネントとかいくつかあったはず。 VBにもあるだろうと思う。それを移植するか、DLL化して使うか。 多分、需要がなくなっていない分野なら、C#やVB.netのものも見つかると思う。 VB、Delphi、C#、VB.net はVB以外は無料バージョンあるから、 ポトペタでGUI作れるからAHKよりよほど楽なんで、いっそそっちの言語でつくってもいいし
387 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 09:00:02 ID:EX6aOmt+0] ごめん、パラレルポートだったか。どちらにせよ、検索してみてほしい。 Delphiだとこの辺。 Delphi-ML過去ログ検索 leed.t.u-tokyo.ac.jp/~takeuchi/delphi/search.cgi Delphi ML archive | Google グループ groups.google.co.jp/group/delphicbuilder-ml-archive Delphi Q & A掲示板 hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi
388 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 09:43:07 ID:EX6aOmt+0] > 【1 OSの種類 .】 Windows Vista SP1 > 【2 Excelのバージョン 】 Excel 2007 > 【3 VBAが使えるか .】 はい > 【4 VBAでの回答の可否】 否 > 【5 検索キーワード 】 Excel 補完 タブ Tab エンター ENTER など > > すごく、無茶な質問を承知でお聞きいたします。 > > Excel上やVBAエディタ上では、補完候補の決定がタブになっているのですが、 > 他の開発環境のクセでエンターを間違えておして毎回イライラしてしまいます。 > 間違えないようにする方法、もしくは、タブではなくエンターで決定する方法はありませんでしょうか? 誘導されてきました。 こういうのってAutoHotKeyで可能なんでしょうか? 候補ウインドウが出ている時だけ、ENTERをTABに置換? うーん考えただけで・・・
389 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 12:24:08 ID:umaUJV8o0] 英語版のキーボードと日本語版のキーボードを それぞれ場合分けして処理することはできないでしょうか
390 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 12:45:36 ID:GNhe+RZO0] >>388 出来ると思う。 >.>389 無理。
391 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 13:43:56 ID:umaUJV8o0] >>390 そうですかわかりました
392 名前:名無しさん@お腹いっぱい。 [2009/03/07(土) 20:19:46 ID:9fbJ8ZNJ0] メニューバーの編集(E)とかワードパットのフォントカラーとかを 操作できる命令はありますか?
393 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/07(土) 20:38:41 ID:MDzSZOKi0] あるよ
394 名前:名無しさん@お腹いっぱい。 [2009/03/07(土) 22:23:07 ID:uKtAZx+C0] gui で作成したウィンドウにデフォルトでついている 右上の最小化ボタン(_)がありますよね? これをクリックしたらタスクバーに表示せず タスクトレイに格納したいのですが どうすればよいのかわかりません 言い換えると、gui の操作で minimize のコマンドを送るようにできればいいのですが
395 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 00:00:01 ID:tr/g5E240] >>386 情報どうもです。別方面からも検討してみます。
396 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 10:26:24 ID:U6oXO4Qm0] Escキーを2回、トントンって入力するとウィンドウが最小化するスクリプトを 書きたいんだけど、どこが間違っているか教えて欲しい Inputコマンド lukewarm.s101.xrea.com/commands/Input.html ↓ソース Esc:: Input,InputChar,C I L1 T2,endkey,{Esc},z,x if ErrorLevel=Match { if InputChar={Esc} WinMinimize, A if InputChar=z if InputChar=x } return
397 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 10:34:55 ID:esDbqi200] キーのダブルタップはサンプルあるだろ
398 名前:394 mailto:sage [2009/03/08(日) 12:41:19 ID:Zm/1oWz60] 自己レスですが gui close で何とかなりそうですね スレ汚し失礼しました
399 名前:394 mailto:sage [2009/03/08(日) 12:59:56 ID:Zm/1oWz60] たびたびすみません やっぱりできません
400 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 15:01:14 ID:INaMOjyr0] >>399 右クリフックしてWM_NCHITTESTでマウス位置調べたらいいんじゃね HTMINBUTTON だったらGUIを Hideにする。 タスクトレイからの復旧はMenuを書き替えればできるべ
401 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 20:24:31 ID:CbAikyhi0] >>400 ふむ、その手が使えそうですね ありがとうございました
402 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 20:39:34 ID:W44aSFYp0] まっとうにやるなら>>400 だけど。別の方法 Menu, Tray, Add, ShowGui Gui, Add, Text,, This is Test ShowGui: Gui, Show return GuiSize: if A_GuiWidth<1 Gui, Hide return
403 名前:名無しさん@お腹いっぱい。 [2009/03/08(日) 22:31:03 ID:OvInxdiZ0] テキストファイルを読み込むときに 最終行を検出する方法はありますか?
404 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 23:41:33 ID:W44aSFYp0] ないんじゃないかな。 Loop, PARSE, ファイル名, `n hoge := A_LoopReadLine とすればループが終わったときに hoge には最終行の内容が入っているけど
405 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 23:46:14 ID:ABSLuhUi0] >>404 そうできるのであれば十分です どうもありがとうございます!
406 名前:名無しさん@お腹いっぱい。 [2009/03/09(月) 18:31:39 ID:3Pb9nLSu0] ワードパッドの書式バーのフォントの色の変更や 太字化をahkでやりたいんですが座標指定でやるしかないんでしょうか? WinMenuSelectでは反応しないし、 ボタンのハンドルをMouseGetPosで調べることもできません。 青とか赤の個別の色のボタンは調べられるんですが、値が毎回違うので 行き詰っています。
407 名前:406こういう感じでやりました [2009/03/09(月) 18:48:21 ID:3Pb9nLSu0] #F:: MouseGetPos, X , Y, W, OVC,2 ;これでハンドルを調べました MsgBox %W% <--> %OVC% clipboard = %OVC% return #G:: SetTitleMatchMode,2 DetectHiddenText, On WinMenuSelectItem,ahk_id 0x50370,,7& ;ウインドウのハンドルからメニューバーとして操作しようとしましたが WinMenuSelectItem,ahk_id 0x50370,,8& ;反応しません WinMenuSelectItem,ahk_id 0x50370,,9& WinMenuSelectItem,ahk_id 0x50370,,10& WinMenuSelectItem,ahk_id 0x50370,,11& WinMenuSelectItem,ahk_id 0x50370,,12& ;WinMenuSelectItem,ahk_id 0x50370,,1&,1& ;ファイル→新規、これは動きます
408 名前:406こういう感じでやりました [2009/03/09(月) 18:50:43 ID:3Pb9nLSu0] WinMenuSelectItem,ahk_id 0xd40372,,1& ;バー自体のアドレスからメニューバーとして操作しようとして WinMenuSelectItem,ahk_id 0xd40372,,2& ;動きません WinMenuSelectItem,ahk_id 0xd40372,,3& WinMenuSelectItem,ahk_id 0xd40372,,4& WinMenuSelectItem,ahk_id 0xd40372,,5& WinMenuSelectItem,ahk_id 0xd60376,,1& ;反応しません WinMenuSelectItem,ahk_id 0xd60376,,2& WinMenuSelectItem,ahk_id 0xd60376,,3& WinMenuSelectItem,ahk_id 0xd60376,,4& WinMenuSelectItem,ahk_id 0xd60376,,5& WinMenuSelectItem,ahk_id 0x9d01b2,,1& WinMenuSelectItem,ahk_id 0x9d01b2,,2& WinMenuSelectItem,ahk_id 0x9d01b2,,3& WinMenuSelectItem,ahk_id 0x9d01b2,,4& WinMenuSelectItem,ahk_id 0x9d01b2,,5& ControlClick,,ahk_id 0xfb0194,,LEFT ;ハンドルが特定できません MsgBox done return
409 名前:nCIjdtNZgMN mailto:nihfnmwf@zzaawhbf.com [2009/03/09(月) 18:51:33 ID:1ok/Ifbl0] comment5, kim-kardashian-video.limitedliability.us/index.html kim kardashian nude video, %-PP,
410 名前:406こういう感じでやりました [2009/03/09(月) 19:17:25 ID:3Pb9nLSu0] やり直したらinspect_toolbarがなぜか今回は動いたので それでやってみます
411 名前:406こういう感じでやりました [2009/03/09(月) 23:05:06 ID:3Pb9nLSu0] 連投すみません ワードパッドの書式バーの位置をずらした後 (メニューバー・ファイル(ファイル... ツールーバー 書式バー(MSゴシック... のように ) inspect_tool_ids で書式バーのコマンドIDを調べて(32801) #G:: PostMessage,0x111,32801,0,,A return でフォントの色を選ぶボタンをahk経由で押させることは出来たのですが、 赤とか青とかの個別の色を押させることが出来ません。 方法はありますか?
412 名前:406-411(除409) [2009/03/10(火) 00:39:25 ID:VYBxlQGq0] すいません、出来ました。Resource HackerでIDが調べられて 無事できました。ありがとうございました。長すぎる連投してしまい 本当に申し訳ないです。
413 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:05:28 ID:rmSmGeHP0] 起動してるプロセスを取得してその中から選択したプロセスを監視して任意の条件でいろいろする ってのをやってみてるんだけど IrvineとかJaneとかプロセスが二重に取得されてどっちを選べばいいかわからない
414 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:11:02 ID:D/8zxGdl0] 多重で起動してるの?すごい使い方だな。
415 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 15:47:04 ID:rmSmGeHP0] 一つしか起動してないけど取得されるのは二つになってるってこと
416 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 16:27:55 ID:4NcKH5rc0] AHKでプロセスいじるのって Process コマンドでの 存在チェック(PID取得)、 強制終了、 優先度変更、 終了/存在待ち だけど、二重に取得されるってどういうことだろ Process, Exist, Jane2ch.exe pid := ErrorLevel WinGet, list, LIST, ahk_pid %pid% MsgBox, %list% ってすると2個窓がとれるけど これのことだったら >>144 ,147,153 あたりと同じなんだが・・・
417 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/10(火) 21:21:52 ID:gm+lfOz80] Delphi製のアレなら、既に解決方法は確立されているので検索してこい
418 名前:名無しさん@お腹いっぱい。 [2009/03/11(水) 03:02:36 ID:pYoGuoaj0] WM_COMMANDでメニューバーをクリックしたときにでてくる新しいウインドウ の中のコマンドに対するコマンドIDをしらべたいんですが、 何かいい方法はありますか? 窓コンもinspect_toolbarも反応しなくて、resource hacker でも調べられません。 ddwinとかpdicビューワーに使いたいんですけど。
419 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 07:16:24 ID:1ccOe8xw0] WheelScroll.ahk の改造版をうpしますた。ホイール加速を滑らかにしたつもり。 lukewarm.s101.xrea.com/up/ の 104.zip
420 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 08:59:21 ID:12ef3abb0] AutoHotKeyのPython版みたいなのみつけた。 AutoHotKeyのスクリプトの記述性の低さが嫌な人にはいいのかも。 keyhac ?(craftware)? sites.google.com/site/craftware/keyhac まあ、AutoHotKeyはDSL(ドメイン特化言語)で手軽さがあってそれでいてGUI持つくれるというのがいいけどね。 (まあ、PythonもGUIいけるけど)
421 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 10:22:40 ID:12ef3abb0] ちょっと質問です。OpenJaneで「お気に入り」に入れてあるスレを お気に入りからはずして「印」のみつける(お気に入りからはずすと何故か「印」がはずれてしまうため) というのを一発でやりたいと考えています。 メニューのコマンドを送ろうとしているのですが、ControlSendを使ってもキーが送られないようです。 以下のように単なるSendだと上手くいっているようなのですが、 ControlSendとSendの違いってなんなんでしょうか? ; OpenJane #IfWinActive, Jane ahk_class TMainWnd ; Ctrl+D to delete favorite without deleting SIRUSI ^d:: WinWait,Jane ahk_class TMainWnd Send, !tv Sleep, 100 Send, !tm ; ControlSend,,!tv!tm ; damepo return #IfWinActive
422 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 11:45:04 ID:iQp8Awzp0] Sendはフォーカスのあるところに送る ControlSendはフォーカスが無くても、というか対象を指定してキーを送る ウィンドウ指定+コントロールの指定なし、でいけるんじゃないの Styleだけど↓で動くよ ControlSend,, !tv!tm, ahk_class TMainWnd
423 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 11:48:35 ID:iQp8Awzp0] というか、非アクティブ窓に送るのがControlSendの主目的だし #IfWinactiveつかってるんだし、>>421 でうごくならそれでいいと思う keyhacはkeymapがあるし繭の代替みたいなかんじだぬ
424 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 12:50:26 ID:12ef3abb0] >>422-423 サンクス。 なるほど、アクティブのときに使うなら必要ないですね。 むしろ、フォーカスないときに送るAPIもあるのかと感心したw
425 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 16:10:47 ID:7PTN87iF0] どうしてもスマートな書き方が分からず困ってしまったので質問します。 Photoshop7.0を使っているのですが、そのPhotoshopでの作業で ズームイン・アウトの動作は、alt+マウスのホイールで行うんですけど それをホイールのみで行いたいんですが、いまいちうまく動作しません。 ; Photoshop #IfWinActive, ahk_class Photoshop wheelup::Send, {ALTDOWN}{wheelup} wheeldown::Send, {ALTDOWN}{wheeldown} #IfWinActive とりあえずこれで動くことは動くんですが、これだとaltキーが押されっぱなしで いったんaltキーを押さないと開放されないんです。 ホイールの動作を止めてから、0.5秒くらいでaltキーが都度開放されるようにしたいんですが どういう風に書けば良いんでしょうか。
426 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 17:30:08 ID:SMQKLnXdP] !{WheelUp}じゃ駄目なの?
427 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 17:40:17 ID:WedUAl7t0] うむ、自分も色々試したんだけど、ウチのCS3ではダメなんだよな !修飾だとズームさえしないし、Sleep,500 して Send {Alt Up} してもズームはするがAltが押しっぱ状態 色々なSendModeやhookにしたけどダメだった ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、 これだとポインタ位置のズームにならないから期待には沿えないんだろうな
428 名前:425 mailto:sage [2009/03/11(水) 17:44:19 ID:zQD6nmYr0] >>427 >ただのズームで良ければ、Ctrl-やCtrl+送れば良いけど、 >これだとポインタ位置のズームにならないから期待には沿えないんだろうな ははは。仰るとおりです。単なるズームならそれで良いんですけどね。 やっぱ難しいのかな…。 Photoshop7.0以前のホイール動作がしたいだけなんですけどねー。
429 名前:425 mailto:sage [2009/03/11(水) 17:51:27 ID:zQD6nmYr0] >>426 実際やってみると分かるんですが、 それでは「altキーを押しっぱなしでホイール動作」にはならないんですよね。 altとホイールを同時に入力、とみなされて、微妙にカククアした動作になるんですよ。 押しっぱなしというキー入力がないと、スムーズにズームしないんですよね。
430 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:10:32 ID:WedUAl7t0] あー、ウチではこれで動くようになったけど、かなりインチキくさいので7.0ではダメかも Sleep後のAltの送り方をイジれば何とかいけそうなんでは wheelup:: SendInput {Alt Down}{WheelUp} Sleep, 500 Send {Alt} Send {Alt Up} return
431 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:21:31 ID:iQp8Awzp0] > Sleep後のAltの送り方 タイマーでいいんじゃないかな。環境がないから何とも言えないけど。 wheelup:: wheeldown:: SendInput {Alt Down}{%A_ThisHotkey%} SetTimer, AltUp, 500 return AltUp: Send, {Alt} Send, {Alt Up} return
432 名前:425 mailto:sage [2009/03/11(水) 18:45:36 ID:zQD6nmYr0] >>430 おお!まさしく理想の動きになりました! Sleep後の動作の書き方が分からなくてつまづいてました…。 ありがとうございます! >>431 そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。
433 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 18:51:43 ID:W+NxFur40] 解決したようだけど、押しっぱなしの原因は#HotkeyModifierTimeoutのあたりなのかな?
434 名前:431 mailto:sage [2009/03/11(水) 19:07:50 ID:iQp8Awzp0] > そちらも試してみましたが、なんかaltキーが常時連打されてるような動作になりました…。 うは、初歩的なミス > SetTimer, AltUp, 500 は↓で SetTimer, AltUp, -500 解決したならいいんだけど
435 名前:425 mailto:sage [2009/03/11(水) 19:34:30 ID:zQD6nmYr0] >>434 ありがとうございます! キチンとスムーズに動作してくれました。 AutoHotkeyの存在を知ったのが昨日なのでまだあまり把握しきれてないですが、 かなり勉強になったのでちょっとハマってみます。
436 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 21:02:29 ID:G1UR0H3q0] >>434 >負の値を指定した場合、その絶対値の時間が経過後に、一度だけサブルーチンが実行される。 勉強になった、d.。 ふぅ、無駄こいた(´;ω;`)ブワッ wheelup:: wheeldown:: Send, {Alt Down}{%A_ThisHotkey%} MouseGetPos, xMouse, yMouse settimer, IdleMouseMoved, 100 return IdleMouseMoved: MouseGetPos, xMouseNow, yMouseNow xMouseChange := ( xMouseNow - xMouse ) * ( xMouseNow - xMouse ) yMouseChange := ( yMouseNow - yMouse ) * ( yMouseNow - yMouse ) If (xMouseChange > 9) | (yMouseChange > 9) | (A_TimeIdle > 500){ send, {Alt Up} settimer, IdleMouseMoved, off } Return
437 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 21:11:08 ID:XeGc9YVz0] 作成した関数が 複数の値を返すことはできますか?
438 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:25:12 ID:NuVSrS420] >>437 引数の参照渡し(ByRef)を使ってみるとか。 #persistent SetTimer, timer return MouseGetScreenPos(ByRef x, ByRef y){ CoordMode, Mouse, Screen MouseGetPos, x, y CoordMode, Mouse, Relative } timer: MouseGetScreenPos(sx, sy) MouseGetPos, x, y tooltip, x%x%`ny%y%`n`nsx%sx%`nsy%sy% return
439 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:26:53 ID:RHpZI3IT0] windowsXPにAHK1.0.48.00をインストールしました 起動するにはAutoHotkey.exeをwクリックすればいいんですよね? どうも起動していないようです プロセスにも載っていません どうすれば使えるようになるのでしょうか? よろしくおねがします
440 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:41:17 ID:G1UR0H3q0] >>439 exeと同じところにAutoHotkey.iniを作ってメモ帳で編集。 a::a で保存。exeをダブルクリックするか、iniをexeにD&Dすればいい。
441 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/11(水) 22:52:15 ID:RHpZI3IT0] >>440 ありがとうございます。無事動きました。 以前使っていた自作のスクリプトがなぜか駄目だったようです これが原因とは思っても見なかったので 初歩的なことを聞いてしまいました おかげで切り分けが出来きて解決しました
442 名前:名無しさん@お腹いっぱい。 [2009/03/12(木) 01:46:44 ID:F1m5qWie0] >>438 なるほど。参照渡しなら間違いないですね ありがとうございます。 別件の質問ですが a に test があり、かつb に hogeがあるときで 条件分岐をしたいのですが If a in test and b in hoge と書いたら上手く動きません 初歩的なことだと思いますが どうすればよいのでしょうか
443 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 02:07:36 ID:1BiiCvek0] if InStr(a, "tesst", true) && InStr(b, "hoge", true) Caseを問わないなら括弧内の第3引数を省略または false にする
444 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 02:21:15 ID:F1m5qWie0] >>443 ありがとうございます。
445 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 13:49:22 ID:fNm1iUGy0] 無変換キーをシフトキーのかわりとして使いたいのですが 無変換キー+A をshift + A とするだけではなく ctrl + 無変換キー+A をctrl + shift + A や win + ctrl + 無変換キー+A をwin + ctrl + shift + A というふうに あたかもレジストリの編集により無変換キーをシフトキーとしたように動作させたいです remap を使っても思ったとおりの動作ができません
446 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 14:01:43 ID:nMFGybhR0] 「思ったとおりの動作ができません」がどうせ間違ってるんだから、 途中まで試したコードを晒してみたら?
447 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 15:12:04 ID:fNm1iUGy0] すみませんでした sc07B::shift だけでできました
448 名前:名無しさん@お腹いっぱい。 [2009/03/13(金) 15:47:42 ID:fNm1iUGy0] たびたびすみません リマップ lukewarm.s101.xrea.com/remap.html > リマップによって生成された入力では、フックを使用しているホットキー(「$^c」など)は反応しない。 この制限を解除する方法はありませんか?
449 名前:jbpfxyseplh mailto:jhhgov@qjokcp.com [2009/03/13(金) 15:47:58 ID:DVfGG20W0] uGaXvO <a href="gvatgngxmxho.com/ ">gvatgngxmxho</a>, [url=iyoeszfqayam.com/]iyoeszfqayam[/url], [link=ohsodtdhgqfa.com/]ohsodtdhgqfa[/link], oqdjndcqppwj.com/
450 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 19:24:04 ID:xVfJVQvM0] モディファイアのリマップはScancodeMapいじるようにした方が 何かとすっきりさっぱりだと思うんだ。
451 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/13(金) 22:39:12 ID:nX9nzRDN0] >>450 そうですか。 ありがとうございます。
452 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/14(土) 21:34:52 ID:4icr6LvT0] fenrirの呼び出しキーをうまく設定できません ^a:: send,^b return こういう設定を書きました そのうえで、fenrirの呼び出しキーの設定の項目で ctrl + A を入力しました。 すると、左のctrlキーのときには意図したとおり ctrl + B が入力されたことになるのですが、 右のctrlキーのときには なし と表示されてしまいます。 パソコンはvistaを使っています どうすれば右のctrlキーを左のctrlキーのように動かせるのでしょうか
453 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 00:25:08 ID:lsWqS3cG0] >>452 なんか言ってることがよく分からんが、それfenrirを起動したくないってこと?
454 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 00:58:42 ID:SZZoZhnK0] >>453 いやそうじゃないんです 他のソフト(エディタとか)では 右のctrl + A できちんと ctrl + Bが動作するんですが fenrirに限ってはそのようには動かないんです 左のctrl + A ではfenrirでもきちんと ctrl + Bが動作するんですが あ、fenrirは最新バージョンを使っています どうもautohotkeyの内部で 右のctrlと左のctrlの処理が大きく異なっていると思うのですが よくわかりません
455 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:19:57 ID:AqdEGZ0E0] fenrir側の呼び出しキーの取得方法が特殊なんじゃなかろうか。 わざわざCtrl-Aを一旦Ctrl-Bにして呼び出す理由が分からないけど、 ただ前面にしたいなら、fenrirを二重起動するという方法もあると思う
456 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:46:43 ID:aN9r1MmC0] LCtrlとRCtrlと両方書いてもだめかぬ
457 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 09:54:41 ID:B8F8JwCv0] Gui, Add, Hotkey Gui, Show return ^A::MsgBox, Send`, "Ctrl + B" いったんAHK止めてからせっていすりゃいいんじゃねーの
458 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 10:14:36 ID:aN9r1MmC0] 試してみたら正常動作したけどfenrirが古かったから最新版にしてみたんだがやっぱり普通に動くな
459 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 13:07:53 ID:2+vykJE1P] もし {vkXXscXX} の形式だったら {vkXX} だけにしてみるとか
460 名前:452 mailto:sage [2009/03/15(日) 14:01:34 ID:dCql5Xe00] autohotkey のkeyhistoryを見てみました 左のctrl + b では 42 030 i d 10.25 B fenrir 42 030 i u 0.00 B 右のctrl + b では A2 01D i d 2.42 Ctrl fenrir A3 11D i u 0.00 Right Control 42 030 i d 0.00 B 42 030 i u 0.00 B A2 01D i u 0.02 Ctrl こうなりました そこで以下のように書いたら左のctrl + bと同様に動きました ^a:: send,{blind}b return >>457 のスクリプトではどちらのctrlも正常に動きます 上記のみなさんのご指摘を踏まえると、 私の環境が特異だということですかね いろいろと調べてみます ありがとうございました。
461 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 17:00:43 ID:OR65f9ys0] ホットキー用のキー足りねぇ→キーボード2台つなげばよくね と思い、ジャンクの安いキーボード買ってきた 2台目用はScrollLockでもして、それで1台目と区別すりゃいいなと思ってたんだが ScrollLockもCapsLockもNumLockも連動しやがる 1台目と2台目のキーボードの入力を判別する方法はないでしょうか? PS/2接続とUSB接続の2台なんですが
462 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 19:38:57 ID:BkAbLvKa0] 斜め上を行く発想だなw レスじゃなくてスマンが…
463 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 19:42:47 ID:eGMmt4nd0] ソフト名忘れたが、デバイスドライバレベルで区分けするフリーソフトがあるよ。 たしか作者は日本人
464 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 20:51:44 ID:5g2lI0+Z0] 俺はプログラマブルキーボード使ってる。 本来はキーマクロを割り当てて使うものだが、キーマクロのメモリ登録では、 アプリ毎に動作を切り替えられず、専用のツールを利用すれば対象アプリ毎の 設定も出来るが、あまり出来が良くないので、メモリにはF13〜F24や、 普通のキーボードでは入力しづらいショートカットキーを登録し、 AutoHotkeyで引っ掛けてアプリ毎の動作に書き替えてる。
465 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/16(月) 21:39:38 ID:OR65f9ys0] >>463 情報ありがとう、それがみつかればできそうだ >>464 俺も最初プログラマブルキーボードか、ホットキーがいっぱいあるゲーミングキーボードとか考えたんだか 特殊なキーボードは値段が高くて選択肢も少ないので、なんとかならないかと思ったんだが プログラマブルってほどじゃなくても、全キーをWinキーあたりと同時押しができれば あとはAutoHotKeyで十分なんだけど ただWinキーを押しっぱなしで固定するだけじゃ、やっぱり2台とも連動して駄目だし ハード的に改造しようかと調べてもROMライター前提で変換基盤自作とか、素人には無理そうだし
466 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 00:59:49 ID:VkzQ2R4K0] setntptimeという時刻修正プログラムを実行後、ログの最後の4行を TrayTipかMsgBoxに表示するようにしたいのですが RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide logfile = C:\App\Internet\setntptime\settimeLog.txt i = 0 Loop, read, %logfile% { i += 1 } FileReadLine, server, %logfile%, i-3 FileReadLine, oldtime, %logfile%, i-2 FileReadLine, fixtime, %logfile%, i-1 ;最終行は改行だけなので省略 MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime% return のように、2度手間になりますがログの行数を取得してからFileReadLineする 方法しか思い浮かびませんでした。 もう少しスマートにしたいんですが良い方法あったらご教授ください。
467 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:19:19 ID:pREBWc+h0] >>466 RunWait, C:\App\Internet\setntptime\setntptime.exe,,hide logfile = C:\App\Internet\setntptime\settimeLog.txt Loop, read, %logfile% { server=%oldtime% oldtime=%fixtime% fixtime=%dummy% dummy=%A_LoopReadLine% ;改行が入る } MsgBox,, setntptime log, %server%`n%oldtime%`n%fixtime% return こんなんじゃだめ?
468 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:24:58 ID:Q86YJixB0] すげぇ・・・なんというアクロバティック。これがこのスレの底力だな
469 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 01:50:46 ID:VkzQ2R4K0] >>467 うおー即レスありがとうございます ダミー咬まして・・・うーん頭こんがらかりそう 使わせていただきます。
470 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 13:48:31 ID:hCcdtXRQ0] >>419 遅レスですが、IKKI氏乙です。 何か年末に作って放置してたのがあったのであげてみる。 秀丸でAHK編集する人のための CompleteX 用設定 LIBフォルダの関数ライブラリを読んで単語補完辞書&ヒントを作成する。 www6.atwiki.jp/eamat/pub/MyScript/MyLibList.zip
471 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 15:39:39 ID:Lst9ESBRP] Runで引数を変数で与えたいんだが、 Run, %var1%, %var2% ってやっても作業ディレクトリがうまく与えられないみたいなんだけど 何が原因?
472 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 15:52:26 ID:Lst9ESBRP] ごめんなさい自己解決 制御文字が含まれてたっぽい
473 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 18:39:45 ID:gDeBu6wE0] よくあるw エクスプローラの引数とか特に 俺は行数増えるけど見通しよくするために↓みたくしてる dir = c:\hoge\hoge cmd = %var1%, %var2% Run, %cmd%, %dir%
474 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 19:02:16 ID:hImTYnxN0] >>470 乙です 一方、海の向こうではchmでいくんだろうか? GenDocs v2.0 - Create StdLib documentation easily! ttp://www.autohotkey.com/forum/topic41287.html といっても、前スレ GenDocs - utility for creating StdLib documentation ttp://www.autohotkey.com/forum/topic22548.html も含め投票数(反応)そのものも少ないみたいだし、このまま付けたり付けなかったりバラバラでいくのかな。。
475 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 19:03:05 ID:L7m3HeAn0] 作業ディレクトリを指定したら、実行ファイルってファイル名だけでいい気がした。 当たり前か・・・
476 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 21:04:07 ID:lw7F/3Qx0] >>467 これ、発想がすばらしいなぁ。 AHK以外でも使えそうなアルゴリズムだ。ありがとう
477 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 00:30:37 ID:2PEehZZi0] >>470 ちょうど欲しいと思ってた CompleteX 辞書ww ありがとう、使わせてもらいます。
478 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 09:35:49 ID:OXmG24Mg0] スクリプト内でも関数ライブラリ使ってんの忘れてたorz 秀丸でAHK編集する人のための CompleteX 用設定 ファイルパス関数群 (Path.ahk)同梱版 www6.atwiki.jp/eamat/pub/MyScript/MyLibList_200090318.zip
479 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 14:37:20 ID:zm0v5CvW0] みんな宜しくよノシ
480 名前:名無しさん@お腹いっぱい。 [2009/03/18(水) 19:11:42 ID:wqUWRKfJ0] atokの変換リストを表示中に autohotkeyで操作をしたいのですが atokの変換リストを表示しているかどうかを 取得する方法が分かりません。 window spyを使っても使用しているエディタの情報だけを 取得してしまっているようです どうすればいいのでしょうか
481 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 21:24:09 ID:xJ1I3V720] IME.ahk でいいじゃん。とおもったけどリストが出ているかどうかは分からないのね。 で、原始的だが変換リストを出してマウス直下の窓を調べるほうほうでやった Pause:: MouseGetPos,,, hwnd WinGetClass, class, ahk_id %hwnd% Tooltip, %class% return ATOK2007なので"ATOK20Cand" だった。 で、いい加減だけど、指定の窓があったら(ウィンドウハンドルが0以外なら) 変換中とすればいいんじゃないかな Pause:: Tooltip, % WinExist("ahk_class ATOK20Cand") return これが出ているとき専用のキーバインドが欲しいなら #Ifが使える、Autohotkey_Lが向いてそうだ #If WinExist("ahk_class ATOK20Cand") a:: hoge b:: hige
482 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/18(水) 21:26:05 ID:xJ1I3V720] あ、、、#IfWinExist でいいじゃん・・・orz
483 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/19(木) 00:19:09 ID:DoWJYG5p0] >>481-482 おお!期待通りに動きました ありがとうございます!
484 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/19(木) 09:46:28 ID:iKaTZieB0] 超初歩的質問なんですがデスクトップをダブルクリックしたのを検出するのってどうやるんでしょうか OSはVISTA32SP1です
485 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 17:37:19 ID:oBtBrUgR0] こんにちは。わたしも質問です。 テンキーをマクロ用のホットキーとして使用してるのですが、 NumLockキーを押すと、「NumLock On&AHK Suspend」 もう一度押すと、「NumLock Off&AHK 再開」 このトグル動作をさせたいのですが、どのように記述すればいいのでしょうか。 よろしくおねがいします。
486 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 17:53:19 ID:Ie0QoNxm0] SuspendじゃなくてPauseな気もする
487 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:03:04 ID:Ie0QoNxm0] >>484 カーソル下をahk_class Progmanか否かで判別し、あとは下記を参考でできるかな? ~CTRL:: if A_PriorHotkey <> %A_ThisHotkey%, return if A_TimeSincePriorHotkey > 400, return ;some action return
488 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:11:28 ID:Ie0QoNxm0] ああ、だめだ。あと下記も参考に 670 名前:665[sage] 投稿日:2008/06/06(金) 19:45:37 ID:89UJiJcz0 >>669 うあそういうことか >>667 自レスも含みますが>666であったファイルの選択の状態を取得する他の方法を探したところ ControlGetが使えそうなのでそれでやってみたテスト ~LButton:: MouseGetPos,MouseX,MouseY,WindowID,ClassNN,1 ; カーソル下の情報を取得(ClassNN以下いらないような WinGet,DesktopID,,ahk_class Progman ; デスクトップのウィンドウIDを取得 ControlGet,StateListView,List,Selected,%ClassNN%,ahk_id %WindowID% ; StateListViewにSysListView32の選択項目名を入れる If(A_TimeSincePriorHotkey<300 && DesktopID==WindowID && StateListView=="") ; デスクトップ上である&選択項目がない Send,!{Numpad1} return アイコンのないところでダブルクリックをしたとき、イベントを乗っ取らないダブルクリックなので、 丁度よく最初のクリックの時点でデスクトップがアクティブになって選択状態が外れる 同じ方法でエクスプローラ・Openダイアログ等の余白をダブルクリックで上階層移動もできる 選択項目を利用するので MButton:: 等では途中に左クリック入れるとかしないとそのままではできない・・
489 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 18:41:45 ID:oBtBrUgR0] >>486 レスありがとうございます。 ~NumLock::pause でできました^^
490 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 20:49:30 ID:q1D8qFby0] へ〜、UpperDirOneみたいなのが楽につくれるなぁ・・・と思ったけど ~LButtonでフォルダ移動の場合、項目がとれる前に移動が完了ちゃって フォルダに移動した後にBackspace送っちゃって元通り・・・で意図したとおりに動かない 結局 ~ なしになったけどうまくいかんもんだねぇ SetTitleMatchMode, RegEx #IfWinActive, ahk_class CabinetWClass|ExplorerWClass LButton:: if (A_ThisHotkey==A_PriorHotkey && A_TimeSincePriorHotkey<300) { MouseGetPos,,,,classNN ControlGet, selected,List,Selected, SysListView321, A Send, % (classNN=="SysListView321" && !selected) ? "{BackSpace}" : "{LButton}" } else { Send, {LButton Down} KeyWait, LButton Send, {LButton Up} } return
491 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/20(金) 20:54:15 ID:w27aWi9q0] >>488 ,489 ありがとう! 月曜まで家に帰れないから試せないけど、帰ったらやってみる!
492 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:19:19 ID:JP2qPQY00] 某スレで盛り上がってたので書いてみました。 カーソルをくるくる回すとスクロールします。 ttp://lukewarm.s101.xrea.com/up/file/105.zip
493 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:26:44 ID:g8LL/GxK0] >>492 どうやってAHKで再現しようか考えていたら・・・ ありがたく頂きます
494 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:28:23 ID:ft3ZieEm0] これは面白いw タッチパットのノートパソコンだとうまく利用できそう。
495 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 00:45:49 ID:daHpkZkf0] おお、すんばらし。 組み込むと色々応用が効きそうだ。
496 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 01:16:17 ID:e7LMny/o0] autohotkey.ini に includeで #Include kurukuruscroll.ahk と書いて使わせてもらったんだけど、includeする位置によって使えたり 使えなかったりするのはなんでだろう。 マニュアルのどこを読めばいいのか教えて欲しい。
497 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 05:54:27 ID:enEmkL2t0] >>492 一つに纏められて助かりました 認識率と反応も完璧だね
498 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 07:41:19 ID:QvNRDM9W0] >>496 ttp://lukewarm.s101.xrea.com/Scripts.html ここの一番下auto-executeですね。 ホットキーが書いてあるとこより前に組み込みます。 変数が重複しないよう気をつけましょう。
499 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 08:45:00 ID:e7LMny/o0] >>498 ありがとう!!! 各includeファイルのauto-executeセクションをautohotkey.iniのauto-executeセクションに移動したらうまく動いたー。 今までauto-executeセクションって知らなかった^^; *.ahkを includeするときって autohotkey.ini ------------------- AAA.ahkの auto-executeセクション BBB.ahkの auto-executeセクション return #Include AAA.ahk #Include BBB.ahk ;ホットキー定義開始 -------------------
500 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:41:42 ID:mEL9l3Hw0] ダブルクリック検出の件だが、何とかなったので張ってみる。コードのインデントに全角空白使ってるので注意。 ; IsDoubleClicked関数 ; ダブルクリックを判定する関数、L,R,M,X1,X2の各ボタンに対応 ; システムからダブルクリック時間、範囲を取得して判定、AutoHotkey_Lの#ifでの使用を想定 IsDoubleClicked(){ Static dcTime=0,LastTime,tx,ty,LastMouseKey=0,lx=-256,ly=-256,lr=0 if(!dcTime){ dcTime:=DllCall("GetDoubleClickTime") SysGet,tx,36 SysGet,ty,37 LastTime:=A_TickCount-dcTime*2 } if(A_TickCount=LastTime) Return lr NowMouseKey:=(GetKeyState("LButton","P") | GetKeyState("RButton","P")<<1 | GetKeyState("MButton","P")<<2 | GetKeyState("XButton1","P")<<3 | GetKeyState("XButton2","P")<<4) VarSetCapacity(Point,8) DllCall("GetCursorPos","uint",&point) if((LastMouseKey!=NowMouseKey)||((A_TickCount-LastTime)>dcTime) ||(abs((NumGet(Point,0)-lx))>tx)||(abs((NumGet(Point,4)-ly))>ty)){ lx:=NumGet(Point,0),ly:=NumGet(Point,4) LastTime:=A_TickCount,LastMouseKey:=NowMouseKey Return lr:=0 } else{ LastTime:=A_TickCount-dcTime Return lr:=1 } }
501 名前:500 mailto:sage [2009/03/21(土) 09:42:42 ID:mEL9l3Hw0] ; Lv_HitTest関数 ; リストビューでアイテム上にマウスがある時に種類を返す ; そもそもリストビュー上でない場合は何も返さず、 ; アイテム上にない場合は0を返す ; 参考:流行らせるページの MouseGesture.ahk 内 MG_LvHitTest() 関数 Lv_HitTest(){ MouseGetPos,,,hwnd,class,1 MouseGetPos,,,,chwnd,3 WinGet,pid,PID,ahk_id %hwnd% VarSetCapacity(point,8) DllCall("GetCursorPos","uint",&point) if(substr(class,1,13)=="SysListView32" || substr(class,1,9)=="TListView"){ p:=DllCall("kernel32.dll\GlobalAlloc","uint",0x40,"uint",8,"uint") NumPut(NumGet(point,0),p+0,0),NumPut(NumGet(point,4),p+0,4) DllCall("user32.dll\ScreenToClient","uint",chwnd,"uint",p) hp:=DllCall("kernel32.dll\OpenProcess","uint",0x001F0FFF,"uint",0,"uint",pid,"uint") pi:=DllCall("kernel32.dll\VirtualAllocEx","uint",hp,"uint",0,"uint",24,"uint",0x1000,"uint",0x4,"uint") DllCall("kernel32.dll\WriteProcessMemory","Int",hp,"uint",pi,"uint",p,"Int",8,"Int",0) SendMessage,0x1012,0,%pi%,,ahk_id %chwnd% DllCall("kernel32.dll\ReadProcessMemory","uint",hp,"uint",pi+8,"uintp",flag,"uint",4,"uint",0) DllCall("kernel32.dll\VirtualFreeEx", "uint",pi, "uint",0, "uint",0x8000) DllCall("psapi\CloseProcess","uint",hp) DllCall("kernel32.dll\GlobalFree","uint",p) flag:=flag & 15 return (flag<4) ? ((flag<2) ? 0 : "ItemIcon") : ((flag<8) ? "ItemLabel" : "ItemState") } }
502 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:43:29 ID:mEL9l3Hw0] ; IsDesktopDoubleClicked関数 ; デスクトップをダブルクリックした時にTrue IsDesktopDoubleClicked(){ Return IsMouseOverDesktop() && IsDoubleClicked() } ; IsMouseOverDesktop関数 ; マウスがデスクトップ上にある時にTrue ; bbLeanだとProgmanじゃうまくいかなかったので IsMouseOverDesktop(){ MouseGetPos,,,hwnd Return (hwnd==DllCall("GetDesktopWindow") ||hwnd==WinExist("ahk_class Progman")) }
503 名前:500 mailto:sage [2009/03/21(土) 09:44:06 ID:mEL9l3Hw0] ; 使い方 #ifじゃなくても何とかなるが、ダブルクリックじゃなかった時に ; 通常のクリックをするべきなので AutoHotkey_Lの#ifを推奨 #if IsDoubleClicked() && (WinActive("ahk_class CabinetWClass") || WinActive("ahk_class ExploreWClass")) && Lv_HitTest()==0 LButton::Send,{BS} #if IsDesktopDoubleClicked() LButton::Msgbox,デスクトップがダブルクリックされた #if 以上、長くなった&見にくくてすまんがこんな感じでできた。
504 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 09:50:33 ID:mEL9l3Hw0] ; おまけ:行頭の全角スペースとTabを相互変換するスクリプト #NoEnv #EscapeChar ' Gui,Font,,MS ゴシック Gui,Add,Text,,↓ここにコードを貼り付ける Gui,Add,Edit,w640 h480 vData Gui,Add,Button,gWsToTab,行頭の全角スペースをTabに変換 Gui,Add,Button,gTabToWs x+10,行頭のTabを全角スペースに変換 Gui,Show Return GuiClose: GuiEscape: ExitApp GuiDropFiles: if(A_EventInfo<=1) FileRead,Data,%A_GuiEvent% GuiControl,Text,Data,%Data% Return WsToTab: TabToWs: Gui,Submit,NoHide Output:="",w:=(A_ThisLabel="WsToTab" ? 1 : 0) Loop,Parse,Data,% chr(10) { chr:="",t:=A_LoopField While (SubStr(t,1,(w ? 2 : 1))==(w ? " " : chr(9))) t:=SubStr(t,(w ? 3 : 2)),chr.=(w ? chr(9) : " ") Output.=chr t chr(10) } GuiControl,Text,Data,%Output% Return
505 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 17:16:25 ID:5yWBri8L0] 横からすみません。 ググったらあんまりヒットしなかったので、以前貼られていた DoubleKey関数紹介しておきますね。 出展:www.donationcoder.com/Forums/bb/index.php?topic=5926.msg41894 DoubleKey(RunCommand, timeout){ if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < timeout) Run, %RunCommand% } return ~LButton up::DoubleKey("hoge.ahk", 400) みたいに各ボタンごとに処理を書いたahkファイル(ここでは同ディレクトリ内のhoge.ahk) を別途用意する必要はありますが、これでも動作しまっする。
506 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 17:28:06 ID:QyANxbob0] >>492 のスクリプトを縦スクロールじゃなくて、横スクロールに するにはどうすればいいんでしょうか?
507 名前:500 mailto:sage [2009/03/21(土) 18:03:47 ID:mEL9l3Hw0] >>503 のIsDesktopDoubleClickedを修正。 こうしないとアイコンダブルクリックした時にまで発動してしまう。 IsDesktopDoubleClicked(){ Return IsMouseOverDesktop() && IsDoubleClicked() && Lv_HitTest()==0 } >>505 確かにそういう方法でも時間内に2回クリックした時に何かするってことはできるんだけど、 1回目と2回目のクリック位置が離れてる時にも発動したり、 ↑みたいにアイコンダブルクリック時にも発動しちゃったりして、 いわゆるダブルクリック系の挙動としてはちょっと弱いかなーって思って書いてみた。 あと意地でも2回目のクリックを乗っ取りたかったってのもある。 でも少しこだわりすぎたかなーとは思ってる… まぁ、自分で組み込んで使ってるし結果的には満足。 >>506 WheelUpとWheelDownってなってるところを 横スクロールできるキーに変えればいいんじゃないかな。
508 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 18:08:20 ID:H5O5lVNo0] >>505 ID:mEL9l3Hw0がどこまで厳密なモノを求めてるのかわからんのでスルーしていたのだが。 そもそも>505レベルでいいんならこんなに頑張ったりはしないと思う
509 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 18:09:14 ID:H5O5lVNo0] リロってなかった。蛇足スマソ
510 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 18:27:06 ID:HbFBHhgK0] ぶっちゃけ、あっちのフォーラム行けばいくらでもあるけどね…
511 名前:500 mailto:sage [2009/03/21(土) 18:27:27 ID:mEL9l3Hw0] >>500 の書き方だと勘違いされそうなので 一応書いておくけど、俺は>>484 ではないです。 >>490 を見て、UpperDirOneに相当する機能は 別のソフト使ってたの思い出したので、 何とかAHKだけで実現できないかなと思って、頑張ってみた。 …これこそ蛇足だったかな。
512 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 19:39:14 ID:5yWBri8L0] >>507 申し訳ありませんでした > 1回目と2回目のクリック位置が離れてる時にも発動したり、 > ↑みたいにアイコンダブルクリック時にも発動しちゃったりして そらそうですよね・・・深く考えずに書き込んだこと反省してROM専に戻ります。 あと IsMouseOverDesktop関数はいろいろ使えそうですね。頂きます&&乙であります。
513 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/21(土) 20:03:23 ID:YAcqdaL20] >>461 超亀レスで失礼します。 見つけたので貼っておきますね。 試してませんが通常ののキーボードでも動作するようです。 USB接続のテンキーを、プログラマブルキーボード ttp://ioenc.net/magickeypad/
514 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:30:10 ID:GrExewU20] こんにちは MouseGesture2、2008/10/07版をVista SP1で使わせて貰ってます。 マウ筋の機能で「設定ホイール回転でアクティブ」という機能があるのですが (ArtTipsというソフトでは、SETTING>快適マウスホイール>快適マウスホイールを使用する>フォーカス移動を行う) これと同じ挙動をMouseGesture2で実現させるにはどのように記述すればうまく行きますか? あと、JaneDoe Viewなど一部のソフトでWinMinimizeを使って最小化すると デスクトップ左下にタイトルバーの小さくなったものが、残って最小化されてしまいます。 これを回避する方法を教えて下さい。
515 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:41:41 ID:scspGd4S0] 簡単なのはWheelUpとWheelDownのDefault(及び各々の条件)に WinActivate を記述する
516 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:46:37 ID:T0zgn4OC0] 流行らせるページのホイールリダイレクトでもいいんじゃね
517 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 11:56:01 ID:4c0Fopck0] アクティブにしつつスクロールするなら両方
518 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 12:23:38 ID:GrExewU20] >>515-517 親切に即レスありがとうございます。 >簡単なのはWheelUpとWheelDownのDefault(及び各々の条件)に >WinActivate >を記述する が一番挙動が近かったのですがマウ筋とArtTipsの機能は Xplorer2などの二画面ファイラーや小ウィンドウがあるようなソフトに対しても 各ウィンドウをホイールの回転でアクティブに出来るので、このような挙動を望んでいますが 無理な場合WinActivateでアクティブにするようにしたいと思います。 しかし、この場合ホイールUp、Dnでアクティブになったあと普通にスクロールが利かなくなってしまいますよね?
519 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 12:46:54 ID:ZBRd96Tp0] >>490 をファイル選択ダイアログでも効くようにした 注意) 全角スペース利用、誤爆が無いとは言えない ; UpperDirOne LButton:: if (A_ThisHotkey==A_PriorHotkey && A_TimeSincePriorHotkey<300) { MouseGetPos,,,,classNN if (classNN=="SysListView321") { ControlGetText, text, SysListView321, A if (text == "FolderView") { ControlGet, selected,List,Selected, SysListView321, A if (!selected) Send, {BackSpace} } } } Send, {LButton Down} KeyWait, LButton Send, {LButton Up} return
520 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 17:35:30 ID:Rn9QKfmc0] MouseGesture2の設定で動作割り当てのキー操作を発生させるのパラメーターに 無変換キーの2回押しを設定したくて{無変換}{無変換}とやってみたのですが 認識してくれません。無変換キーは何で登録すれば良いでしょうか?
521 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 17:37:47 ID:Biaw3oNa0] >>520 ttp://lukewarm.s101.xrea.com/KeyList.html
522 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 18:04:15 ID:Rn9QKfmc0] >>521 ありがとうございます。そのページは見落としていました。 早速、カーソルが画面左下角に接触で1秒遅らせて無変換を2回押しがしたくて動作に if(!MG_Timer(-1000)){ Send,{vk1Dsc07B}{vk1Dsc07B} } や if(!MG_Timer(-1000)){ Send,{vk1Dsc07B} MG_Wait(100) Send,{vk1Dsc07B} } など、やってみたのですがうまく動きません。 どなたかアドバイスお願い致します。
523 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/22(日) 23:07:53 ID:gJvAxqMw0] 動作の確認音にSoundbeepを使ってたけど、パソコン変えたらビープが鳴らないw
524 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 09:06:05 ID:Y2hrPoG60] とりあえず転載、ID:GrExewU20 と ID:Rn9QKfmc0 はモリタポ用意して制作者の教えを乞え lukewarm.s101.xrea.com/test/read.cgi/bbs/1146398137/123 > 123 名前:管理人 ★[] 投稿日:2009/03/23(月) 06:07:20 > 2chのAutoHotkeyスレにMouseGesture.ahkの質問が書かれていたのに、DION規制で書き込めなくて困る。 > 誰か親切な人があと555モリタポほど恵んでくれれば、p2で書き込めるのだが。 > find.2ch.net/moritapo/give.php?RK=93127982ff852cf03449c204be39fc07&AM=&CM= エノユ、「、熙ャ、ネ、ヲ、エ、カ、、、゙ しかしDION規制まじむかつく、Viewは何故か24時間以上起動させっぱだと●ログイン無効になるので いちいち再起動させなくちゃいけなくて面倒だ
525 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 09:53:24 ID:Edo9xp5W0] >>3 のとおりに、CapsLockをF13〜F24に割り当てようと思うんだけど、 Change Keyってどうやってこれ割り当てるの?? 似たようなレジストリ変更タイプのキーチェンジソフトいくつか探してみたが、 どれもF12までしか割り当てられないっぽい・・・
526 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:36:14 ID:WUKQO+dS0] >>522 Send,{vk1Dsc07B}{vk1Dsc07B} → Send,{vk1Dsc07B 2} MG_Wait(100) → Sleep,100 >>518 Jane Doe Style は「ウィンドウ(W)」→「最小化(M)」 があるのでそれを実行させればいいんじゃない? Send,!w Send,m それかJane Doe Styleのショートカットキーのカスタマイズで 最小化にキーを割り当ててそれをSendするとか。 アクティブにしてスクロールは アクティブした後にWheelUp(Down)を送ればいいじゃない。 あと、コンボボックスをアクティブにしようとすると コンボボックスが消えるのでアクティブにしないようにしとけば 概ね支障なく動くはず。
527 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:36:56 ID:WUKQO+dS0] << >>526 の続き >> ;WU_ の Default に↓の2行を追記する。 gosub, CursorUnderActivate Send,{WheelUp} ;WD_ の Default に↓を2行を追記する。 gosub, CursorUnderActivate Send,{WheelDown} ;MG_User.ahk をテキストエディタで開き、以下を「サブルーチン定義」内にコピペ ;マウスカーソル下をアクティブにする関数 CursorUnderActivate: MouseGetPos,,, m_id, m_control WinGetClass, m_class, ahk_id %m_id% ;マウスカーソル下がコンボボックス(ドロップダウンリスト)ならreturn If(RegExMatch(m_control, "ComboLBox\d+")) return ;マウスカーソル下が非アクティブならアクティブ化 IfWinNotActive, ahk_id %m_id% { SetWinDelay,-1 WinActivate SetWinDelay,100 } return ;これで支障が出るなら>>517 の方法がいいと思う。
528 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:39:05 ID:WUKQO+dS0] あ、ウィンドウクラスは必要ないので↓は要らないや・・・ WinGetClass, m_class, ahk_id %m_id%
529 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 12:40:24 ID:WUKQO+dS0] ×;マウスカーソル下をアクティブにする関数 ○;マウスカーソル下をアクティブにするサブルーチン
530 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/23(月) 13:54:01 ID:1ZxaOcnN0] >>525 K SC Type Up/Dn Elapsed Key ------------------------------------------------ 7C 064 i u 0.04 F13 7D 065 i u 0.04 F14 7E 066 i u 0.04 F15 7F 067 i u 0.04 F16 80 068 i u 0.04 F17 81 069 i u 0.04 F18 82 06A i u 0.04 F19 83 06B i u 0.04 F20 84 06C i u 0.04 F21 85 06D i u 0.04 F22 86 06E i u 0.04 F23 87 076 i u 0.04 F24
531 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/24(火) 23:15:50 ID:mXwaygr80] 多重起動を検知したくて以下のようにしたんだけど、 除外タイトルって効いて無い それともPIDとかでの除外は無理なのかな #SingleInstance, OFF Process, Exist myPid:=ErrorLevel DetectHiddenWindows,On IfWinExist, %A_ScriptFullpath% ahk_class AutoHotkey,,ahk_pid %myPid% MsgBox, あり Else MsgBox, なし
532 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 01:46:19 ID:zeEEOJ2T0] >>531 >>144 ,147,153 前々スレに多重起動検知で終了とかはあったよ。 タイトルが一緒でPIDが違うならで、判別してた。 一部だけ引用 ;自分の情報を取得 DetectHiddenWindows, On Process,Exist pid:=ErrorLevel WinGetTitle, g_scriptTitle, ahk_pid %pid% WinGet, hwnd, id, ahk_pid %pid% ahk_class AutoHotkey ;ahk_class AutoHotkeyのウィンドウを全て列挙 WinGet, ahk_id_list, list, ahk_class AutoHotkey Loop, %ahk_id_list%{ this_id:=ahk_id_list%a_index% ahk_id_list%a_index%= WinGetTitle, this_title, ahk_id %this_id% if(g_scriptTitle==this_title && hwnd!=this_id){ ;自分以外で同じタイトルを見つけたら終了メッセージを投げる。
533 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 08:36:04 ID:zeEEOJ2T0] 暇だったから、作ってみた。あまりの使えなさに吹いたw #persistent CoordMode, Mouse, Screen Settimer, Expose return Expose: MouseGetPos, X, Y if (Y<1){ ;左右に並べて表示 SendMessage,0x111,405,,,ahk_class Shell_TrayWnd keywait, LButton, D KeyWait, LButton ;元に戻す SendMessage,0x111,416,,,ahk_class Shell_TrayWnd Loop { MouseGetPos, X, Y if (Y>2) break } } return
534 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 13:01:45 ID:UMyjgm290] >>525 俺はchangekeyでF13を割り当ててるよ。