[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 14:54 / Filesize : 298 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

AutoHotkey Thread 2



1 名前:名無しさん@お腹いっぱい。 [2005/10/21(金) 04:31:53 ID:qy14hWPT0]
If You = beginner
 Read, Template, >>2-6

Previous Thread::
AutoHotKey Thread
pc7.2ch.net/test/read.cgi/software/1098531338/

If Res > 950
 Please, Build, NextThread

140 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 22:50:31 ID:x8v+5Rvv0]

quitApp:
StringRight, key, A_ThisHotkey, 1
appTitle:=appTitle%key%
ifWinNotExist, %appTitle%
Exit
else
WinClose, %appTitle%
return
Return

toggleWindow:
StringRight, key, A_ThisHotkey, 1
appPath:=appPath%key%
appTitle:=appTitle%key%
appWorkDir:=appWorkDir%key%
appOpt:=appOpt%key%
ifWinNotExist, %appTitle%
Exit
else
WinSet, Topmost, TOGGLE, %appTitle%
return
Return

んー >>126さんの言うとおり、取りこぼしがあるし、
Topmostのトグルが出来てないような。
折角作ってもらったのに、ホットキーの方が確かってことなんですかねぇ。

141 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 23:08:59 ID:BqfIoljv0]
いや、取りこぼしが発生するのは LoopやSettimerで自力監視する場合の話
Hotkeyコマンドは動的に割り当ててるだけでトリガはAHKまかせだし
問題ない筈だが

142 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 23:28:51 ID:BqfIoljv0]
Returnを2回重ねてるところと Exit使ってるのの意味がわからんのだが

toggleWindow:
 StringRight, key, A_ThisHotkey, 1
 appTitle := appTitle%key%
 ifWinExist, %appTitle%
   WinSet, Topmost, TOGGLE, %appTitle%
Return

でいいんじゃね? (If あるんで全角インデントした)

143 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/08(火) 23:38:44 ID:x8v+5Rvv0]
>>141
なんか反応が鈍い時があるんですよね。

>>142
メタメタだ…。

144 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/09(水) 07:51:17 ID:HqHg5smR0]
ていうかappTitleにどんな値指定してんだか知らんけど
秀丸みたいに多重起動できるアプリだとウィンドウを限定できねんじゃね?
判定は ifWinExist じゃなくて ifWinActiveにして
任意のウィンドウがアクティブなときに動作させないと誤爆するな

あと秀のようにアプリ自体がTopmostの機能をもってる場合はSendで
ショートカットキー投げるとかしてそっち使ったほうが話は簡単かもしれんよ

145 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/09(水) 15:43:04 ID:+AeGgYao0]
>>143秀丸落として試してみたが、うちでは問題なくトグル出来るが・・・
それと>>141が言うようにhotkeyコマンド使って設定した場合、ホットキーラベルで設定したのと同じ動作になるはずで、
反応鈍いって事はないだろう。ホントにそうならAHK自身のバグとしか考えられん。



>>144
ifWinExistでもちゃんとできるみたい。

同タイトルのウィンドウが存在した場合、まず最前面ウィンドウが優先され、
最前面がない場合と複数最前面がある場合、アクティブの時にはそのウィンドウに、
非アクティブの場合、最後にアクティブだったウィンドウに適用されるっぽいな。
違ったらごめん。


気になったのが、非アクティブの最前面ウィンドウを非最前面にしたときに
一度そのウィンドウをクリックしてやらないと、
他のウィンドウクリックしても後ろに行ってくれないが、
ここらへんはOSの仕様のような気がする。
topmostトグルするまえにWinActivateつかってアクティブにしてやれば一応解決するが。

146 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/10(木) 21:56:38 ID:RwGjNG9H0]
ウィンドウ指定の条件をandじゃなくてorにすることはできないでしょうか。
IfWinActiveとかを何度も書かなきゃだめですか

147 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/10(木) 22:01:45 ID:We9gQrEX0]
>>146
ttp://lukewarm.s101.xrea.com/commands/IfIn.htm

148 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/10(木) 22:25:50 ID:RwGjNG9H0]
>>147
なるほど。ウィンドウのタイトルを変数に入れてIf var inでマッチリストと
比較するわけですね。
or条件を使うときはIfWinActiveではなくこれを使ってみることにします。
ありがとうございました。



