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


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

AutoHotkey スレッド part8



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]
流行らせるページの中の人、ネトラン関係者になってたのか






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

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

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