[表示 : 全て 最新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

382 名前:前スレ749 mailto:sage [2006/01/11(水) 01:30:09 ID:95IZTI+k0]
>>380
あ! LoadLibraryで確保すればOKだったのか。
管理人氏がBRegExp.dll でやってたのは知ってたけど再検証はしてなかったです。
(自分でも忘れてた) 秀マクロ用のDLLが使えるようになるのは結構大きいかも。
教えてくれてアリガトン

てことは、AHKでも田楽DLLのSETVER/GETVERでグローバル変数が扱えるのかな
iniとか経由なしでオンメモリ上で秀マクロや他のアプリとデータを共有化できるのか
うはw夢がひろがりんぐwww


383 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 04:51:40 ID:tIP7xIJe0]
起動するとそのままタスクトレイに入るソフトがあるんですが、
これをScrollLockで起動・終了したいんですね。
で、こんな風に書いてみたんですが……

~ScrollLock::
Process, Exist, task.exe
if ErrorLevel = 0
Run, task.exe
else
WinClose, ahk_pid %ErrorLevel%
return

これだとそのソフトの終了ができないんです。
ここの「WinClose」が「Process, Close」にすれば「強制終了」はできるんですが、
強制終了でなくふつうの終了がしたいんです……。ソフトの挙動が変わってしまうので。

タスクトレイアイコンを右クリックでxすると終了できるので、
この「WinClose」の行を「Send, #b & AppsKey & x」とかやってみたんですが、
別のアイコンにフォーカスが当たってしまい、、、どうにもうまくいきません。教えてください。

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 05:02:56 ID:XYQfQQRG0]
トレイメニューの「閉じる」のコマンド番号を調べておいてWM_COMMANDで送ってやればいいような

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 07:58:09 ID:95IZTI+k0]
挙動の本質とは関係ないかもしれないけど、Locks系の押下情報は
OSが返してくる値がおかしいからホットキーに割り当てるのは控えたほうが良いと思われ

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 01:07:46 ID:rmvCVckQ0]
なまず日記すげえな。

387 名前:383 mailto:sage [2006/01/12(木) 03:13:12 ID:HWiUEJ9g0]
助言ありがとうございました。

Send, #b{APPSKEY}x
これでいけました。
これ「ソフトがタスクトレイの左端にある」ことを決めてかかっているのでよくないですが、
紹介いただいた「コマンド番号を調べる」方法を知らないので……(^^;
ぐぐって見て、
ResouceHackerでできるという話があったのでやってみたんですが、
それらしいエントリが見つからず……断念。

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 03:30:15 ID:5XY6ilOR0]
Direct Command
ttp://members.jcom.home.ne.jp/shinonon/dircmd.html

終了命令はこれで調べられる可能性があるよ
SendCmdをRunさせてもいいし、
AHK内でも処理できる。

389 名前:383 mailto:sage [2006/01/12(木) 21:12:12 ID:HWiUEJ9g0]
ありがとうございます。
ただ、流行らせるページで紹介されている方法も含め、ソフトが特殊なのかうまくいきませんでした……。
件のソフトはWorkCheckerという、キーの押下回数をカウントするソフトなんですが(^^;
終了時にCSV形式でファイルを出力するもので、強制終了するとこれをやってくれないんですよ。

「終了」のほうは、とりあえず何とかなっているのでこれでいいとして、
もう一つうまく行かないことがありますので、よろしければお願いします。

Media Player Classicを「フルスクリーン」にしているときに、
383で挙げているスクリプトを走らせると、MPCのフルスクリーン化が解除されてしまうんですね。
これが「ウィンドウの最大化」なら、特に解除されることもないんですが……。

問題の部分はこんな感じになってます。

WinGetActiveTitle, player
Send, #b{APPSKEY}x
WinActivate, %player%

このSendをした際に、
タスクトレイにフォーカスが移ってタスクバーが出たままになるのを何とかしたくて
このような処理をしてみたんですが、先にも書いたとおり、
最大化したウィンドウでは期待どおりに動くものの、全画面化した場合はうまくいきません。
WinGetActiveTitleが、タイトルの取得のためにウィンドウ表示に戻してしまうんでしょうか……。

ちなみに、playerにはMPCの決め打ちができません。

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 21:23:04 ID:HWiUEJ9g0]
あ、ちなみに、MPC以外でも同じ状態になります。

それと、
WinGet, player, PID

WinActivate, ahk_pid %player%
とか、PIDじゃなくてIDだとかの場合も試しましたが、これもうまくいかず。