149 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 03:42:19 ID:khVemMEi0]
タイマー作るのって無理?
InputBoxで入力した時間Sleepしてアクションを起こすってことはできるけど
残り時間の表示をどうやればいいのかわからない。

150 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 04:01:08 ID:xFnBvB+A0]
>>149
time=%A_Sec%
settimer,count,1000
count:
rest:=time-A_Sec+30
tooltip,%rest%
return

esc::exitapp

こんなんでええのだろうか

151 名前:149 mailto:sage [2005/11/11(金) 04:05:08 ID:khVemMEi0]
>>150
なるほど!
これはは思い浮かばなかった。
迅速なレスありがとうございます。

152 名前:149 mailto:sage [2005/11/11(金) 04:10:33 ID:khVemMEi0]
あ、いやちょっと待って。
よく考えたら全然ダメじゃん。

数秒確認しただけでレスしちゃった。

153 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 04:24:46 ID:xFnBvB+A0]
returnの前にこれ追加しといて
if rest=0
exitapp

的外れだったらすまん。つーか何がダメなんかわからん、とりあえずカウントダウン表示してみただけだし。

154 名前:129 mailto:sage [2005/11/11(金) 04:31:30 ID:khVemMEi0]
たとえば、今、○時○分55秒だったとします。

55-55+30=30
55-56+30=29
55-57+30=28
55-58+30=27
55-59+30=26
55-00+30=85
55-01+30=84

こういう計算だと思うんですが・・・・。
私の方が間違っているのかな。

155 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 05:53:00 ID:FTok57/z0]
A_TickCountつかえ

156 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 07:51:44 ID:A6pk7vW20]
時間関係の計算はよくわからんルールになってるぞ
一人で脳使ってないでヘルプ熟読してきなされ

157 名前:名無しさん@お腹いっぱい。 [2005/11/11(金) 18:08:09 ID:KIS/mZVoO]
ちょっとくらいヒントをくれてもいいじゃないですか。

158 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/11(金) 18:52:34 ID:A6pk7vW20]
とりあえず149はA_Sec参照して何がやりたいんだ?
単純に残り秒数カウントダウンしたいだけなら

dwncnt := 30 ;残り秒数
settimer,count,1000

count:
dwncnt--
tooltip,%dwncnt%
return

きちっと精度上げたいならSetTimerの値を小さくして>155が言うようにA_TickCount使う



159 名前:149 mailto:sage [2005/11/11(金) 20:12:02 ID:khVemMEi0]
○時間○分○秒というタイマーも使えるようにしたかったので
A_TickCountではなく、YYYYMMDDHH24MISSで記述した物からEnvAddでSecondsを指定して
1秒ごとに-1加算するようにしたら上手くできました。

160 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 18:02:11 ID:A/9NzbIG0]
あるSetTimerがonの時とoffの時で条件分岐って無理?

161 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 19:35:11 ID:N8ylNJMv0]
タイマーが動いてるかどうかを調べる方法はなかったはず
自分でフラグ変数用意して現在の状態覚えとくようにすればOKだけど

162 名前:160 mailto:sage [2005/11/13(日) 19:37:47 ID:A/9NzbIG0]
>>161
どういうことですか?

163 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 19:41:43 ID:5IyRr/ha0]
自分で変数を用意する。

164 名前:160 mailto:sage [2005/11/13(日) 19:53:57 ID:A/9NzbIG0]
こんな感じ?

SetTimer, ABC, 3000
ST_Flag = on

#A::
If(ST_Flag = "on")
{
SetTimer, ABC, off
ST_Flag = off
}
Else If(ST_Flag = "off")
{
SetTimer, ABC, on
ST_Flag = on
}
return


165 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 21:50:43 ID:N8ylNJMv0]
そう、それか↓みたいにしてもいいし

#A::
If (interval > 0)
{
interval = 0
}
else
{
interval = 3000
}
SetTimer,ABC,%interval%
return

166 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 21:52:52 ID:N8ylNJMv0]
0だとOFFにならんのか

#A::
If (interval > 0)
{
SetTimer,ABC,OFF
interval = 0
}
else
{
interval = 3000
SetTimer,ABC,%interval%
}
return

