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 以降も参照
52 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 01:23:49 ID:g2Gpk75K0] SetTimerって待機スレッド(プロセス?)がどんどん溜まって 重くなったりしないかと不安であまり使ってない…。実際のところどうなんでしょ?
53 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 05:19:31 ID:UHCBZ4+L0] Autohotkeyの中で疑似スレッド的に動いてるだけで、OSから見たら常に単一プロセス単一スレッドだから CPUやメモリリソースへの負荷はあまり考える必要が無いと思うけど。 疑似スレッドの制御は本物のプロセス/スレッドのように複雑じゃないので、 実質上の負荷は、実際にタイマースレッドで動作するAHKコードの量で判断してもかまわないと思う。 それにスクリプト実行中はSetBatchLinesで指定した間隔で10msのスリープも入って、 OS全体の負荷を高めないような作りにもなってるし。
54 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 16:22:04 ID:ar6yU5aO0] AutoHotKey、さっきはじめて知りました。 スクリプトとか全然わかりませんし、わかるのはBASICぐらいですw でもなんとかマニュアルを参考にして10分ぐらいいろいろやってるのですが。。。 たとえば、Winキー+y で、iTunesがアクティブなときだけ最小化したいんですが、 スクリプトは、これでOKでしょうか? 一応動いているのですが、なにか問題があるでしょうか? >>>>>>>>>>>>( iTunesがアクティブなら最小化 )<<<<<<<<<<<<< #y:: IfWinActive iTunes WinMinimize,iTunes IfWinActive return レベルが低い質問でごめんなさい...orz そもそも、なにがやりたくてAutoHotKeyを知ったのかといいますと、 任意のホットキーを押したとき、 (1)任意のアプリが起動していなければ起動する。 (2)任意のアプリが起動していて、かつ、最小化状態またはバックグラウンド状態なら、アクティブに(最前面に持ってくる)。 (3)任意のアプリが起動していて、かつ、最前面(アクティブ)ならば、最小化する。 こういうのをやりたかったんです。
55 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 16:24:36 ID:ar6yU5aO0] そもそもなぜそんなことをやりたいのかといいますと、、、 最近、プログラマブルキーボードを買ったのですが、 1つのキーだけで、任意のアプリのアクティブ化と最小化をトグルしたい。 あるキーを押したら指定したアプリのウィンドウが最前面に来て、 そのアプリが最前面にあるときに、そのキーをもう一度押したら そのアプリのウィンドウが最小化する、みたいな感じです。 でもそんな簡単なことすらプログラマブルキーボード付属のユーティリティーではできず。。。 で、いろいろ考えて、その任意のアプリにWindows標準のホットキーを割り当て、 プログラマブルキーボード側の任意のキーにそのホットキーをアサインすれば、 上記の(1)と(2)だけは実現できるんですが、(3)がどうしても実現できないんですよね。 んで、国内外のフリーウェアをかなりいろいろ試したんですが、(1)(2)と同時に(3)ができるものが 数時間探しても見つけられず、また、こういうのって、 検索ワードがホットキーとか最小化とか一般すぎる言葉になっちゃって 自分の求めているソフトを検索エンジンで探しにくいんですよね。。。。 てなわけで、長くなってしまいましたが、AutoHotKeyにこれからハマってみる予定です GUIまで作れちゃったりするみたいで、恐ろしいほど高性能でびっくりですよ、ほんと。
56 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 16:25:18 ID:ar6yU5aO0] コメントアウトは >>>>>>>>>>>> で大丈夫でしょうか?
57 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 16:32:10 ID:Rj+x9ILK0] まだ初心者の俺が、試しもせずにしゃしゃり出てみる #y:: IfWinActive, iTunes { WinMinimize,iTunes }else{ Process,Exist,notepad.exe If ErrorLevel<>0 WinActivate,ahk_pid %ErrorLevel% else Run,notepad.exe } return
58 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 18:06:51 ID:ar6yU5aO0] >>57 早速、ありがとうございます! notepad.exeになってしまってますが、 iTunes.exeに変えると動きますね!
59 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 18:08:03 ID:ar6yU5aO0] >>55 ,56を書き込んだあとに、自分で考えたものは以下でした。 以下でも一応ちゃんと動くみたいです。 でも、>>57 さんのように、ちゃんとahk_pid %ErrorLevel%みたいに 指定したほうが確実ですよね? #y:: IfWinActive,iTunes { WinMinimize,iTunes } else { WinActivate,iTunes Process,Exist,iTunes.exe If ErrorLevel=0 { Run,iTunes.exe } } ;;;IfWinNotExist iTunes ;;; Run,iTunes.exe return ただ、iTunesって名前が付いたフォルダとかアプリが開いていると そっちのほうが最小化しちゃったりしますけど、それも本当は、キッチリPIDを調べてやれば、誤動作もなくなるんですよね? 数時間いじったらかなりわかってきました!ありがとうございます!! 本当に面白くて可能性を感じるソフトですよね!
60 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 18:08:51 ID:ar6yU5aO0] ありゃりゃ、 ;;;IfWinNotExist iTunes ;;; Run,iTunes.exe の部分はコメントアウトでした..orz
61 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 19:31:15 ID:Rj+x9ILK0] ちなみに>>57 のやつはAutoHotkeyを流行らせるページに載ってたヤツのコピペです。 暇なときにでものんびり読んでみるといいよ。
62 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 21:32:48 ID:jz4l290M0] >>36 これはいいね。使わせてもらうよ ところでライセンスは何?
63 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 22:02:37 ID:k3jZrIoJ0] マウス周囲のを指定した大きさの正方形でデスクトップまで穴をあける。再度呼び出すと元に戻す。 ~RCtrl::ClipWindow() ClipWindow(size=200, ignoreClassPattern="Shell_TrayWnd|BaseBar") { static clipped If (!clipped) { DetectHiddenWindows, Off CoordMode, Mouse, Screen MouseGetPos, mx, my WinGet, list, List Loop, % (list-1) { IfWinNotExist, % "ahk_id " list%A_Index% continue WinGetClass, class If ignoreClassPattern && RegExMatch(class, ignoreClassPattern) continue WinGetPos, x, y, w, h mx1:=mx-x-size//2, my1:=my-y-size//2, mx2:=mx-x+size//2, my2:=my-y+size//2 If (mx1>w || my1>h || mx2<0 || my2<0) continue WinSet, Region, 0-0 %w%-0 %w%-%h% 0-%h% %mx1%-%my1% %mx2%-%my1% %mx2%-%my2% %mx1%-%my2% %mx1%-%my1% 0-%h% clipped := list%A_Index% . (clipped ? "|" : "") . clipped } } else { DetectHiddenWindows, On Loop, PARSE, clipped, | WinSet, Region,, ahk_id %A_LoopField% clipped= } }
64 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/28(木) 22:33:50 ID:qyNknqLm0] >>63 これいいね ちょっと感動した 使わせてもらいます。
65 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 00:36:46 ID:DA5drrjA0] Vistaじゃ動かないな
66 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 00:37:02 ID:u1yo0xzx0] >>63 面白いな 穴あいてるときにSetTimerでマウス追従するとさらに便利 堪能するためにわざわざ壁紙張ってしまったw
67 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 00:40:11 ID:0CBSOWcu0] もちろんエロい壁紙だよな
68 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 01:12:50 ID:ZNykQa940] s = %A_thishotkey% s1 = %s%% msgbox,%s1% return s の変数の値の末尾に % を付け加えて それを s1 に保存したいのですが (A_thishotkey が a だとすれば "a%") こうかくとエラーになります。 どうすればこれを実現できますか。
69 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 01:19:50 ID:keMVWhB40] 敷居が高いのもあるからどんどん流行ってくれ
70 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 01:25:55 ID:5w+b34I70] >>68 s1 = %s%`% 最後の % をエスケープする(デフォならShift + @)
71 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 01:27:23 ID:y2qE0/Pv0] >>68 エスケープ s1 = %s%`% MsgBox, %s1% 式を使う方法もあり s2 := s1 . "%" MsgBox, % s2
72 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 01:29:55 ID:ZNykQa940] >>70-71 ありがとうございます!
73 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 08:36:17 ID:HnnwY0C40] 少しお聞きします。 無変換とシフトと任意のキーというホットキーの定義の仕方はありませんでしょうか? vk1Dsc07B & +g:: SplashTextOn,,, Test... Sleep, 600 SplashTextOff return などとやっても、無変換+シフト+Gを拾ってくれないのです・・・ +vk1Dsc07B & gだと読み込み時にエラーがでるし…。
74 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 08:42:33 ID:vciG3EmH0] >>73 コンビネーションキー 「&」を使うことで、2つの任意のキー(ジョイスティック以外)の組み合わせをホットキーに指定することが可能。 3つ以上のキーを指定したり、+^!#で修飾キーを追加したりは出来ない。 If GetKeyState("Shift","P")
75 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 08:54:53 ID:vciG3EmH0] 最初に vk1Dsc07B & g:: If !GetKeyState("Shift","P") return を追加すれば大丈夫か
76 名前:1/2 mailto:sage [2009/05/29(金) 13:22:46 ID:u1yo0xzx0] >>63 のマウス追従Ver 作ってみた。 タイマ未使用、Shiftで固定、ESCで終了 #1:: ClipWindow_MouseFollows() ClipWindow_MouseFollows(size=200, Pause="Shift",endKey="ESC", ignoreClassPattern="Shell_TrayWnd|BaseBar") { static list IfNotEqual,list,, return ;semaphore DetectHiddenWindows, Off CoordMode, Mouse, Screen WinGet, list, List Loop, %list% l := list%A_Index% . (l ? "|" : "|0x0") . l While !GetKeyState(endKey) && Instr(l,WinActive("A")) { if GetKeyState(pause) { KeyWait,%pause% pmode := (pmode!=1 ? 1 : 0) } IfEqual,pmode,1, continue MouseGetPos, mx, my if ((mxs-10 < mx) && (mx < mxs+10) && (mys-10 < my) && (my < mys+10)) continue mxs:=mx, mys=my
77 名前:2/2 mailto:sage [2009/05/29(金) 13:24:56 ID:u1yo0xzx0] Loop, % (list-1) { IfWinNotExist, % "ahk_id " list%A_Index% continue WinGetClass, class If ignoreClassPattern && RegExMatch(class, ignoreClassPattern) continue WinGetPos, x, y, w, h mx1:=mx-x-size//2, my1:=my-y-size//2, mx2:=mx-x+size//2, my2:=my-y+size//2 If (mx1>w || my1>h || mx2<0 || my2<0) continue WinSet, Region, 0-0 %w%-0 %w%-%h% 0-%h% %mx1%-%my1% %mx2%-%my1% %mx2%-%my2% %mx1%-%my2% %mx1%-%my1% 0-%h% if !Instr(clipped,list%A_Index%) clipped := list%A_Index% . (clipped ? "|" : "") . clipped } Sleep,50 } DetectHiddenWindows, On Loop, PARSE, clipped, | WinSet, Region,, ahk_id %A_LoopField% list= } >>67 プリインスコのメーカーロゴ、エロいの持ってねぇ(´・ω・`)
78 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 13:36:25 ID:tLIgPVbp0] 最小化したときにタスクトレイにアイコン化するアプリを タスクトレイに入った状態からアクティブ化するのは無理でしょうか? その手のアプリ、みんなWinActiveが効きません...orz
79 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 15:06:40 ID:+GBy9qZg0] DetectHiddenWindows, On
80 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 15:41:21 ID:tLIgPVbp0] >>79 そんなコマンドがあったとは! 即レス本当にありがとうございます! ほんと、ahkってなんでもできるんですねー
81 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 22:49:46 ID:y2qE0/Pv0] 昨晩のやつの改造版。アクティブウィンドウ以外に黒いシェードを掛ける。2K/XP用。ビデオ鑑賞にでもどぞ Gui, +LastFound -Border +ToolWindow +AlwaysOnTop -Caption +0x02000000 -0x0CC00000 +E0x00080020 Gui, Color, 000000 ; ここで色をかえてもおk WinSet, Transparent, 200 ; 透明度(1-255) Gui, Show, NA x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% SetTimer, Timer1, On Timer1: SetWinDelay,-1 WinGetPos,x,y,w,h,A x1:=x, y1:=y, x2:=x1+w, y2:=y1+h If (lx1==x1 && ly1==y1 && lx2==x2 && ly2==y2) return Gui, +LastFound Gui, +AlwaysOnTop WinGetPos,,,ww,hh WinSet, Region, 0-0 %ww%-0 %ww%-%hh% 0-%hh% %x1%-%y1% %x2%-%y1% %x2%-%y2% %x1%-%y2% %x1%-%y1% 0-%hh% lx1:=x1, ly1:=y1, lx2:=x2, ly2:=y2 Return
82 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 23:08:59 ID:IKD+qEU60] おもしろいな 解除はどうやるんすか?
83 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/29(金) 23:13:54 ID:y2qE0/Pv0] タスクトレイw
84 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/30(土) 06:17:34 ID:84IZ3aep0] >>74-75 2つ以上ダメなんですね。以外に不便…。というかホットキー扱いじゃないのかな ありがとうさんです。試してみまする
85 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/30(土) 13:39:34 ID:pp0cJZID0] >>36 のSQLite_GetSelect関数ってフィールドの数が10個以上あると変数重複するよね? 例えばLV111の場合11行目の1列目、1行目の11列目で重複みたいに 俺が頭悪いだけ?
86 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/30(土) 14:25:44 ID:yxno/H630] それが仕様だと思うよ。 > %接頭辞%%行番号%%列番号% := 値 って風に代入してるし > %接頭辞%_%行番号%_%列番号% とかにすれば平気なんだろうけど
87 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/30(土) 14:40:43 ID:pp0cJZID0] なるほど。 ライブラリいじらないとだめか。
88 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/31(日) 01:53:08 ID:jQyIS5jG0] >>36 関連でわからないことがあったので便乗して質問します SELECT * FROM test WHERE 〜 というところで、 ' が含まれる項目をうまく探し出してくれません autohotkey 特有のエスケープ処理か何かのせいか?と思ったのですが いまいちよくわかりません ' が含まれる項目を処理するときに同じような症状に出会った人はいますか?
89 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/31(日) 20:18:32 ID:g4+Xfjng0] 引数の基準フォルダと対象ファイルパスを元に相対パスを返す関数ってありますか?
90 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/31(日) 21:26:54 ID:3pSi+qBb0] Path_RelativePathTo(From,atrFrom,To,atrTo) ; 相対パスを作成 ; From : ベースパス ; To : 相対にするパス ; atr : ファイル属性を指定 ; ディレクトリ 0x10 (FILE_ATTRIBUTE_DIRECTORY) ; ファイル 0x20 (FILE_ATTRIBUTE_ARCHIVE) { VarSetCapacity(t,260,0) DllCall("SHLWAPI.DLL\PathRelativePathToA", Str,t , str,From, Uint,atrFrom, str,To, Uint,atrTo) return t } Path_CommonPrefix(p1, p2) ; 2つのパス名の先頭から共通するディレクトリ名を取得する { VarSetCapacity(t,260,0) DllCall("SHLWAPI.DLL\PathCommonPrefixA", Str,p1, Str,p2, str,t) Return t }
91 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/31(日) 21:59:11 ID:g4+Xfjng0] >>90 ありがとうございます 無事できました
92 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/01(月) 01:21:39 ID:nMoGzHYT0] AutoHotkey v1.0.48.03.L30
93 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/01(月) 15:00:23 ID:KxOltqgo0] 変数%aaa%の中に変数%bbb%を組み込みたいです。 %aa%bbb%%では駄目でした。 どうすれば出来ますか?
94 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/01(月) 15:57:15 ID:nMoGzHYT0] 「%aaa%」と書いた場合、 ・コマンド内は、変数に格納された値 ・式や関数の中では、%〜%を展開した文字列が名前となる変数 となるけど、 「組み込みたい」の意味が分からないから具体例で。
95 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/01(月) 16:27:57 ID:5kiaGP5n0] よくわからんが多分 Transform,Deref, String あたりではないかとエスパーしてみる
96 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/01(月) 16:33:11 ID:9Rwj7uYk0] 流行るページを参考にしたのですが、わからない箇所があるので教えてください Ctrl-x,Ctrl-sで保存(Ctrl-S)の実行、Ctrl-sで検索(Ctrl-f)の実行をしたいと思っています ところが下記のスクリプトでCtrl-x,Ctrl-sを実行すると、Ctrl-fが送られてしまいます このように置き換え対象のキーも別のキーに置き換えてしまっている場合、どのように対処すれば意図した動きになるのでしょうか? ^x:: Transform,CtrlS,Chr,19 Input,InputChar,C I M L1 T1,{ESC} If InputChar=%CtrlS% Send,^s Return ^s:: Send,^f Return
97 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/01(月) 17:02:21 ID:nMoGzHYT0] いろいろやり方はあるけど、^s:: のところでA_PriorHotkeyで分岐すりゃいいんじゃないの ^x::Return $^s:: If A_PriorHotkey = ^x Send, ^s Else Send, ^F Return
98 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/01(月) 17:36:14 ID:9Rwj7uYk0] >>97 試してみたところ意図した動きになりました。感謝です! ^x::Returnでキーの動きを無効化しても組み込み変数に値は入るんですね 勉強になりました。ありがとうございました>< 2ストロークで設定しているキーバインドが多く、書き換えが面倒なので、 勉強もかねて関数をつくってやってみたいと思います
99 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 18:58:42 ID:xwgWw2A40] 対象窓で、文字入力中or変換中なら1を、変換候補窓が出ているなら2を、それ以外なら 0を返す。 ATOK2007とMS-IME8.1で確認。クラス名がバージョンの数値違いだけなら別verでも通用するかも。 IME_IsConverting(winTitle="A") { hwnd:=WinExist(winTitle) WinGet, pid, PID, ahk_id %hwnd% tmm:=A_TitleMatchMode SetTitleMatchMode, RegEx ret := WinExist("ahk_class ATOK\d+Cand|imejpstCandList\d+ ahk_pid " pid) ? 2 : WinExist("ahk_class ATOK\d+CompStr|imejpstcnv\d+ ahk_pid " pid) ? 1 : 0 SetTitleMatchMode, %tmm% return ret }
100 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 19:44:30 ID:rJZ7jJ5w0] >>99 昔から何度も質問に出てましたよね。IMEで変換中かどうかを知る方法。 ついに実現できる人がいたとは。 さっそく試してみます。
101 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 19:56:13 ID:osRS2DeA0] >>99 おおーありがとう これがあったら無変換にIMEOFF、変換にONにする関数割り当てられる
102 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 20:18:55 ID:ftcLo5Gk0] けっこう既出な気がするけど 他のIMEでもウィンドウクラス一覧表示するスクリプト書けば怪しいクラス名が分かる 注意する点はWinActiveで判断するんじゃなくExistで判断するところ
103 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 20:23:03 ID:xwgWw2A40] BOOLを返さないのに Is〜 とは変な名前だったorz。好きに替えてくらはい。 自分が使ってるIMEしか調査してないから、 SKK、VJE、WXG、松茸、その他IMEへの対応は出来ないので自分で追加してくれ。 あああ ← 入力窓の上で MouseGetPos,,,hwnd して hwndからクラス名をとって正規表現に追加  ̄ ̄ ̄ 愛 |愛 | ← 候補窓の上で MouseGetPos,,,hwnd して hwndからクラス名をとって正規表現に追加 |亜依 | |あい .| |藍 | | : .|  ̄ ̄ ̄
104 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 20:30:06 ID:xwgWw2A40] >>102 おっしゃるとおりで #IfWinNotExist, ahk_class 入力窓|変換窓 vk1Csc079::IME_Set(!IME_Get()) とかのほうが楽ではある
105 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 21:37:03 ID:Kr4mD/Ke0] MS-IME2000までなら WinExist("ahk_class msime") でいけそう
106 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/02(火) 22:31:33 ID:P6oxe9UG0] autohotkey以外の任意のウィンドウをタスクバーから消す方法ってありませんか toolwindow作ってSetParentすればいいのかなと思ったけど同じプロセスじゃないとできないみたいで
107 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/03(水) 09:37:26 ID:fHhPIlcJ0] ここのTrayIcon.ahkの中にあるTaskButton.ahk www.autohotkey.com/forum/topic17314.html
108 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/03(水) 09:43:09 ID:cMFaAOnD0] 実行中のスクリプトのファイル名を取得する方法を教えてください。 実行中と同じスクリプト名のiniファイル読み込みにしようしたいです。
109 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/03(水) 09:58:06 ID:fHhPIlcJ0] 組み込み変数 A_Script○○○
110 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/03(水) 11:03:28 ID:cMFaAOnD0] >>109 ありがとう。
111 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 00:17:18 ID:QQ0YUUDy0] 任意のアプリケーションのメニューバーを非表示にする方法ってあります? AU3_Spy.exe で調べてもメニューバーの Class_NN なんかが判らなくて…。
112 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 01:01:23 ID:duXuCFzc0] クラスが取れないのは昔ながらのメニュー(メモ帳、電卓など、Ahkもそう)、非クライアント領域と言われているところ。 ^F12:: hwnd := WinExist("A") hMenu := DllCall("GetMenu", "UInt", hwnd, "UInt") If (hMenu) { DllCall("SetMenu", "UInt", hwnd, "UInt", 0) Sleep, 2000 DllCall("SetMenu", "UInt", hwnd, "Uint", hMenu) } else { MsgBox, Menu not found } return ttp://msdn.microsoft.com/ja-jp/library/cc364679.aspx ttp://msdn.microsoft.com/ja-jp/library/cc411047.aspx
113 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 01:16:22 ID:6AUpOLN+0] 処理が終わるまでの間を進歩状況を表示させたいんだけど Gui,Add,Progress見つけたけどできそうなのか使い方がさっぱりわからなかった
114 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 01:49:52 ID:QQ0YUUDy0] >>112 おおお、ありがとうございます!助かりました
115 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 08:17:20 ID:SXDlYEUH0] >>113 ttp://www.autohotkey.com/docs/commands/GuiControls.htm#Progress Progress, R0-200 W400 H70 Hide Progress, Show Loop, 200 Progress, %A_Index%, Number:%A_Index%, Counting..., Title Progress, Off Gui, Add, Progress, W300 h10 cBlue vMyProgress Gui, Add, Button, Default, Start Gui, Show return ButtonStart: Loop, 300 GuiControl,, MyProgress, %A_Index% return
116 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 09:19:45 ID:dyra48CT0] マウスの下のWindowTitleを取得する方法を教えてください。
117 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 11:24:00 ID:39eHpjNw0] >>116 lukewarm.s101.xrea.com/commands/WinGetTitle.html #Persistent #SingleInstance, force SetTimer, MouseShitaWindowTitle, 50 Return MouseShitaWindowTitle: MouseGetPos, , , HWND WinGetTitle, Title, ahk_id %HWND% Tooltip, %Title% Return
118 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 15:38:47 ID:dyra48CT0] >>117 助かりました。ありがとうございました。
119 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 16:13:54 ID:6AUpOLN+0] >>115 処理完了までの時間がどのくらいなのか取得したいんで Loop,200だか300なんて固定じゃしょうがない
120 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 16:31:03 ID:39eHpjNw0] >>119 固定も何も>>115 のサンプルを応用すればいいよってことじゃないのかい。
121 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 16:48:28 ID:SXDlYEUH0] >>119 すまなない 何が分からないか分からない 完了時間の予測なら、全体量と1回の処理時間から自分で毎回計算するしかないと思う
122 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 17:06:34 ID:6AUpOLN+0] なるほど そういうことならしょうがないですね ありがとう
123 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 17:40:27 ID:TWv1vctD0] 具体的な秒数を事前に出すのはAHKに限らずむづかしいと思うけど。 ダミー進捗が嫌なら、メクラループやめて具体的気に処理が終わるたびに更新すればいいだけっしょ やらなきゃいけない処理の数(分母)と、そのうち何個目が終わった(分子)か、で 進捗グラフ更新してくのがProgressなんだから
124 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 19:36:13 ID:nKWMwvxe0] >>99 Firefox3.0.10上だと文字入力中をうまく検出できないんだけどどうしてだろう 0が返ってくる
125 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 21:14:42 ID:6pR9OPq00] >>99-101 窓使いの憂鬱でIMEのON/OFFでキー割り当て変えられることに気づいた・・・ もしかしたらAPI一発で取得できたりして・・・ 窓使いのソース見たらよいかも
126 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 22:05:15 ID:TWv1vctD0] ん? >99がすごいって言われてんのは「IME ONかつ変換中か」を見てるからっしょ ON/OFF状態や変換モードだけなら SendMessageのWM_IME_CONTROLでとれるよ lukewarm.s101.xrea.com/up/file/089.zip
127 名前:99 mailto:sage [2009/06/04(木) 22:10:50 ID:duXuCFzc0] IMEが描画する窓の存在を見てるんで、インライン描画するタイプだと検出出来ないのはしょうがない... IE, FireFox, Office系とか、、ダメじゃんorz でも、API一発で取れないのは数々の先人達が試みて失敗してる(スレ1で既出) >>125 ちょっと見てみた・・・ ttp://mayu.cvs.sourceforge.net/viewvc/mayu/mayu/hook.cpp?revision=1.34&view=markup の428行目あたりから グローバルフックでメッセージとらえているようだ。 IL (IME_Lock、 On/Off)はAPIで取得しているみたい(実質的には IME.ahkと同じ) IC(入力中かどうか)は WM_IME_(START|END)COMPOSITION を見て内部でフラグ管理しているみたい 低水準マウス/キーボードはフックできるけど、これだとDLLが必要だぬ。俺には無理ぽ。
128 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 22:51:48 ID:hfmiG/aI0] メールの内容を読み込んで、そこにあるフレーズで次の処理をするっていうのを作りたいのですが 何かいい方法ないでしょうか?どうにかしてメールをtxtファイルにしてFileReadで変数に読み込む ぐらいしか思いつかないんですが
129 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 22:56:27 ID:gv6ECyM30] ごりむちゅうで何がなにやら。 次の処理が何かわからんのに、答えるのは難しい。
130 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/04(木) 23:23:25 ID:hfmiG/aI0] >>129 情報不足過ぎですみません 家で常時動いているPCにメール送って、PCを遠隔操作したいんです。 具体的には本文にAいう単語があったら、そのあとの文をファイルとして保存するとか Bという単語があったらaというソフトを起動するとかです。
131 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 00:13:11 ID:e7k/ar4E0] >>126 IME.ahkでは Office 系の IME の On / OFF を 正しく取得出来なかったと思う 改善された?
132 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 01:31:04 ID:T3bmGBtQ0] ウチでは IME.ahkで Office 系「で」 IME の On / OFF を正しく取得出来る
133 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 02:44:19 ID:fBYNAlWU0] >>130 常時起動ならリモートデスクトップでいいんでないの? それとも携帯からかな? メールでやるなら、面倒くさそうだね。
134 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 10:57:01 ID:TiIrn5XK0] >>128 >どうにかしてメールをtxtファイルに あるかどうかわからないけど、ログをテキストで保存してるメーラーを使えばいいんじゃないか。 今見てるメールに対して処理をしたいだけなら、スマートではにけどCtrl+A & Ctrl+Cで本文を内容読めばいい
135 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 12:30:07 ID:TL25cwxb0] POPなりIMAPのプロトコルが分かるなら英語のフォーラムにあるWinSockのライブラリ使えば メールをファイルに落とさなくても直接接続して処理できるけど、エラーハンドリングなどかなり面倒。 次点は、コマンドラインレベルのクライアントを探して連携するとか。 POPならこういうやつとか>ttp://www.codeode.com/popclient/index.html 普通のWindowsのMUAでも、大抵は開けば普通にtextで読めるからそれでもいいかも。 メール毎に個別にファイルに保存するやつの方が楽だとは思うけど。
136 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 12:38:48 ID:gplHJn2c0] スレどころか板違いだが、sshで入れるようにすると楽なんじゃないかな。 携帯用のクライアントアプリもあるみたいだし ttp://mutil.jp/。 鯖にするのはリ便利さと管理コストのトレードオフだけど。 ahkでやるならメーラによると思うけど、メールデータをテキストそのままで 保存してるメーラも結構あるんでファイル監視でいくのもアリ。 現段階でメールのヘッダと本文の解析の仕方を知らないなら、敢えてメールチェッカ入れて 新着通知の窓が出るのを監視してその本文を取得ってのもありかも。 あとはBASP21あたりで自前でPOP3鯖見に行くとか。。。
137 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 13:58:03 ID:SxfMtifS0] 出先からメールで自宅のPCを操作できるソフトて結構あるような気がするんだが
138 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 19:52:28 ID:BSIYPVRTO] TaskTrayIcon.ahkを眺めてたんだが、 クリックされたトレイアイコンの番号は取得できないのかな?
139 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 19:56:05 ID:esdfKZUa0] 出先から指定ラベル実行できたらちょっと面白いな
140 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 20:40:42 ID:O6B2s5Qx0] >>133 ,134,135,136,137 レス遅れてすみません。携帯は焼かれているもので いろいろな手段を教えてくださってありがとうございます。 じっくりググって作りたい物を作ってみます。また行き詰ったら質問に来るかもしれません そのときはよろしくお願いします
141 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/05(金) 23:04:28 ID:NwioFG9O0] z::yのようにリマップし、alt+zとやると、 余計なCtrlが入力されます。なぜでしょうか。 Key history 74 03F u 0.08 F5 A4 038 d 2.25 Alt 5A 02C h d 0.05 Z 59 015 i d 0.00 Y A4 038 u 0.16 Alt A2 01D i d 0.00 Ctrl A2 01D i u 0.00 Ctrl 5A 02C h u 0.03 Z 59 015 i u 0.00 Y 74 03F d 0.53 F5
142 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 19:35:48 ID:RpRz7vLw0] Guiでボタンを押すとListBoxが更新されるようにしたいのですが、 Gui, Add, ListBox, vList, Gui, Add, Button, gTest1, Button1 Gui, Add, Button, gTest2, Button2 Gui, Show, Return Test1: GuiControl,, List, test||.. Return Test2: GuiControl,, List, hoge|..|| Return これだとリストの末尾に追加される形になってしまいます。 リストを入れ替えるようにするにはどうしたら良いでしょうか。
143 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 19:44:21 ID:nz9UkNk/0] 先頭にデリミタ。 GuiControlの頁を要再読。
144 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 20:09:54 ID:RpRz7vLw0] >>143 即レスありがとうございます。 見落としてました...orz
145 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/07(日) 03:46:36 ID:6gUtZr/R0] しつもーん。 指定アプリ上でzを押した時、aの動作→bの動作→cの動作→aの動作→bのry と言った事をやりたいんですが、どう記述したらいいですか。。。 #IfWinActiveを使うって事と、個別の動作(sendでいくつかキーを送るだけ)は分かってできたんだけど、 それを同じキーで繰り返したいです。 ご教授願います。。。
146 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/07(日) 04:20:29 ID:64k7gMDb0] >>145 質問がいまいちわかりにくいけど、こういうこと? #IfWinActive 指定アプリ z:: Loop,n ;nは繰り返したい回数 { aの動作 bの動作 cの動作 } Return #IfWinActive
147 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/07(日) 09:24:01 ID:tkyz3VGy0] 同じキーで 1回目押したら aの動作 2回目押したら bの動作 3回目押したら cの動作 って意味じゃなかろうか
148 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/07(日) 09:37:04 ID:ZORhP0Gy0] z:: count++ if(count=1){ tooltip, aの動作 }else if(count=2){ tooltip, bの動作 }else if(count=3){ tooltip, cの動作 count=0 } keywait, z Return
149 名前:145 mailto:sage [2009/06/07(日) 16:40:24 ID:6gUtZr/R0] >>146 質問がわかりにくくてすいませんしたっ_| ̄|○ >>147 そうです。その意味です。。。 >>148 希望通りの動きが出来ましたっ! ありがとうありがとう(つД`) リファレンス読んで処理内容を解読できるようにがんばってみます(´・ω・)、
150 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 01:08:14 ID:mPjxZMt70] AutoHotkey.ahkの書き換え、再起読み込み を自動化した。 Aキーを押したらA用途のAutoHotkey.ahkを Bキーを押したらB用途のAutoHotkey.ahkを 読み込んでそれ用の設定になるので、便利。 perl使って書き換えしてるだけだが。
151 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 02:18:59 ID:VN+15O/CP] 何故ahkでやらない
152 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/08(月) 10:20:12 ID:aCqJ4TQP0] 流行らせるページの中の人、ネトラン関係者になってたのか