391 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 01:26:59 ID:+pozkCUx0]
今プログレスバーを半透明にしようとしているのですが、期待した表示になりません。

Progress,cwFFFFFF ,,name,time
winset,TransColor ,FFFFFF 50,time
return

esc::exitapp

ウィンドウを半透明にして文字とバーは透過なしにしたいのですが、出来ないのでしょうか?
これだとウィンドウが完全な透明、文字とバーが半透明になります。
Trans ,で設定するとウィンドウは半透明なのですが文字も半透明に。。トホホ。

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 12:15:47 ID:5XB+c2x50]
2枚重ね

393 名前:391 mailto:sage [2006/01/13(金) 17:00:20 ID:dZX44Wpz0]
>>392
ありがとう!発想を変えれば良かったんですね。希望の動作になったので報告までにはっときます。
オプションでツールウィンドウを指定してるのは、タスクバーに表示させたくないためです。

gui,add,text
Gui, Color,000000
gui,+ToolWindow +AlwaysOnTop +OwnDialogs -border
gui,show,w300 h200,back
winset,Trans, 50,back

Progress,cwC8D0D4 ctFFFFFF B,,name,time
Progress,50,,,time
winset,ExStyle,+0x00000080,time
winset,TransColor ,C8D0D4 255,time
return

esc::exitapp

394 名前:381 mailto:sage [2006/01/14(土) 21:15:58 ID:6j6GF4sd0]
いまだ解決せず。
キャレットの速度変更した後、Send,{Left}{Right}とか無理やりアクション起こすと
色々不具合がでるソフトもあるし・・・
SmartCaretはどうやってるんだろう。

395 名前:383 mailto:sage [2006/01/17(火) 10:21:04 ID:aCgAJjPo0]
一段落したのでまとめをさせてください。
したかったのは、プログラム全画面化時のキー押下回数のカウントでした。
カウントには>389で挙げているWorkCheckerというソフトを利用することにしていました。

はじめ>383にてScrollLockを使おうとしていたのは、
全画面化時でもキーボードインジケータによって動作中かどうかがわかるためです。
これによって挙動がおかしくなったかどうかはわかりませんが、>385さんの助言を受け、
起動キーを変更して(NumpadSubに)、動作情報はツールチップに表示させるようにしました。

いろいろ調べてみましたが、WorkCheckerのメッセージによる終了のさせ方がわからず、
タスクトレイにフォーカスを当ててキーをSendするというムリヤリな解決法をとりました。
その後WorkCheckerの使用をやめ、AutoHotkeyスクリプト内部の処理でカウントすることに。
これでスクリプト終了の問題は一応決着がつきました。

が、その数値をファイルに書きこむ際、エントリ名を取得しようとInputBoxを出すと、
>389と同じ状況になり、全画面化が解除されてしまいます。
最大化でなく全画面化なので、WinMaximizeでも状態を復帰させることができません。
いろいろやってみたところ、WinGetActiveTitleとかWinActivateには問題がなく、
プログラムの全画面化が解除されるのは、タスクトレイやInputBoxなど
他のウィンドウにフォーカスが移ったときであることを突き止めました。
また、この現象は、プログラムの最大化時や、
IEのキオスクモード(F11を押すとできる一種の全画面化)では発生しないこともわかりました。

以上です。
全画面化の解除問題は解決してないのですが、うまくいきそうにないので諦めることにしました。
プログラムはPerlのワンライナー程度のスクリプト処理をちょっとかじっていただけ、
Windowsプログラミング経験なしのド素人なので、
コメント行やエラー処理も含めて100行を越えるスクリプトを書いただけでいっぱいいっぱいです(^^;
皆さん、助言どうもありがとうございました。

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/17(火) 13:41:14 ID:aCgAJjPo0]
まとめてみて、もしや、と思って試してみました。