167 名前:160 mailto:sage [2005/11/13(日) 22:19:27 ID:A/9NzbIG0]
>>166
なるほど
ありがとうございます

168 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/14(月) 03:42:28 ID:tpTqEc+p0]
>+Up::send,{PgUp}
>+Down::send,{PgDn}
>+Left::send,{Home}
>+Right::send,{End}
こんな風に割り当てますよね。
これをあるウィンドウだけは適用したくないのですが、
そういった場合はどう書けばいいんでしょうか?



169 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/14(月) 05:14:00 ID:h9uxRFHg0]
>>168
+Up::
WinGetActiveTitle, ActTitle
If(ActTitle <> "割り当てたくないウィンドウタイトル")
send,{PgUp}
return

タイトルで上手くいかなかったらウィンドウハンドル取得して分岐

170 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 13:59:54 ID:3R61f5fz0]
>>169
どうもです。
169さんの方法だと、一キーずつ割り当てるしかないんですよね。
一気にやる方法があったら、便利だな。

171 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 15:34:14 ID:Qg1alPao0]
一気にやるってどういう意味だよ。

172 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 16:41:57 ID:g/ADYEbp0]
+Up::
+Down::
+Left::
+Right::

WinGetActiveTitle, ActTitle
If(ActTitle <> "割り当てたくないウィンドウタイトル")
{

send,{PgUp}
}
return


173 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 16:44:53 ID:g/ADYEbp0]
すまん途中で書きこんでもうた。関数にしてパラメータ指定するようにしたほうがよりスマート

+Up::
+Down::
+Left::
+Right::
WinGetActiveTitle, ActTitle
If(ActTitle <> "割り当てたくないウィンドウタイトル")
{
if A_ThisHotkey = +Up
send,{PgUp}
else if A_ThisHotkey = Down
send,{PgDn}

}
return

174 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 18:16:51 ID:Qg1alPao0]
ヒドスwwwww

175 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/15(火) 18:34:11 ID:Fr3rXntL0]
+Up::
Ifwinnotactive,XXXX
Send,{Pgup}
return

これで全部書いたほうが短かくてわかりやすい気がするのだが

176 名前:名無しさん@お腹いっぱい。 [2005/11/16(水) 01:46:01 ID:EX3GaO8n0]
任意のアプリのタスクトレイアイコンを非表示にすることってできないでしょうか?
わからないなりに調べてみたらShell_NotifyIconというAPIがあるようなので
これをDllCallで呼びせさばできそうな気が。

DLLについてはまったくの初心者なので今奮闘しています。

177 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 02:17:34 ID:ExozuSiy0]
これって構造体扱えるんだっけ?
構造体扱えなかったらShell_NotifyIconも使えないだろ

178 名前:176 mailto:sage [2005/11/16(水) 13:41:19 ID:EX3GaO8n0]
>>177
ttp://lukewarm.s101.xrea.com/commands/DllCall.htm
ここの「構造体と配列の扱い」によればできるようなのですが、
いかんせんまだ勉強中なので難しくて



179 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 14:43:39 ID:YfyIAE/u0]
>>178
うまいこと考えたな〜

180 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 16:26:24 ID:ExozuSiy0]
構造体は扱えないけど、逃げ道はあるってことか
面倒そうなので漏れはパス

181 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/16(水) 17:08:15 ID:YfyIAE/u0]
>>178
べつに難しく考えること無いよ。外部にあるからDllCall使ってロードしてやらなきゃならないだけで、
考え方は普通の関数扱うのと変わらない

とりあえず、そこにある関数コピペすれば構造体に値をセットしたり読み出したりは出来る。
関数の中身は知らなくていい。
一番下のサンプルみれば使い方はわかるはず。

182 名前:176 mailto:sage [2005/11/16(水) 23:23:04 ID:EX3GaO8n0]
WinGet, whd, ID, A

VarSetCapacity(NotifyIconDate, 24, 0)
InsertInteger(whd, NotifyIconDate, 4)
DllCall("Shell_NotifyIcon", Int, 0x00000002, Str, NotifyIconDate)
Return

InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
{
mask := 0xFF
Loop %pSize%
{
DllCall("RtlFillMemory", UInt, &pDest + pOffset + A_Index - 1, UInt, 1, UChar, (pInteger & mask) >> 8 * (A_Index - 1))
mask := mask << 8
}
}

わからないなりに作ってみましたが、うまくいかないです。
たぶん色々勘違いしてると思うのですが。

183 名前:名無しさん@お腹いっぱい。 [2005/11/18(金) 03:16:50 ID:/PztpgYi0]
テキスト入力欄かどうかを取得するにはどうすればいいでしょうか?
If(A_CaretX <> "")だと入力欄でないところでも反応してしまいます

184 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/18(金) 22:11:48 ID:KVZUSxn10]
たしかA_CaretXとA_CaretYはエディット以外の場合は
コントロールの左上の座標になるから
そんな感じで弾けばいいと思うよ

185 名前:183 mailto:sage [2005/11/18(金) 22:16:55 ID:/PztpgYi0]
>>184
例えばSleipnirとかJaneとかでテキストを選択してコピーしたら
その位置にキャレットがあると見なしてしまいまして

186 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 01:56:22 ID:adRLoPdI0]
EDITコントロールか否かの判定はControlGetでLine数を取得してチェックしてる。
非EDIT コントロールの場合 0が返るので

ControlGet,line_cont,LineCount,,%ctl%,ahk_id %hwnd%
if line_cont > 0
{
 ;テキスト入力欄の処理
}

あとSendMessageで EM_xxx あたりの情報を調べるとか。
www.winapi-database.com/Message/EM/

編集不可だがコントロールはEDIT使ってる場合(AU3_Spy.exeとか)もあるので
そういう場合はどうにかしてLoked状態を確認しないといかんかも知れん

187 名前:183 mailto:sage [2005/11/19(土) 02:20:34 ID:EUr5m4mr0]
>>186
ありがとうございます

ですがライン数取得では上手くいかないものが多くて諦めていましたが、
殆どのクラス名に「Edit」が入っていたのでクラス名取得して分岐するようにしました。

188 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 10:46:19 ID:q++McXD/0]
>>176
> 任意のアプリのタスクトレイアイコンを非表示にすることってできないでしょうか?

これぜひ俺も知りたい。
自分が使ってる常駐ソフトはほとんどアイコン非表示にできるが、1つ2つできないのがある。
XP付属の「アクティブでないインジケータを隠す」はあまり好きではないし。



189 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 12:11:21 ID:adRLoPdI0]
>>182
試してないしちょっとググって調べて見ただけだが、とりあえずhIconをどうにかして
取得して構造体にセットしてやらんといかんのとちゃうか?

NOTIFYICONDATA構造体
Type NOTIFYICONDATA
  cbSize As Long         構造体のバイト数
  hWnd As Long         対象のウィンドウハンドル
  uID As Long           タスクバーアイコンのユーザー定義のID
                    (つまり、アイコンを複数使うときのアイコンの番号のこと)
  uFlag As Long          有効なメンバを示す定数の組み合わせ
  uCallbackMessage As Long  ユーザー定義のメッセージ
                    (アイコンの上でマウスイベント(クリックなど)が発生すると
                    ウィンドウに送られてくるメッセ―ジ)
  hIcon As Long         追加・削除・変更するアイコンのハンドル
  szTip As String * 64      チップヘルプのテキスト
                    (アイコンの上にマウスを1秒くらい置いた時に表示される文字列)
End Type

190 名前:名無しさん@お腹いっぱい。 [2005/11/19(土) 12:23:12 ID:iPF8NBAy0]
一応聞くけどautohotkeyでやりたいって趣旨なんだよね
フリーソフトを使ったら出来るけど

191 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 12:24:18 ID:q++McXD/0]
>>190
ちなみにそのソフトとは?

192 名前:名無しさん@お腹いっぱい。 [2005/11/19(土) 13:04:10 ID:z99JDpKz0]
使ったことないけどニュースサイトとかで何種類か見た
とりあえず今ぐぐったらコレがあった
常駐しないのがあるかは知らん
ttp://www.vector.co.jp/soft/win95/util/se293688.html

