1 名前:名無しさん@お腹いっぱい。 [2009/05/23(土) 00:23:38 ID:78PWRd9v0] ■公式 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/ 7 pc12.2ch.net/test/read.cgi/software/1230694774/ ■派生版 AutoHotkey_L www.autohotkey.net/~Lexikos/AutoHotkey_L/ 駄目文字微対策版 yak.myhome.cx/junks/#ahk.cp932 関連リンク>>2 以降も参照
159 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 18:26:19 ID:mkWh48Pk0] exeの場合は、起動時に解凍する処理が入る その後はどっちも同じ
160 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 19:42:44 ID:GcGcBK5q0] すいません教えてください。 Loop, Read, exclude.txt ; 削除したい行を改行区切りで列挙したファイル { match := A_LoopReadLine Loop, Read, %1%, *temp.txt { if (A_LoopReadLine != match) FileAppend, %A_LoopReadLine%`n } FileMove, temp.txt, %1%, 1 } こんな感じでマッチした行を削除したいのですが、元の場所に改行が残ってしまいます。 削除した行だけ改行を詰めるにはどうやったら良いでしょうか。 FileReadして Loop, Parse, var, `n, `r, でも同じでした。
161 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 19:50:53 ID:WA7XkMG90] >>159 なるほど ありがとうございました
162 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 20:48:11 ID:NOGmzyJY0] >>160 ループの入れ子が想定と逆だったから分かりづらかった。 それと、ファイルI/O多すぎじゃない? どっちのファイルも巨大(100M〜)ならしょうがないけど、 どっちかをメモリに積んだ方がいいと思う。 俺ならこうする。 FileRead, ExcludeLines, *t exclude.txt ExcludeLines = `n%ExcludeLines%`n Loop, READ, src.txt, output.txt If InStr(ExcludeLines, "`n" . A_LoopReadLine . "`n")==0 FileAppend, %A_LoopReadLine%`n
163 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 21:55:55 ID:GcGcBK5q0] >>162 ありがとうございます。 うーm、しかし他の場所の改行も削除されてしまうYO FileRead, ExcludeLines, *t exclude.txt ExcludeLines = `n%ExcludeLines% ;改行残る Loop, READ, src.txt { if InStr(ExcludeLines, "`n" . A_LoopReadLine . "`n")==0 var = %var%`n%A_LoopReadLine% else count = %A_Index%`,%count% } StringTrimLeft, var, var, 1 StringTrimRight, count, count, 1 Loop, Parse, var, `n, `r { if A_Index not in %count% FileAppend, %A_LoopField%`n, output.txt } ;FileMove, output.txt, src.txt, 1 return こんなんしか思いつきません><;
164 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 18:41:24 ID:wStbLZev0] Hayateというフリーソフトでキーのリピート速度やリピート開始時間を変えても AutoHotKeyのホットキーラベルを介すとデフォルトのリピート速度になってしまいます ex) Down:: Send, {Down} Hayate側のキーリピート速度でホットキーラベルを実行する方法はないでしょうか ちなみにHayateというフリーソフトは検索してもなかなか出てこないですがfrozenlib.net/app.html にあるものです
165 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 18:50:30 ID:Ezplb6lV0] SetKeyDelay SendやControlSendコマンドでの1キーごとに挿入される間隔を変更
166 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 18:56:50 ID:wStbLZev0] SetKeyDelayを小さく設定することは試したのですがキーリピートが開始されるまでの時間が変化無しです
167 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 19:12:29 ID:Ywd4Dynt0] SendPlay
168 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 19:31:21 ID:wStbLZev0] 試しに以下のように設定してみましたが改善されませんでした SetKeyDelay,-1,-1 SendPlay, {Down} SendPlay以外も一応試しましたがうまくいきませんでした あきらめるしかないですかね
169 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 19:35:48 ID:N+aijEuz0] その何とかってのは知らないけど、仕組み的に両立は無理なんじゃないのかね
170 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 19:57:24 ID:wStbLZev0] そうですか。残念 ありがとうございました
171 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 21:58:14 ID:kA+0+7DI0] >>162 ごめんなさい163です。すんごい初歩的な所で勘違いしてました。 >>162 のでバッチリです。本当にごめんなさい
172 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 22:18:00 ID:o631qgYJ0] >>160 perl使えばいいよ。2GBのテキストでもperlなら処理できる。
173 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/10(水) 20:49:55 ID:i0OR+VsR0] キーの取りこぼしが生じるときには どのパラメーター設定をいじればいいのでしょうか 現在この5つを設定しています SetWinDelay, 0 SetControlDelay, 0 SetKeyDelay, 0 SetBatchLines, -1 SendMode Input
174 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/10(水) 21:42:19 ID:tNiIalHL0] キー入力イベントの取りこぼしだとしたらどうしようもない(原理的には無いはず) GetKeyState などでの状態取得で取りこぼしがあるのだとしたらスクリプトが悪い もしくは AutoHotkey_L の #If でものすごく重い関数呼んでいるとか
175 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/10(水) 22:03:41 ID:i0OR+VsR0] >>174 ふむふむ スクリプトを見直します
176 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/10(水) 22:11:54 ID:OK2G++4p0] ホットキーラベルを実行した後そのホットキーの修飾キーが押され続ける現象がよくあります 根本的に起こらなくすることは出来ないのでしょうか もしくは発生しやすいホットキーの設定の仕方とかあったりするのでしょうか 過去ログにあった押され続けていることをツールチップで知らせる対策は一応やってます
177 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 13:54:37 ID:RYxlht2m0] ホットキーの修飾キーが押されっぱなしになる現象は ウチの環境では発生した記憶は無いけど 考えられる可能性としてCPU負荷が高いときに発生してるのかな? CPU負荷が高いときは各Delayを長くしたり、一時的に停止させたりすると発生率が下がるかも。 CPU使用率を取得するには流行らせるページ(↓)の「システムモニタ用関数群」を使うと簡単 lukewarm.s101.xrea.com/myscripts/index.html
178 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 20:40:44 ID:nqDZEveb0] >>176 自分も <+WheelUp::ShiftAltTab を使った後によくShiftが押されっ放しになります。 CPU負荷は10%くらいでも起きますね。なんでだろう
179 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 20:53:04 ID:Jqjy1sE50] Safari4を使われている方は、御存じだと思うのですが このブラウザはリンクを新しいタブで開くのに control + クリックの操作となり非常に不便でして AutoHotkeyのスクリプトで、リンクをクリックだけで タブを開く事は可能でしょうか
180 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 21:50:16 ID:tOyf+Vjo0] 状態に応じてタスクトレイアイコンが3種類に変化するスクリプトを コンパイルしてexe化することを考えています。 ahk2exeでコンパイルするときにiconを埋め込むことができますが、 ここで3種類のiconを埋め込むことも可能なのでしょうか? 外にiconを用意せずに、内部に埋め込んで利用するにはどうすればよいのか お知恵を拝借したくて参りました。どうぞよろしくお願いします。
181 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 23:40:41 ID:Act1V8T40] >>176 >過去ログにあった押され続けていることをツールチップで知らせる対策 どういうものですか? 興味があります。
182 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 23:45:35 ID:wKap2oAj0] >>181 これです 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
183 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 23:47:40 ID:Act1V8T40] >>182 ありがとうございます。 勉強になります
184 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 23:56:12 ID:g3bI05W70] WheelScroll.ahk の作者さん、見てらっしゃいますかー? (´∀`)ノ 前スレ809でご相談した、 マルチモニタで座標がマイナスのときスクロールしない件、ようやく調査できました。 どうやら Firefox と Google Chrome に特有の問題?だったようです。 > 1.スクリプト殺したノーマルの状態で通常のホイールが効いているか Yes > 2.ToolTip,mx=%mx% my=%my% とか追加して値がマイナス値になってるかどうか OK > 3.互換モード(WM_SCROLL)で動かした場合も動かないのか アプリによって違う [初期設定] OK: Word 2007, Excel 2007 (ClassNN=XLDESK1), VBE, Explorer, Hidemaru, NG: Firefox 3.0.10, Google Chrome 2.0, [互換モード] ※ OK: Word 2007, Excel 2007, VBE, Explorer, Hidemaru, Google Chrome 2.0, NG: Firefox 3.0.10 (プラス座標でも動かない), ※「if (!scmode)MOUSEWHELL() 」の部分をコメントアウトして「SCROLL()」だけが使われるようにした > 4.管理人さんのホイールリダイレクト で正常に動くかどうか OK: Word 2007, Excel 2007 (ClassNN=XLDESK1), VBE, Explorer, Hidemaru, NG: Firefox 3.0.10, Google Chrome 2.0, というわけなのですが、何かおわかりになりますか?
185 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/12(金) 09:13:09 ID:xwya5VPS0] >>182 三項演算子を使えるのか AutoHotkeyでは使えないものだと早とちりしていた
186 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/12(金) 20:35:06 ID:UekHVJ+l0] >>179 済みません、このスクリプトの作り方を ご存じの方、教えて頂けないでしょうか 宜しくお願いします。
187 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/12(金) 21:03:44 ID:bITW0WaS0] それってSafariに限らずIE7以降やFirefoxでも一緒なのでは…。人間側が対応すれば? どうしても作りたいなら、単に左クリックにCtrl+左クリックのショートカット割り当てて 常駐させればいいんじゃね?
188 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/12(金) 21:09:54 ID:36hO0FeI0] IEはデフォでミドルクリック新タブに対応したけど Safariはまだなのか
189 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/12(金) 21:20:51 ID:ZrrVWnQk0] >>184 作者とは関係ないけど、 MOUSEWHELL関数内の ; lParam: XY座標 lpalam := (my << 16) | mx って所を VarSetCapacity(tmp, 4), NumPut(mx, tmp, 0, "Short"), NumPut(my, tmp, 2, "Short") lParam := NumGet(tmp, 0, "UInt") に変えてみたら動くかな?
190 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 00:15:39 ID:dhbOZypN0] >>184 どもです。XPSP2で現象確認しました。 >189氏でも突っ込み入ってますがバッファサイズと符号の問題っぽいですね。 ただ、VarSetCapacity() & NumPut()は自分もやってみたんですが上手くいかず。 泥臭いけど↓の記述でいけました。 ; lParam: XY座標 my += (my < 0) ? 0xFFFF : 0 mx += (mx < 0) ? 0xFFFF : 0 lpalam := (my << 16) | mx 初めはアプリ固有の問題かと思ったけど、問題が起こってたのはlParamの値を ちゃんと見てるアプリだったですね。 (逆に言うとほとんどのアプリはlparam値をデタラメに指定しても動くんだな) いづれ修正版を上げ直したくはあるんですが、色々手を入れたいとこがありすぎるんで ちょっといつになるかわからんです。 とりあえず当座は個々でのモデファイで対応をお願いします。
191 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 08:25:43 ID:FZfPnSVw0] AutoHotKeyではないあるウィンドウに ファイルがドロップされたことを知りたいんですが何か方法ありませんでしょうか
192 名前:名無しさん@お腹いっぱい。 [2009/06/13(土) 09:59:23 ID:tz1EHr/W0] 三項演算子の話が出ていたので便乗して質問します if (key = "q" or key = "w" or key = "e") { key = ok } の条件の部分を if key in q,w,e { key = ok } のように省略化して三項演算子を書きたいのですが無理でしょうか
193 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 10:20:05 ID:zUCF2v8d0] >>191 他のウィンドウへのD&DはWM_DROPFILESを検知しないとダメかも hook用のdllが英語のフォーラムにあったような記憶 >>192 一般論で言えば無理だけど、 instr("qwe",key) ? "ok":key みたいなことは書けると思う keyが複数文字なら instr("_q_ww_ee_","_" . key . "_") ? "ok":key とも書けるけど、 選択肢の数によっては普通に or で結んだ方が速いかも
194 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 11:49:58 ID:tz1EHr/W0] >>193 どうも この手は思いつきませんでした
195 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 13:15:03 ID:TEt0QNw/0] 高級なツールチップ表示関数を作ろうと思ってます ツールチップ番号ごとに独立した表示時間を持たせたいのですが 作り方が分かりません ツールチップ削除用ラベルも関数内で完結させようと思ってます とりあえず現時点のツールチップ削除機能がない関数です↓ ToolTip(msg, dur=2000, tipNumber=20, x="88%", y="95%") /****************************************** * スクリーンの絶対座標にツールチップ表示 * * @param msg - 表示メッセージ * @param dur - 表示時間(ms) * @param tipNumber - ツールチップ番号(1~20) * @param x - スクリーン座標。絶対値または%指定が可能 * @param y - スクリーン座標。絶対値または%指定が可能 ******************************************* */ { ifinstring, x, `% ; xに%が含まれていた場合の座標を算出する { StringReplace, x, x, `% x := A_ScreenWidth * x / 100 } ifinstring, y, `% ; yに%が含まれていた場合の座標を算出する { StringReplace, y, y, `% y := A_ScreenHeight * y / 100 } CoordMode, ToolTip, Screen ToolTip, %msg%, %x%, %y%, %tipNumber% return }
196 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 13:32:17 ID:uM8h8kxB0] チップ番号毎に消去用のタイマ設置じゃないの
197 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 13:37:14 ID:TEt0QNw/0] 20個ラベル作るってことですか?
198 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 19:06:14 ID:TEt0QNw/0] とりあえずラベル20個作って望み通りの挙動になりました ありがとうございます
199 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/14(日) 04:29:55 ID:uW112SM80] プログラマブルテンキーのリマップで困っているのですが VK SC Type Up/Dn Elapsed Key ------------------------------------------ A4 038 d 43.83 Alt 60 052 d 0.05 Num 0 60 052 u 0.02 Num 0 66 04D d 0.02 Num 6 66 04D u 0.00 Num 6 61 04F d 0.02 Num 1 61 04F u 0.00 Num 1 A4 038 u 0.02 Alt こんな入力があって発動するスクリプトは可能でしょうか?
200 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/14(日) 10:26:41 ID:aFW/syKk0] ALT押しながらテンキーの061ということでいいのかな。 前にも似たようなスクリプト貼られた気がするけど。 seq:="!Numpad0!Numpad6!Numpad1|UPUPDOWNDOWNLEFTRIGHTLEFTRIGHTba" ; 検出するキーシーケンス endkeys:="{Backspace}{Enter}{Left}{Right}{Up}{Down}{Delete}{Insert}{Escape}{Home}{End}{PgUp}{PgDn}" . "{Numpad0}{Numpad1}{Numpad2}{Numpad3}{Numpad4}{Numpad5}{Numpad6}{Numpad7}{Numpad8}{Numpad9}" . "{NumpadDot}{NumpadDiv}{NumpadMult}{NumpadAdd}{NumpadSub}{NumpadEnter}" . "{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Pause}{Break}{PrintScreen}" . "ba" ; endkeysには検出するキーを含める hist:="" Loop { Input, var, L1 V, %endkeys% if ErrorLevel=Max hist:="" else if InStr(ErrorLevel,"EndKey:") { hist.=GetKeyState("Alt","P") ? "!":"" hist.=SubStr(ErrorLevel,8) } Loop,Parse,seq,| if ( SubStr(hist,StrLen(hist)-StrLen(A_LoopField)+1) = A_LoopField ) Gosub % A_LoopField . hist:="" } !Numpad0!Numpad6!Numpad1: TrayTip,, %A_ThisLabel%:%A_TickCount% return UPUPDOWNDOWNLEFTRIGHTLEFTRIGHTba: TrayTip,, FullPower:%A_TickCount% return
201 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/14(日) 16:34:29 ID:uW112SM80] >>200 ありがとうございます。 参考にさせて頂きます。
202 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/14(日) 23:30:20 ID:DC/htVT+P] つい2,3日前に,このツールの存在を知りました。 いままで自分で欲しかった, 1 ブラウザやエディタ上で範囲選択 2 ホットキーでポップアップメニュー 3 Firefoxに送る,EBViewに送る,Googleで検索,Wikiで検索…… などの機能を持つスクリプトが,見よう見まねで書けたんですが, (かなり細かくTPO次第の条件分岐になるので,自動認識はさせない方針) ただ一つ「IE8にURLを送る」だけがうまくいきません。 仕事でどうしてもIE8が必要なので,あとここだけ動くと 言うことなしなんですが,何か良い手はありませんでしょうか。 Run, C:\Program Files\Internet Explorer\iexplorer %Clipboard% は駄目でした。
203 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 00:27:40 ID:t4Kz1iJG0] #1:: run, "C:\Program Files\Internet Explorer\iexplore.exe" "%clipboard%" http::// はいらんでしょ。そういう使い方してるんだったらごめん。
204 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 00:37:59 ID:DfoIckCV0] >>202 IE8をインストールしていないけど iexplorer.exe ではなく iexplore.exe じゃないかと。 それとパス中に含まれる半角スペースは %A_Space% に置き換えた方が確実に動くと思う Run, C:\Program%A_Space%Files\Internet%A_Space%Explorer\iexplore.exe %Clipboard%
205 名前:202 mailto:sage [2009/06/15(月) 00:54:56 ID:jQythkfVP] >203 さん 動きました! ありがとうございます。 http://は意図的です。仕事で使うシステムが, どういう意図なのかhttp://抜きのURL(←毎回違う)を 送ってくるシステムなので,苦し紛れの方法です。 でもよく考えたらこのほうが(どうせ人間が選択するなら) 便利だということにも気づいて,割と気にいってます。 >204 さん 返信見たときにかなり焦りましたが,iexplorerでした。 %A_Space%の件は気づいてなかったので, 試しに203さんの解に入れ込んでみたけどやはり駄目でした。 今後は気をつけて使うことにします。ありがとうございました。
206 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 01:01:22 ID:YLFCYF1c0] >%A_Space% これは流石にやりすぎだと思うが 行頭行末以外で勝手にtrimされるわけじゃないし
207 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 01:14:24 ID:YLFCYF1c0] なんかねぼけてた AutoTrimで設定できる範囲でどうのこうのって意味ね
208 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 01:30:23 ID:cH860UQK0] うちのは iexplore.exe だな、環境によって変わったりするものなのかw
209 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 01:42:15 ID:Rpm4wJtQ0] ウイルスじゃねw>iexplorer.exe 昔の名残でWindowsに最初から入ってるプログラムは 基本的に8文字までになってるから
210 名前:202 mailto:sage [2009/06/15(月) 01:51:19 ID:jQythkfVP] ホントだ,Iexploreですね……なに寝ぼけてるんだろう。 すいません。。。 ランチャー代わり&さっきのメニューだけで, 個人的にはとても満足。 次はマウス右クリック1秒でメニュー出るようにしてみます。 こういうのBasic以来だ。楽しい。
211 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 01:54:33 ID:Qf1MbZOM0] >>205 補足 ""で括るとそのままパスの文字列として扱われるので%A_Space%に置き換えると動かない。 (%A_Space%が半角スペースとして処理されない) ""で括らない場合は %A_Space% に置き換えると確実に動く。 >>206 半角スペースが区切りとして処理される場合があるので ""で括れるときはいいけど、括れないときに半角スペースを %A_Space% に置き換えてる。 前後に半角スペースやTabスペースが欲しいときにこういう方法がありますよー、ってことで。
212 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 19:01:59 ID:x31IQNlX0] XPのデスクトップ上で、たとえば、マイコンピュータが選択されている などのように、 現在選択されているアイコンを調べる方法はないでしょうか。 F2でリネーム→コピー→キャンセル というローレベルな方法で一応動いています。 #IfWinActive ahk_class Progman F1:: send,{F2} sleep,5 send,^c send,{ESC} sleep,5 var=%clipboard% if var=マイ コンピュータ msgbox,マイコンピュータが選択されている return #IfWinActive が、デスクトップの空き領域でこの操作をした場合、「空」になってもらいたいのに、 直前まで選択していたアイコンに強制的にフォーカスが移り、 意図しない動作になってしまいます。 それと、この方法だと「ゴミ箱」が検出できません。 もっとスマートな検出方法はないでしょうか。
213 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 19:56:45 ID:OJANZZ8e0] ゴミ箱のショートカットをつくり、デスクトップにそれを置く。
214 名前:名無しさん@お腹いっぱい。 [2009/06/15(月) 20:16:07 ID:uHI5LVh90] デスクトップの空き領域・ゴミ箱・普通のアイコンのそれぞれに SHIFT+F10で個別のコンテクストメニューがだせる あとは場合分け汁
215 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 20:45:43 ID:x31IQNlX0] >>213 なるほど、最悪そのようにしてみます。 >>214 どうもです。Shift+F10を押した後の場合分けの方法が思いつかないのですが、 コンテキストメニューの情報をテキストで取得する方法って有りますか? コンテキストメニューが出ているとき、最前面ウインドウから情報を 抜き取ってみましたが、デスクトップそのものの情報しか得られませんでした。
216 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 20:54:51 ID:Eq0wz7dd0] 礼も言わず「最悪そうします」とかw
217 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 21:07:27 ID:cPBSw7WG0] >>212 COMを使う方法がある エクスプローラの場合 ShellFolder() ttp://www.autohotkey.com/forum/topic20701.html デスクトップの場合 ShellDesktop() ttp://www.autohotkey.com/forum/topic20701-30.html#203520 必要なライブラリ com.ahk, acc.ahk ttp://www.autohotkey.com/forum/topic24234.html
218 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 21:33:37 ID:PR1YLCAc0] >>190 ご確認ありがとうございます。 ご教示いただいた方法を試してみたいと思います (が、また数日〜十数日先になるかもしれません)。
219 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 21:36:25 ID:x31IQNlX0] >>217 これでイケそうです。ありがとうございます!
220 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/16(火) 20:41:51 ID:DCCAcnmU0] タスクスケジューラに登録しているタスクの プロパティ(っていうんでしょうか?)を開くにはどうしたらいいでしょうか? Winキーや矢印キーを何回かSendして・・・という方法は思いつきますが タスクを追加や削除して順番が変わると書き換えが必要になるので、 できれば直接開く方法はないでしょうか? やりたいことは、プロパティを開いて「実行する」のチェックボックスを トグルするスクリプトを書くことです。
221 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 10:10:53 ID:WpDhJ6Es0] >>220 タスク名をタイプすればいいんじゃない? Send,task1 Send,{AppsKey}r 日本語なら流行らせるページの日本語コード変換とか使えばいけるハズ。 もしくは、Task Scheduler APIでゴニョゴニョするか、 ここのataskみたいなのを使うとか ttp://www.piedey.co.jp/softs/atask.html atask --set タスク名 TASK_FLAG_DISABLED 1
222 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 21:09:40 ID:QQe2Egi20] Gui, Add, ListView, w200 r10 Grid -Multi NoSortHdr AltSubmit vTEST gLV, aaa|bbb Gui, Add, Button, gXX, &XX Gui, Show Return LV: Lv_Add("", 1, 2) Return XX: Gui, 2:+Owner1 Gui, 2:Add, Button, w200 gHH, &HH Gui, 2:Show, Return HH: Gui, ListView, TEST Lv_Delete() Gui, 2:Destroy Return すみません、これでGui2のHHボタンを押したときに、Lv_Delete()が実行されず行き詰ってます。 Lv_Delete()を実行するボタンをGui1に追加してラベルに飛んだり、リストダブルクリックを A_GuiEvent で拾ってLV: の分岐で実行するようにしても上手くいかず、 Gui1にボタンを増やしてHHを押したら、Gui1側のボタンをクリックするようにしたらなんとか動作しました。 ControlClick, Button2, ahk_class AutoHotkeyGUI ControlClick, Button2, ahk_class AutoHotkeyGUI ;一回だけだと反応しませんでした 本当はどう書いたら良いのでしょうか。よろしくお願いします。
223 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 22:29:36 ID:6WNHPMfr0] >>221 ありがとうございます ataskを使うことにしました
224 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 22:31:13 ID:jrmVfvzF0] >>222 HH: Gui, 1:Default
225 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 22:33:03 ID:jrmVfvzF0] >>223 一応 ttp://www.atmarkit.co.jp/fwin2k/win2ktips/582schtasks/schtasks.html
226 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 23:28:11 ID:JeuLn3PH0] >>176 最近これがやたらと起きてまじで困る 何がいけないのか分からない AutoHotKeyのバグなの?
227 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 06:11:05 ID:HZFIWwq10] >>226 Logiのsetpointつかってない?
228 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 06:44:39 ID:turBMvGA0] >>227 マウスが路地のだからつかってる・・・
229 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 06:44:58 ID:VsQab8Ck0] >>193 規制やら何やらで返事遅れてしまいましたが フォーラムを漁ったらdllcallでole32\RegisterDragDropというのを使えばいいみたいでした 自分もSetWindowsHookExなどでWM_DROPFILES検知しようとしてたんですが、 Windowsって方法が色々あってむずかしいですね
230 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 07:02:32 ID:d+H9MLdZ0] >>224 おお、これだったんですか、ありがとうございます出来ました。
231 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 07:55:11 ID:Ojx5UvYg0] 基本的なことで申し訳ないんだけど テンプレなどのページでキーの変更などのことはわかったのですが、 どのようにして変更するかがわかりません。 たとえば「Ctrl+0」というのをF1に割りあげる場合どのソフトを起動し どのような設定にすればいいのですか?
232 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 08:03:38 ID:ts3k5Em40] それって結局何も分かってないってことじゃね?
233 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 09:14:25 ID:LcGKoNtW0] >>226 マウスのサイドボタンに setpoint で shift や ctrl を割り当ててない?
234 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 13:20:46 ID:7JmYAkRj0] LogiのMarbleMouse(トラックボール)を使ってるけど SetPointはカスタマイズ系ソフトと競合してたのでSetPointを入れてないな。 ボタンのカスタマイズはAutoHotkeyでやってる。 MSのIntelliPointも同様のことが発生するという書き込みを見たことあるけど 使ったことが無いので解らない。 SetPoint(ユーティリティソフト)をアンインストールしても ドライバはロジのままだったので手動で標準ドライバへ変更した記憶がある。 (標準ドライバにする必要があるかどうかは分らない。) それとキーボードのドライバもいつのまにかロジのドライバに書き換えられてたので それも標準ドライバに変えた。 現在のSetPointの仕様がどうなのか知らないけどね。
235 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 17:46:14 ID:CJ45cLgq0] メーカー純正のマウスドライバって微妙だよな。 かといってXPだとOS標準じゃでチルトホイール使えないし。 せっかくWheelLeft/Rightがサポートされたのに残念だ。
236 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 17:59:54 ID:HZFIWwq10] SetPointは、ノートPCのタッチパッド感度を勝手に初期化して加速を無効にしたり、 >>176 の押しっぱなし症状が出たりと、多岐にわたって殺意が沸くほど悪影響がある。 が、こいつを入れないとせっかくのチルトボタンが有効にできないから、涙をのんで入れてる。 チルトボタンだけをF13〜F24にまわすような代替のソフトなんて、ないよね? あったら、速攻でアンインスコしたい。 いまは、CtrlかAltが20秒以上押しっぱなしになってることを検出したら Setpointを強制Killして、2秒後に、あらためて起動させるようにした。 けど、これも完璧な対策にはならない。
237 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 18:07:05 ID:Ojx5UvYg0] 特定のウィンドウもしくはソフトがアクティブの場合の指定などがわかりません。 Ctrl+0をF1に割り当てる場合どうすればいいですか?
238 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 19:35:35 ID:HZFIWwq10] 1年ぶりにロジクールのスレを覗いてみたんだが、 >Q. SetPointの設定が勝手にデフォルトに戻るんですが? >A. キャンセルやクローズ(「×」)を押さないようにしましょう。 > >Q. SetPoint 入れたくない(使いたくない)んで違う神ドライバありませんか? >A. そんな都合のいいものがあったら是非教えてください。 添付アプリの糞加減は、なにも変わっていなかった・・・
239 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 19:41:07 ID:JJ+I/19Q0] 路地はハードは良いんだけどね と言うかマウスユーティリティで良いものってあまり見ない。 絶対使わなそうなランチャとかイラネ。 古いInteliPointとエレコムホイールユーティリティは良いと思う >>237 もうちょい頑張ろうぜ ttp://lukewarm.s101.xrea.com/Examples.html
240 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 20:16:32 ID:7JmYAkRj0] AutoHotkeyをインストールする (インストーラーでインストールするとahkファイルの関連付けが一緒に行われる) Autohotkey.exeと同じフォルダに 新規テキスト 作成する。 新規テキスト.txt を AutoHotkey.ini に変更する ※AutoHotkey.ini ではなく、任意の名前.ahk (ahkファイル)でもいい。 ※ahkファイルならどこに作成してもOK。 テキストエディタ(メモ帳など)で Autohotkey.ini を開く。 ウィンドウの識別方法はいくつかあるけど、ウィンドウクラスで識別する方法を。 ウィンドウクラスを調べる方法はいろいろあるけど同梱されている AU3_Spy.exe を使うと簡単。 (AutoHotkey.exeと同じフォルダにある) 取得した ahk_class をクリップボードにコピーする。 例えばメモ帳のウィンドウクラスを調べると Notepad ということが分かる。 #IfWinActive, ahk_class Notepad ; メモ帳がアクティブなら ^0::F1 これを AutoHotkey.ini に貼り付けて保存し、Autohotkey.exe を実行。 (任意の名前.ahk に貼り付けて保存した場合は 任意の名前.ahk をダブルクリック) 最初の取っかかりで躓いているのだろうけど 後は>>239 のリンク先に殆ど書かれている。
241 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:10:14 ID:Ojx5UvYg0] いまんとこできたのがソフトの起動のみ・・・ WinTitle Mozilla Firefox ^PgDn::F2 #IfWinActive MozillaUIWindowClass ^PgDn::F2 これでできません・・・何が間違ってるのでしょうか?
242 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:23:46 ID:wnsiLCT/0] F2::^PgDn じゃないの? ってか、とりあえず流行らせるページひととおり読もうぜ
243 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:49:21 ID:7JmYAkRj0] 「Ctrl+0にF1を」として書いてた・・・ 「Ctrl+0をF1に」なら F1::^0 だった 他の方も言ってるけどAutohotkeyを流行らせるページを見た? (主に関連する解説ページはウィンドウの指定方法、ホットキー、Remap)
244 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:52:18 ID:SVpnwZUO0] >>241 Sendを使う Remapは修飾キーを離してくれないので それだとCtrl+F2が押されたことになっている
245 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 00:10:42 ID:nmCnAcVn0] スレッド動作中に、ほかのキーが押されているかは「GetKeyState」で できますが、マウスのホイールが回ったかどうかを調べる方法は、ありますか? マウスの左右チルトを倒してスレッドを開始し、 そこでループさせながらホイールの上下入力を検知したいのですが、 ホイールの回転検出方法でつまずいてしまいました。
246 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 00:46:58 ID:IlTer6q60] こんな感じか ~WheelUp::wheel:=1 ~WheelDown::wheel:=-1 WheelLeftl:: wheel = 0 Loop { ほげほげ If (wheel!=0) ふがふが } Return
247 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:32:42 ID:nmCnAcVn0] >>246 ありがとうございます。うまくいきました。 なるほど、1スレッドにこだわるあまり、思いつきませんでした。
248 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:47:13 ID:yGrRFejp0] #IfWinActive MozillaUIWindowClass F2:: Send ^ Send PgDn return これでも駄目だった・・・なぜかしらん?
249 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:59:10 ID:pArZgo1w0] いいかげん解説くらい読んでくれ
250 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 13:42:58 ID:567XQ0M40] >>248 ctrlとPgDn別々に押してるんだから動かなくて当然 あとSendのページ読めば{}やら,やら必要なのもわかるはず それと、なんで>>242 試してみないの?
251 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 18:13:40 ID:fIAAihen0] まあ ahk_class 付いてない時点でウィンドウ判定に失敗してるんだけどな
252 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 19:46:31 ID:yGrRFejp0] ここ2、3日騒いでいた者ですがなんとか設定できました。 F2::^PgDnで問題なくできました。 問題は、251さんの指摘しているところですw
253 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 19:53:11 ID:YBCNr5+M0] もう二度とこないでね^^
254 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 20:18:25 ID:hGBhDH/a0] >>226 ,227,228,233,234 自分>>178 なんですが、ロジのマウス使ったことないですがやっぱりShiftが押されっぱなしになりますね。 マウスドライバはMSの純正で、ボタン割り当てはAutoHotkeyのみでやってます。 LShift & WheelDown::AltTab LShift & WheelUp::ShiftAltTab だけで走らせてみたところ、LShift & WheelDown::AltTab でフォーカスを移したあと、マウスクリックで 元のウィンドウに戻ってくると、毎回 Shiftが押されっぱなしになることが分かりました。 TeraPadとJanedoeViewで確認。 LShift & WheelUp::ShiftAltTab では大丈夫みたいです。 マウスはサンワのTB38という5ボタンのトラックボール、メーカーのドライバを入れた前歴はありません。 キーボードがへたってるのかなあ
255 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 20:29:17 ID:IlTer6q60] ■ キー押しっぱなし俺的まとめ ■ 症状 i) キーはCtrl や Shift が多い ii) 物理キー押下・押上で解除される 原因となっていそうなもの A) SetPoint(ロジクール製マウスユーティリティ) B) 窓使いの憂鬱(のどか) C) VMWare / VirtualPC A単独、もしくは (B または C) + デュアルコア以上のCPU ※ ソースは繭スレとか ---- 俺はCore2のPCにした時 B で一度なってAHKに完全移行(OS再インスト)で いったん無くなったけど、VMWareを入れて(C)再発した。 今はどちらも入れていないので特に問題は起きていない。
256 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 20:59:14 ID:NFr4v0Hr0] 何分後に動作 とか 何時何分に動作 っていうタイマーってできないかな? 1分ごとに監視するのは無駄な動作が多い
257 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 21:11:27 ID:NFr4v0Hr0] 何分後ってのはタイマーで指定すればいいだけか 時間指定できないかな
258 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 21:24:32 ID:hGBhDH/a0] >>255 AとCは該当なし、Bは使った事ないですがChangeKeyで前変換とカタカナキーを殺していたのを思い出して リセットして再起動してみましたが駄目でした。自分もCore2DuoのE8400です。 OS再インストールするしかないのかな・・・ orz
259 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 21:59:46 ID:RvBowY+q0] 結局これといった解決方法は無しかorz