全画面化中にAlt+Tabをしてみると、AHKスクリプトでの全画面化解除の挙動と一緒でした。
つまり、AHKスクリプト中に全画面化解除されるプログラムは、Alt+Tabでも解除され、
AHKスクリプト中に解除されないプログラムは、Alt+Tabでも解除されませんでした。
(最大化した場合や、IEのキオスクモード)
この問題の発生はAutoHotkeyに直接関係がなかったようです。お騒がせしました。

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/17(火) 17:29:06 ID:kObrtqt+0]
全画面化解除されても、復帰させれば問題ないのなら、
全画面化解除されるアプリ毎に全画面化に必要な操作をAHKにさせれば良いんでねーの?
数が多いと嫌になるかもしれんが、大抵全画面化のホットキーは決まってるし。

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 12:49:22 ID:2qAgcpH90]
時間の計算で難儀してます....
時刻t1〜時刻t2間の時間T[s]を求める際に、
T := t2 - t1
みたいな書き方はできるんですが、
時刻t2と時間T[s]から、
t1 := t2 - T
のような式だとうまくいきません。
たとえば、ここでT=300[s](5分)として計算すると、
t2を時間としてでなく、数値として解釈するようで、T=3:00(3分)として計算されてしまいます。
t1 := t2 - T, Second
とやると、今度は「TがYYYYMMDDHH24MISSのフォーマットではない」とエラーになるし、
EnvSubのマニュアルを見ていてもいまいちやり方がわかりません....

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 15:46:10 ID:Yqz0MIUn0]
EnvAddで-300秒を足すんじゃなかったけ?

400 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 16:19:08 ID:1N3K73ci0]
時間計算はEnvAddとEnvSubの扱いの違いに気がつかないとハマるな
過去スレでも何度か話題になってるから調べてみ



401 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:01:54 ID:2qAgcpH90]
ほ、ほんとだ...
>399,400 レスありがとうございました。
EnvAddのマニュアルにも、たしかにそれらしい文言がありますね。
でもこんなのわかんないよぅ...

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:12:45 ID:v9Q+2/T40]
タイトルバーで中クリックされたら処理を行うってこと(QuickDirみたいなもの)がやりたいんだけど、
どんな感じでやれば良いんでしょーか。とりあえず↓のようにやってみたけど、
SendMessageの使い方が間違ってるのか、うまくいかないっす。(ErrorLevelがFAILになる)
~MButton::
MouseGetPos, x, y, id
SetFormat, integer, H
x += 0
y += 0
xy := x + y * 0x10000
SendMessage, 0x84, 0, %xy%, ahk_id %id%
If ( ErrorLevel == 2 )
{
;ここに処理を入れる
}
return

403 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:52:51 ID:69RhDVUi0]
1.0.40.12から1.0.41にバージョンアップしたら、
  RWin up::Return
が効かなくなってしまいました。

AutoHotkeyを常駐させ、右Windowsキーを
  >#i::Send,{Up}
  >#k::Send,{Down}
のように使っているのですが、Windowsキーを押して
そのままはなすとスタートメニューがでるのがいやで
冒頭のものを一緒に書いていました。
ところが1.0.41ではスタートメニューがでてしまいます。

解決する方法があれば教えてください。

404 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:54:27 ID:1N3K73ci0]
0x84 て何だっけ?
値からメッセージ名探すの大変なんで質問する時はコメントとか入れてクレ


405 名前:402 mailto:sage [2006/01/22(日) 18:30:09 ID:v9Q+2/T40]
>>404
スイマセン。
コメント入れるとこんな感じです。
~MButton::
MouseGetPos, x, y, id ;カーソル下の座標とid取得
SetFormat, integer, H ;座標を16進数に変換
x += 0
y += 0
xy := x + y * 0x10000 ;座標を上位ワードと下位ワードにまとめる
SendMessage, 0x84, 0, %xy%, ahk_id %id% ;カーソル下のウィンドウにWM_NCHITTESTを送る
If ( ErrorLevel == 2 ) ;タイトルバーならば処理を実行
{
;ここに処理を入れる
}
return

メッセージに関してはここを参考にしました。
ttp://www.winapi-database.com/Message/WM/WM_NCHITTEST.html

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 19:02:30 ID:GjGnwmrQ0]
>>403
1.0.41 から流行らせるページの 2 stroke key も動かなくなっちゃいましたね。
本体のバグだと思うんで、本家の更新待ちです。

407 名前:406 mailto:sage [2006/01/22(日) 20:00:46 ID:GjGnwmrQ0]
すいません。 Ctrl key double tap の方でした…。

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 21:39:01 ID:1N3K73ci0]
>>405
とりあえず2つほど気がついた点。ただこれでも期待通りの値は取れてないが。

・SendMessage はウィンドウ指定より先にControlを指定する。(FAILの原因)
・MouseGetPosのX,Y座標はアクティブウィンドウの左上からの相対座標で取得される。
 (CoordMode,Mouse,Screenを実行してない場合)
 つかこのWM_NCHITTESTって「非クライアント領域のどの部分でマウスが操作されたか調べる」って
 なってるんだけど、いいのだろうか