193 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 13:51:07 ID:adRLoPdI0]
タスクトレイ アイコン 整理 でググると TrayManager とか Tray Wizard とかTrayExpand とか出てくる。
TrayExpandはソースも公開してるみたいだし、AHKでやりたいなら参考にしてみては?

194 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 14:04:50 ID:0di78jxb0]
>>182
とりあえず、戻り値ぐらいみれ。

>>189
トレイアイコンの削除するだけならhIconはいらないが、uIDが必要。


まぁ、既存のソフト使ってしまった方がいいようなきもする・・・AHKでやるメリットあまりないような・・

195 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 14:32:32 ID:q++McXD/0]
TrayExpandが自分には良さそう
これ使うことにします

196 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/19(土) 14:33:46 ID:q++McXD/0]
お礼言う前に途中で送信してしまった・・・・

>>192-193
ありがとうございます

197 名前:189 mailto:sage [2005/11/20(日) 05:00:08 ID:zlspGYDE0]
>>194
フォローサンクス ええかげんなレスしてスマンカッタ

198 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 06:10:35 ID:i5sKQ9wq0]
タスクトレイの項目をメニューで表示させることはできるでしょうか?
フリーソフトでもこういった感じのソフトは自分で探した限り見つからなかったので
知っている方がいたら教えていただきたいのです



199 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 10:52:17 ID:u5r0IAMMO]
>>198
>>193

200 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 17:09:08 ID:9waBFH8F0]
SetTimerってAutoHotkey.iniに書いても動かないの?

201 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 19:14:54 ID:zlspGYDE0]
動くよ

202 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 20:09:01 ID:9waBFH8F0]
>>201
動くのか・・・

特定のウインドウが表示されたらOKボタンをクリックしたいんだけど
.ahkに書くと動くんだけど、AutoHotkey.iniに書いても動かない
これじゃだめなの?

SetTimer,b,250
return
b:
IfWinActive,Aterm WARPSTAR
{
ControlClick,OK,Aterm WARPSTAR
return
}
return

203 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 21:37:35 ID:MfpEbr860]
常駐するSetTimerはAutoHotkey.iniの頭に書いて、
サブルーチンをAutoHotkey.iniの終わりに書いてみては
俺はそれで

IfWinActive,リンク先を探す,指定したリンク先は、デスクト
IfWinExist,ahk_class MSBLPopupMsgWClass

などのウインドウを操作できてる

204 名前:名無しさん@お腹いっぱい。 [2005/11/20(日) 21:41:56 ID:Gk4qhKIS0]
多分常駐させてないだけだろ

205 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 21:51:08 ID:0DdRRu/u0]
SetTimerの上のほうに、Returnかホットキーの設定が書いてある気がする。


206 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 22:49:48 ID:zlspGYDE0]
ホットキー指定のないスクリプトは #Persistent入れないと常駐しないから

207 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/20(日) 23:56:30 ID:JR1lWgkn0]
>>203-206
ありがとう

>常駐するSetTimerはAutoHotkey.iniの頭に書いて、
>SetTimerの上のほうに、Returnかホットキーの設定が書いてある気がする。
これだった。無事に動きました。ありがとう

208 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 00:06:01 ID:FWsdNj/u0]
iTunesを操作させるにはどうしたらいいですかね?




209 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 00:18:49 ID:5v2PJ0mq0]
努力したらいいと思うよ

210 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 00:39:50 ID:ZVwQTLlG0]
>>208
曖昧すぎ。

211 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 02:04:10 ID:Nz+dKwd30]
>>210
質問がな

212 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 21:26:10 ID:OOnUpq930]
AutoHotkeyでiTunesを操作させるにはどうしたらいいですかね?

213 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 22:37:36 ID:jfEQAnS10]
「:」に対してキーを割り当てたいのですが、うまくいきませんでした。
::: ←ここでエラー
ごにょごにょ

何か他に書き方があるのでしょうか?

214 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/21(月) 23:02:40 ID:Y2LksryB0]
lukewarm.s101.xrea.com/KeyList.htm の下のほう
仮想キーコードやスキャンコードで何とか対応しる