~MButton::
MouseGetPos, x, y, id,ctl ;カーソル下の座標とid取得
xy := x + y * 0x10000 ;座標を上位ワードと下位ワードにまとめる
SendMessage, 0x84, 0, %xy%, ,A
MsgBox, ErrorLevel=%ErrorLevel%
return

自分もキャプション位置を取得するのにかなり面倒な関数組んでるので
こんな簡単にまとめられるならその方が有り難いんだがね


409 名前:402 mailto:sage [2006/01/22(日) 23:52:19 ID:v9Q+2/T40]
>>408
座標自体は16進変換しなくても良かったんですね。
自分もその座標の原点をどこにすればよいのか分からなかったので、とりあえずそのままやってみた次第です。
どうやら、Delphi製もしくはWTLを用いて作られたソフトではうまくいくようです。

>自分もキャプション位置を取得するのにかなり面倒な関数組んでるので
どのようなロジックで実装されているんでしょうか。

410 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/23(月) 03:04:13 ID:zfPva1iV0]
>>409
ちと長いんで自ブログのほうに上げますた。無駄に助長だが一応コピペで当座は動くと思う
ttp://d.hatena.ne.jp/eamat/20060123




411 名前:403 mailto:sage [2006/01/23(月) 22:02:12 ID:mqTpMs440]
>>406
そうなんですか。
では次のバージョンでの改善を望むことにします。

412 名前:402 mailto:sage [2006/01/24(火) 01:16:40 ID:JUUu5mZd0]
>>410
ありがとうございます。期待通りの動きとなりました。
ご苦労の程お察しします。
自分はSendMessageの挙動はいまいち理解できていなく、
根本的な解決法を考えられそうにないので、誰か識者の方ヘルプ^^

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 11:29:31 ID:hmUrV7Tv0]
winキーを単体で押したときだけ無効にするにはどう設定すればいいんでしょうか
win+Dとかの操作は有効にしたいんですけど

LWIN::Return

とすると全部無効になってしまいます。

414 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 12:41:36 ID:ArnUgYQ30]
質問前にせめて10レス前ぐらいは読みたまえよ

415 名前:413 mailto:sage [2006/01/24(火) 16:50:53 ID:hmUrV7Tv0]
1.0.40.12 で

LWIN up::Return

としても全部無効になってしまいます
どうしたらいいんでしょうか



416 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 23:18:38 ID:Kbo1n5/E0]
>>412
ttp://cgi19.plala.or.jp/lukewarm/news/2006_01.html#23

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 23:30:27 ID:duKuEjYk0]
>>413
LWIN::Return
LWIN & LWIN::Return;二つ目のLWIN部分は何でも良い。


裏技的だが・・v1.0.40.05ではこれで動いた。他verではどうなるか知らん。

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/24(火) 23:35:41 ID:duKuEjYk0]
>>416
あぁ、なるほど、SendMessage自体を直に呼べばいいのか。目から鱗。
そうだよなぁ・・・気が付かなかったなぁ・・

419 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/25(水) 00:09:26 ID:1ITNklYD0]
>>416
ぬおお、コンパクトだ。さすが

420 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/25(水) 00:37:47 ID:whVXuEi20]
ぬるたん

                  ∩
                  ( ⌒)      ∩_ _ グッジョブ!!
                 /,. ノ      i .,,E)
             / /"      / /"
  _n  グッジョブ!!   / /_∧  ,/ノ'
 ( l    ∧_∧ / /*´∀`)//∧_∧   グッジョブ!!
  \ \ (*´∀`)(      / (*´∀`)     n
   ヽ___ ̄ ̄ ノ ヽ      |  ̄    \    ( E)
     /    /   \    ヽ フ    /ヽ ヽ_//




421 名前:402 mailto:sage [2006/01/25(水) 02:38:42 ID:XjlFS14L0]
>>416
(n‘∀‘)ηキテルワー!!
確かにDllCallから使った方が確実ですね。
さり気なくビットシフトなどを使っている辺り、自分との経験?の差を感じます…
改めてお二人に感謝。

422 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/25(水) 04:04:49 ID:8YZ6hNpP0]
あら・・スクリーン座標にするだけで、AHKのSendMessageでも出来たよ・・・
問題はそこだったか・・

423 名前:413 mailto:sage [2006/01/25(水) 19:22:45 ID:sklEJtBz0]
>>417
1.0.41.00 で動きました!
ありがとう

424 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 00:09:38 ID:NczzL1RK0]
RButton & WheelDownにAltTabを割り振りました
特定のアプリだけ、この機能を無効にしたいのですがそれは可能でしょうか
Sendにするとすぐキーを離してしまうし、かといってifで条件分岐したあとにAltTabを置いても機能しません

425 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/26(木) 03:33:13 ID:AxRUycRL0]
#IfWinActive

426 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/27(金) 18:46:53 ID:khUBsNcY0]
点呼スレがピンポイントで狙われてるな、何でだろ

427 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/27(金) 18:52:03 ID:MkK/HyNo0]
NP2のウィンドウに対してだけ急にahkが効かなくなっちゃったんですが
どうすればまた有効になるんでしょうか?

428 名前:403 mailto:sage [2006/01/27(金) 23:27:57 ID:/9813JvU0]
>>417
遅ればせながらありがとうございます。
それでうまくいきました。

429 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 14:18:33 ID:+ZZFrik00]
AHKだと、こういうコメントの書き方できませんね。

/*******************************************************************************
* これは、ahkのコメントを確認するためのサンプルです
*******************************************************************************/

これもダメ。

/*******************************************************************************
* これは、ahkのコメントを確認するためのサンプルです
****************************************************************************** */

これならOK。

/*******************************************************************************
* これは、ahkのコメントを確認するためのサンプルです
******************************************************************************
*/

430 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 14:37:46 ID:9fE5ExNP0]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;       これでいいじゃん          ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



431 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 15:18:26 ID:M2n6ETLA0]
/*
 行頭に無いとコメント終始認識されないよん
*/


432 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/28(土) 16:09:27 ID:QgFgpb9I0]
ちょこちょこ弄ってたら常駐スクリプトが16KB突破…
Runコマンドで呼び出してるのも含めたら40KB超えてたよ。

AutoHotkeyって自由度高い分、各人がどんな使い方してるか気になる。
自分は無変換、変換、カナ/かなキーを修飾キーとしてキーやコマンド割り当てをするのがメイン。
各ウィンドウ位置の保存とかも簡単だし。
トリプルクリック、クワドロプルクリックでも自由に設定できるのも良いね。
あとは、エディットボックスならどんなソフト上にあるものでも
電卓・検索・辞書・コマンドランチャとして使えるようにしたりとか。

433 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 22:55:37 ID:g1nyLRt50]
各スクリプトの共通項を切り出してインクルードするのって無理だよね?


434 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 23:08:49 ID:sQBDNXPy0]
>>433
具体的に。

435 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 23:10:30 ID:g1nyLRt50]
AHKがインクルードファイルをサポートしてるか否か。
またそれに類する代替機能があるか。

436 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/29(日) 23:18:01 ID:sQBDNXPy0]
>>435
ttp://lukewarm.s101.xrea.com/commands/_Include.htm

437 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 00:25:20 ID:jpKlrbYu0]
gdiplus.dllで描画出来ないYO!!
GIFとかICONをPictureコントロールで透明色部分を背景透過して表示したいんだが、
うまくいかない・・

Gui, Add, Picture, AltSubmit BackgroundTrans, AAA.ico
Gui, Show

とかやっても透明部分が透過されないYO!!!
ちゃんとgdiplus.dllはAutoHotkey.exeのフォルダに入れてあるのに・・

へるぷみー><;
Win2Ksp4 Ahk1.0.41.00

438 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 01:41:27 ID:uhBVy+7t0]
>>437
dllが認識されてないとかかな。
system32ディレクトリに置いてみるとか、regsvr32で登録してみるとか、パス通すとかやっても駄目だった?

439 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 15:20:34 ID:uhBVy+7t0]
Run/RunWaitコマンドでコンソールアプリケーションに引数を与えて実行し、
標準出力を得たいんだけど、とりあえず直接標準出力を得るのは無理っぽいので、
ファイルにリダイレクトし、FileReadLineで読み込む方法をとることにした。

Run, %comspec% /c test.exe "引数" > %A_ScriptDir%\test.dat

んで、↑のようにやっても、「 > %A_ScriptDir%\test.dat」部分まで
test.exeの引数として認識されてしまうらしく、うまくいかない。
多分AHKは関係ないと思うんだけど、解決策求む。

440 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 22:16:04 ID:llgn8y2u0]
RunWait は試した?



441 名前:439@携帯 mailto:sage [2006/01/30(月) 22:46:29 ID:Spq+eLJkO]
>>440
YES
そもそもtest.exeに正しい値が渡っていないのであんまり関係ない感じ。
cmd.exeを経由しなくてもダメでした。
普通にコンソールで、
test.exe 引数 > test.dat
とやる分にはうまく行くんだけど…