215 名前:名無しさん@お腹いっぱい。 mailto:meanbloke777@yahoo.co.jp [2005/11/23(水) 11:44:06 ID:w4Ag56cD0]
NetworkStumblerというアプリを最大化で起動して、
その中のウィンドウをさらに最大化しようとしています。
NetworkStumblerが最大化で起動しても、アクティブになるまで
3秒ほどかかります。
起動してから「ALT+w+t」で中のウィンドウが最大化できますが
AutoHotkey.iniで下のように書いてもうまくいきません。

最初の最大化で起動のみが成功し、中のウィンドウは変化がありません。
"Send, {LALT}wt"の部分は個別に動作確認できていますので、
その間の記述の仕方が問題でしょうか?

#0::
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", , max
WinWaitActive, Network Stumbler
if ErrorLevel <> 0
Send, {LALT}wt
else
return

216 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/23(水) 16:33:51 ID:vpU2R36Y0]
If の判定が間違ってるのと、Elseが不要(書くならもう一行returnが必要)

子ウィンドウを枠一杯に広げるので満足なら Send,!wt でもいいけど
SendMessage使えば本当の最大化もできるよ

#0::
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", , max
WinWaitActive, Network Stumbler
if ErrorLevel = 0
{
SendMessage, 0x229, 0,0,MdiClient1,A ;WM_MDIGETACTIVE
SendMessage, 0x225, %ErrorLevel%, 0,MdiClient1,A ;WM_MDIMAXIMIZE
}
return

217 名前:215 mailto:meanbloke777@yahoo.co.jp [2005/11/23(水) 21:55:25 ID:w4Ag56cD0]
>>216
ご丁寧にありがとうございます!
しかし、<>を=に変更してelse消しても現象は変わらず。
Send, !wtの後にreturn付けても同じでした。
SendMessage使ったやつをコピペでもダメでした。。。orz

とりあえず、子ウィンドウを広げられるだけで満足です。
もしかしてErrorLevelが0になってないのでしょうか?




218 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/23(水) 22:40:29 ID:vpU2R36Y0]
大分前に入れた奴なんでバージョン古いけど うちでは上手くいってる

XP SP1
Autohotkey Ver 1.0.38.1
NetStumbler ver 0.3.30

とりあえず MsgboxやOutputDebugでErrorLevelの値見たり
if
msgbox,OK
else
msgbox,NG
とかやって試してみたら?



219 名前:215 mailto:meanbloke777@yahoo.co.jp [2005/11/23(水) 23:56:41 ID:w4Ag56cD0]
>>218
ちなみに私の環境は
2000 SP4
Autohotkey Ver 1.0.40.06
NetStumbler ver 0.4.0

>とりあえず MsgboxやOutputDebugでErrorLevelの値見たり
そういうやり方があるのですね。

if ErrorLevel = 0
{
msgbox,OK
return
}
else
msgbox,NG
return

↑を試したところ、タイトルバーが青くなる前に
「OK」が出ました。なのでSend, !wtが実行される
のが早過ぎるみたいですね。



220 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/24(木) 01:13:43 ID:YIxfmvQf0]
Verupしたね

221 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/24(木) 12:40:50 ID:0jaOpLGO0]
>>219
MsgBoxに制御が奪われたからアクティブになれなかったってオチじゃないような?
そこまでつきとめたら Sleepでウェイトいれてやればよろし

222 名前:215 mailto:meanbloke777@yahoo.co.jp [2005/11/24(木) 22:05:57 ID:3njavchq0]
>>218
>>219
おかげさまで望み通りの動作ができました!
感謝します。

;【NwtStumbler起動】
#7::
IfWinExist, Network Stumbler
{
WinMaximize
WinActivate
return
}
else
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", D:\apli\netstumbler\aplog, max
WinWaitActive, Network Stumbler
if ErrorLevel = 0
{
Sleep, 3000
Send, !wt
return
}
else
return


223 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/26(土) 13:41:58 ID:cSvLT2hD0]
LastFoundWindowってWinWaitで機能しないんですか?

224 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/26(土) 20:49:42 ID:ekIkW6EI0]
%1%や%2%はコマンドライン引数が分解されて格納されていますが、
コマンドライン引数全体を表す変数はないんでしょうか?

225 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/26(土) 21:01:35 ID:TeG9pCZU0]
>>224
引数を「"」で囲めばだいたい解決すると思いますが