442 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/30(月) 23:57:09 ID:LkEIKve40]
うちでもうまく行くのと行かないのがあった気が。
上手く行かないの早々にあきらめて捨てちゃったんでもう憶えてないけど。

443 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/31(火) 02:44:23 ID:cbKaLT0a0]
なんかダブルクォートをAHKで処理してる感じ
パラメータに日本語とか使ってない?


444 名前:439 mailto:sage [2006/01/31(火) 03:38:14 ID:iIRAafqH0]
>>443
g_calcっていう引数として式を与えると、Google電卓を使った結果を出力するソフトで、
引数としては、1+2*4とか、sin(3.14)のような1バイト文字しか使ってないっす。
ttp://www.vector.co.jp/soft/win95/net/se337404.html

…結局面倒なんで、このソフトと同等の機能を持つAHKスクリプトを作って対処してしまいました。
簡単なエラー処理入れても5行程度で済むのね。
なので、自己解決したと言えばしたんだけど、せっかくだから、AHKで標準出力を確実に取得する方法を
後学のためにも知っておきたい。

445 名前:名無しさん@お腹いっぱい。 [2006/01/31(火) 11:20:44 ID:333EyHKl0]
てst

446 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/31(火) 18:20:05 ID:61oRgPKa0]
ニーツオルグ見た?

447 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/31(火) 18:28:13 ID:R4U/vQRD0]
あそこトップがでかいんだもん。

448 名前:391 mailto:sage [2006/02/01(水) 01:02:52 ID:lbQsX6480]
ttp://www.vector.co.jp/soft/win95/net/se269471.html
コマンドライン型のメール送信ソフトなんだがAHKと組み合わせるとおもしろいな。
携帯にメール送るのに便利だわ。

449 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 01:04:48 ID:lbQsX6480]
名前消し忘れてた。はずかし。。。。

450 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 01:10:05 ID:mATxrmSJ0]
>>448
詳しく



451 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 01:15:27 ID:Ll9eZFNT0]
POP Out
ttp://www.vector.co.jp/soft/dl/win95/net/se367561.html
これでメールチェックも出来るお(多分)

452 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 07:17:12 ID:CHFM6H+R0]
>>439
ttp://cgi19.plala.or.jp/lukewarm/news/2006_01.html#30

453 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 13:09:29 ID:vBsLlalo0]
ファイルの名前を、現在アクティブになってるウィンドウのタイトルにつけかえる、
というスクリプトを書いてみたんですが……

#SingleInstance IGNORE
^r::
  f0 = test.txt
  FileAppend, test, %f0%
  WinGetActiveTitle, title
  StringReplace, title, title, `:,
  f1 = %title%.txt
  MsgBox, %f1%
  FileCopy, %f0%, %f1%
  MsgBox, %f0%
  return

まめFileのように、タイトルに「パス - まめFile4」のようになっていると、
ファイルがA_WorkingDirにできてくれないので、
「C:\ほにゃらら」となっている部分のコロンを落とすようにしてみたんですね。
その後のMsgBoxでちゃんと落ちているのは確認できたんですが、FileCopyは失敗してしまいます。
どうしたらよいでしょうか。これがダメ文字というやつですか?

454 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:19:14 ID:qvxzsIy40]
コロンはパスの一部なので削ったらダメ
タイトルが「パス - まめFile4」ってなってるのが原因なら、
パスじゃない部分「 - まめFile4」を削る。

ファイル名に日本語使ってないならダメ文字は関係ないよ

455 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:25:04 ID:7xayIcgw0]
あれだ、たぶん、

たとえば、WorkingDirがC\AHKだったとすると

C\AHKC\ほにゃらら.txtってことになるってことだろ。

456 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:51:43 ID:7xayIcgw0]
あ、ちょっと、的ずれてた・・
タダ単に、相対パス指定では\以外で始まる指定は出来ないってだけだた・・
ごめん<>

457 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 15:54:39 ID:vBsLlalo0]
えーと、こんな感じです。
C:\ahk  ←これがWorkingDirで、
C:\home   ←たとえばまめFile4でここを開いているとします。
「C:\ahk\"C:\home\ - まめFile4".txt」みたいな感じにしたいのですが、
;;ほんとはこんな名前のファイルはつくりたくないのです。
;;タイトルにパスが入るソフトの対策のためのテストというわけで。
「C:\home\ - まめFile4.txt」という名前で保存されることになるため、
実際にはC:\homeの下に「- まめFile4.txt」がつくられてしまうんですね。
で、これを回避したい、ということで。
それで、とりあえずコロンを落とすことにしてみたんですが……
あと、「\」も問題だと思ったので、「¥」に変えるとかしてみましたが、うまく行かず。
コロンを残しているとこんな感じになります。
「C:¥home¥ - まめFile4.txt」つまり、「C:」に「¥home¥ - まめFile4.txt」ができちゃう。

458 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:01:53 ID:5DqBaWvy0]
119 名前:unnamed.ahk[sage] 投稿日:06/02/01(水) 05:06 ID:???
そんなの聞く必要あるの?
この程度の簡単なものなら、見ればどういう動作するかはすぐにわかるんだから
自分にとって益があるなら使えばいいし、不要なら構わなければいいじゃん。
>>116を誰が何の用途に使おうとどうでもいいだろ。

↑こいつ何様?

459 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:03:04 ID:vBsLlalo0]
もう少し補足。
タイトルにパスが入って悪さをしさえしなければ問題がないんです。
で、ウィンドウのタイトルを拾うため、どうしてもファイル名に日本語が入ることは避けられません。
たとえば今このスレはJane Doe Styleで見てるんですが、これで同じ操作をすると、
タイトルが「Jane Doe Style 【ソフトウェア】 - AutoHotkey Theread 2」となっているので、
これ+.txtという名前にしたいわけなんです。
やっぱり難しいんですかね……

460 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:39:10 ID:7xayIcgw0]
いや、別に平気でしょ。ただ日本語入るとダメ文字に引っかかる可能性あるのでそこは考慮する必要があるかもしれない。
ただ、さっきの問題とは別だよ。

^r::
WinGetActiveTitle, title
StringReplace, title, title, `:,:
StringReplace, title, title, \,\ , All
msgbox, %title%
FileAppend, , %title%.txt

基本はこんな感じになる。タイトルのファイルがダメ文字無ければ
ワーキングディレクトリにちゃんとファイル出来るよ。

ダメ文字関連はここ参照
ttp://www.tierra.ne.jp/~aki/diary/?date=20060111