Loop, %0%
{
Part := %A_Index%
Unite = %Unite%%Part%%A_Space%
}

MsgBox, "%Unite%"

どうしようもない場面では
「0」に引数の数が入るのでこんなのでどうにかしてます。

226 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/26(土) 21:59:47 ID:m0vUMe840]
>FileAppend [, Text, Filename]
>ファイル名の代わりに「*」を指定すると、標準出力にテキストを書き出せる。
lukewarm.s101.xrea.com/commands/FileAppend.htm

--- test.ahk --------
FileAppend,Hello,*
---------------------
コンパイルしてプロンプトで test と打っても文字は何も表示されない。
test > a.txt とリダイレクトさせるとファイルには正常に出力される、何でだろ?

227 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/26(土) 22:33:10 ID:ekIkW6EI0]
A_Indexを1度別の変数に入れちゃえばいいのか。
"でくくられていたかどうかが正確には判断出来ないですけど、
実用上は問題ないですね。
ありがとうございました。

228 名前:名無しさん@お腹いっぱい。 [2005/11/27(日) 12:34:40 ID:R5M1hxQO0]
Send,{LWin Down}やSend,{LWindown}
で押し下げ状態にしたWinキーを元に戻すにはどうすればいいでしょうか?
Send,{LWin Up}やSend,{LWin}とやっても戻りませんでした。



229 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/27(日) 15:26:46 ID:GjCd3Btu0]
任意のアプリをタスクバーにボタンを表示しないようにしたいんだけど
Gui,+ToolWindowに相当するものってない?
ウィンドウスタイルを見てもそれらしいのがないっぽい

230 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/27(日) 16:30:10 ID:m61GJs8S0]
試してないけど
0x00000080 WS_EX_TOOLWINDOW
あたりは?

231 名前:229 mailto:sage [2005/11/27(日) 17:10:05 ID:GjCd3Btu0]
>>230
見落としてた
しかし、小さいタイトルバーになってAltTabメニューにも表示されなくなるけど
何故かタスクバーには表示されたまま
色んなウィンドウで試してみたけど変わらない

WinSet,ExStyle,^0x00000080,A

232 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/27(日) 20:16:28 ID:RGnUnyxH0]
ひらがなカタカナキ-にaltを割り当てたいのですが

*vkF2::Send,{alt Down}
*vkF2 up::Send,{alt Up}

とするとaltが押しっぱなしになってしまいます
仮想キー押し上げにコマンドを割り当てることは出来ないのでしょうか?

233 名前:名無しさん@お腹いっぱい。 [2005/11/28(月) 08:04:43 ID:QtDqyH5O0]
TListViewの情報を取得するにはどうしたらいいでしょうか?
ContrloGetのListはSysListVew32のようですし

234 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/28(月) 20:15:46 ID:S9ZDzThA0]
コマンドライン引数の取得の仕方がわかったので書いておきます。

GetArgs()
{
args := DllCall("GetCommandLine", str)
StringGetPos, pos, args, %A_ScriptName%
StringLen, length, A_ScriptName
count := pos + length + 1
StringTrimLeft, args, args, count
return args
}

args := GetArgs()
MsgBox, %args%

235 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/28(月) 20:24:26 ID:bOHdUc5Q0]
トンクス
いただいた。

236 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/04(日) 00:40:06 ID:Boevp9qL0]
解説サイトの説明が糞だな。
窓使いの憂鬱も分かりづらくて導入しにくいところがあったが
こっちはさらダメダメ。アホか。

流行らせる気全然ね〜だろ。ぼけだろ。

237 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/04(日) 00:58:39 ID:vf5AX1eU0]
236がアホでぼけで理解力がダメダメなのはわかった

238 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/04(日) 01:06:12 ID:ziZg2yDd0]
単に翻訳してるだけだし
その労苦だけでもありがたいと思うけどね



239 名前:233 mailto:sage [2005/12/04(日) 01:53:09 ID:c5I9hufm0]
WinAPIやWindowMessageもできるだけ調べましたが、未だに解決できません

TListViewの情報取得は無理でしょうか?

240 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/04(日) 11:08:29 ID:MlVaVrV10]
>239
TListView って SysListView32 のサブクラスっぽいからそのまま使えるんじゃない?






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

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

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