461 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 16:44:07 ID:7xayIcgw0]
>タイトルのファイルがダメ文字無ければ
>ワーキングディレクトリにちゃんとファイル出来るよ。
文章めちゃくちゃだな・・(;´Д`)

タイトルにダメ文字含まれてなければ、ちゃんと
ワーキングディレクトリに狙ったとおりの名前のファイル出来るよ。

と言いたかった・・スレ汚れまくりごめん<>

462 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 17:22:32 ID:qvxzsIy40]
>>458
えー、そのスレの 118=120 だけど、ここに持ち込まんでも…
ちなみに大元の書込み人からは補足が入った模様です

463 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 17:37:40 ID:vBsLlalo0]
およよ…? 何かうまくいきますね。
すみません、レスいただいてありがとうございました。

464 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 17:49:47 ID:7xayIcgw0]
SerchStr=\/:,;*?"<>|
ReplaceStr=\/:,;*?”<>|
^r::
WinGetActiveTitle, title
c=0
Loop{
StringMid, s, SerchStr, c+1, 1
if !s
break
StringMid, r, ReplaceStr, c*2+1, 2
StringReplace, title, title, %s%, %r%, All
c++
}
msgbox, %title%
FileAppend, , %title%.txt


>>463
これでファイル名に使えない文字はOKかな・・

465 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/01(水) 21:08:57 ID:vBsLlalo0]
うを、すばらしい!
そのまま組み込んでみます。重ね重ねありがとうでした<O>ペコリ

466 名前:448 mailto:sage [2006/02/01(水) 21:37:49 ID:+NEdY0Ev0]
;メールサーバー
host=mail.xxx.xxx.jp
;表示するメアド
mine=xxx@xxx.xx.jp
;送り先のメアド
address=xxx@xxx.xx.jp

filedelete,temp.txt
fileappend,,temp.txt
sleep,100
run,temp.txt
sleep,1000
winwaitclose,temp.txt
run,smail.exe -h%host% -f%mine% -Ftemp.txt %address%
return

こいつをsmailのフォルダにいれてAHKを起動。ノートパッド開くから本文書いて閉じる。これでメール送信完了です。
自分はiniでアドレス帳作って、メニューで選択、確認ボタン、終了後に送信ログ残すようにしてる。
表示メアドに携帯メアド設定しとけば、携帯料金浮いてなかなかおいしいです。
いちいちメールソフト立ち上げてヘッダ変えてっつーのがめんどくさいもんで。

467 名前:439 mailto:sage [2006/02/02(木) 17:06:47 ID:T+u93vk30]
>>452
何かDllCallだらけで、どういう仕組みになってるか良く理解できてないけど、
とりあえずうまく標準出力を取り込めたよ。サンクス。

468 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/02(木) 17:09:23 ID:RzOqQmwX0]
出てるスクリプトまとめたいんだが 本人はスクリプト理解してないんだよなぁ。
やっぱある程度分かってる人がまとめた方がいいよね。

469 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/04(土) 13:22:47 ID:vcsivbfp0]
Autohotkeyでは上手くテキストを取得できない
リストヴューのテキストを取得したいんだけど
(Clipyでは取れた。具体的にはnPOPのメール一覧)
コマンドラインでWINDOWとかクラスとかを指定してテキストをコピーしてくれるような
ツール知りませんか。

470 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/05(日) 18:35:24 ID:Uooh/wVt0]
ネットの一時ファイルのうち、jpgファイルだけ削除したいのですが、

FileDelete, C:\Documents and Settings\ユーザー名\Local Settings\Temporary Internet Files\*jpg

とやっても消えてくれません。
Temporary Internet Filesって、普通じゃ消せないのでしょうか。



471 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/05(日) 19:37:58 ID:dd1IDrgA0]
実際はその二階層下のフォルダに入っている
その書き方だと直下のJPGしか消さないかも
Temporary Internet Filesを Loopして拡張子が
JPGだったら消すようにしたらいいのではまいか。

472 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/05(日) 21:13:30 ID:Uooh/wVt0]
>>471
content.ie5以下のフォルダにあるんですね。はじめて知りました。
以下のもので出来ました。感謝。

^#D::
path = C:\Documents and Settings\Admin\Local Settings\Temporary Internet Files\Content.IE5\
Loop, %path%*.jpg , 1 , 1
{
FileDelete, %A_LoopFileFullPath%
}
return

473 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/06(月) 09:47:34 ID:XthrTebI0]
なまず日記さんがすげーことをやってるぞ

474 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/06(月) 10:45:51 ID:wtWU+HDQ0]
あそこはすごすぎてワシャついていけんw

475 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/06(月) 11:52:47 ID:+ZyBL9kh0]
よかった、ついて行けないのは俺だけじゃないんだw

すごすぎて感嘆のため息しか出ません

476 名前:名無しさん@お腹いっぱい。 [2006/02/06(月) 14:24:28 ID:3MY6UK/h0]
>>473
IMEの状態表示っていうの試したけど
iniが初期状態だと何も起きないね
iniの仕様調べてまで試す気起きないな

477 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 15:24:32 ID:cd4qYKRv0]
このスクリプトがうまくいかないのはなぜでしょうか。

Home::
SetTitleMatchMode, 2
/*
IfWinExist, メモ帳
{
ControlSend,, ^s
Send, a
}
*/
IfWinExist, xyzzy
{
ControlSend,, ^a
;Send, ^a
MsgBox, %ErrorLevel%
}
return

Homeキーを押したらxyzzyにCtrl+Aを送る、というテスト用に書いたスクリプトなんですが、
アクティブなxyzzyにSendするのはできても、ControlSendはアクティブかどうかに関わらず動いてくれません。
でもErrorLevelは「0」です。
試しにメモ帳で似たようなことをやってみたんですが(上のコメントアウト部分)、こちらはすんなり通りました。

478 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 16:56:51 ID:I1jBElpS0]
Home::
IfWinActive, xyzzy
send, ^a
else
send, {home}
return

479 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 16:58:56 ID:I1jBElpS0]
あ。勘違いしてたすまん・・・なかったことに・・・

480 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 18:50:22 ID:I1jBElpS0]
Home::
IfWinExist, xyzzy
SendMessage, 0x102, 0x1, 0x1E0001 ;lParamは指定しなくても動くみたいだが・・。
return


よくわからん。。これで一応逝けるけど。非アクティブだと反応が鈍い。
識者頼む。



481 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 18:56:46 ID:I1jBElpS0]
書き忘れ0x102はWM_CHARです。

482 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/02/07(火) 19:00:10 ID:fWzsdUXL0]
出来ないなxyzzy
クラスの取得出来ないし、何か特殊なんじゃないか?






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

前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